a  ze?@sdddlmZddlmZzeWney:ddZYn0GdddejZGdd d ejZd S) )support)pytreecCst|}||SN)listsort)Zlstlr M/opt/bitninja-python-dojo/embedded/lib/python3.9/lib2to3/tests/test_pytree.pysortedsr c@s eZdZddZddZddZddZd d Zd d Zd dZ ddZ ddZ ddZ ddZ ddZddZddZddZdd Zd!d"Zd#d$Zd%d&Zd'd(Zd)d*Zd+d,Zd-d.Zd/d0Zd1d2Zd3d4Zd5d6Zd7d8Zd9d:Zd;d<Z d=d>Z!d?d@Z"dAS)B TestNodescCsdSr)AssertionErrorr)selfr r r test_instantiate_baseszTestNodes.test_instantiate_basecCs,tdd}||jd||jddS)Ndfoo)rLeaf assertEqualtypevaluerl1r r r test_leaf"s zTestNodes.test_leafcCs tdd}|t|ddS)NrrzLeaf(100, 'foo'))rrrreprrr r r test_leaf_repr's zTestNodes.test_leaf_reprcCs@tdd}|t|dtjdddd}|t|ddS)Nrr) ) rcontextz foo)rrrstr)rrl2r r r test_leaf_str+s zTestNodes.test_leaf_strcCs&tdd}d|_|t|ddS)NZfoo_Zfoo_5)rrprefixrrrr r r test_leaf_str_numeric_value1s z%TestNodes.test_leaf_str_numeric_valuecCs\tdd}tjdddd}|||tdd}tdd}||||||dS)Nrrr)rrrebar)rrrassertNotEqual)rrr l3l4r r r test_leaf_equality8s     zTestNodes.test_leaf_equalitycCsJtdd}||jd||jd|_||jd||jdS)Nrrz ## )rrrr$ assertFalse was_changed assertTruerr r r test_leaf_prefixAs   zTestNodes.test_leaf_prefixcCsLtdd}tdd}td||g}||jd||j||gdS)Nrrr()rrNoderrchildrenrrr n1r r r test_nodeIs   zTestNodes.test_nodecCsPtdd}tjdddd}td||g}|t|dt|t|fdS)Nrrr(r&rr3zNode(1000, [%s, %s]))rrr4rrr6r r r test_node_reprPs   zTestNodes.test_node_reprcCs@tdd}tjdddd}td||g}|t|ddS)Nrrr(r&rr3zfoo bar)rrr4rrr6r r r test_node_strWs zTestNodes.test_node_strcCs\tdd}||jdtd|g}||jdd|_||jd||jddS)Nrrr-r3r)rrrr$r4)rrr7r r r test_node_prefix]s zTestNodes.test_node_prefixcCstjdddd}tjdddd}td||g}|||j||d||dtjddd d}td||g}|||j||d||ddS) Nrrar$r(br3r-c)rrr4rZ get_suffixr$)rrr r7r*n2r r r test_get_suffixfszTestNodes.test_get_suffixcCsDtdd}tjdgdd}|||tdd}|||dS)Nr3r r&ri)rr4rr))rr7r@n3r r r test_node_equalityvs    zTestNodes.test_node_equalitycCsjtdd}tdd}td|g}td|g}|||tdd}td|g}|||dS)Nrrr3r()rrr4rr))rrr r7r@r*rBr r r test_node_recursive_equality}s    z&TestNodes.test_node_recursive_equalitycCstdd}tdd}tdd}td|||g}||j|||g||jt||jtdd}| |||j|||g||jt| |jdS)Nrr+r(r3-) rrr4rr5assertIsInstancerr.r/replacer0)rrr r*r7Zl2newr r r test_replaces      zTestNodes.test_replacecCsvtdd}tdd}tdd}td|||g}|tddtddg|t|d||jtdS)NrrrEr(r3*zfoo**bar) rrr4rHrrrGr5r)rrr r*r7r r r test_replace_with_lists   z TestNodes.test_replace_with_listcCsptdd}tdd}tdd}td||g}td|g}td||g}|t||||gdSNrrr(Zfooeyr3)rrr4rrleaves)rrr r*r@rBr7r r r test_leavess   zTestNodes.test_leavescCsxtdd}tdd}td||g}tdg}td||g}||d||d||ddS)Nrrr(r3r"rr)rrr4rdepth)rrr r@rBr7r r r test_depths   zTestNodes.test_depthcCsftdd}tdd}tdd}td||g}td||g}|t||||||gdSrL)rrr4rrZ post_orderrrr r*c1r7r r r test_post_orders    zTestNodes.test_post_ordercCsftdd}tdd}tdd}td||g}td||g}|t||||||gdSrL)rrr4rrZ pre_orderrQr r r test_pre_orders    zTestNodes.test_pre_ordercCstdd}||j|||jtdd}td|g}||j|||jtdd}tdd}tdd}td|||g}td|g}||j||j||j|||j||j||jdS)Nrfr3rrEr()rrr.r/changedr0r4)rrr7r r*r@r r r test_changeds*              zTestNodes.test_changedcCs@dD]6}tjdd|d}|t||d||j|qdS)NZxyz_r-rrr=)rrr0rrr$)rr$rr r r test_leaf_constructor_prefixsz&TestNodes.test_leaf_constructor_prefixcCs|dD]r}tdd}tjdddd}tjd||g|d}|t||d||j|||j|||jdqdS) NrXrrr_r=r3Zself_foo)rrr4r0rrr$)rr$rr r7r r r test_node_constructor_prefixs z&TestNodes.test_node_constructor_prefixcCs tdd}tdd}td||g}td|g}||d||jg||j|||jd||jd||j| |j||d||d||jg||jd||jd||jd| |j| |jdS)Nrrr3rr) rrr4rremover5parentr.r/r0)rrr r7r@r r r test_removes&     zTestNodes.test_removecCsHtdg}|||jdtdd}|||jddS)Nr3rr)rr4r\rr]r)rr7rr r r test_remove_parentlesss   z TestNodes.test_remove_parentlesscCstdd}td|g}tdd}|d|||jd||j|||j|gtd|g}|d|||jd||j|||jd||j|g|t|jd||t |jdt dS)Nrrr3r(r) rrr4Z set_childrr]r5 assertRaises IndexError Exceptionr)rrr7r r@r r r test_node_set_childs    zTestNodes.test_node_set_childcCstdd}td|g}tdd}|d|||j|||j||gtdd}|d|||j|||g|t|jdt dS)Nrrr3r(rabcr") rrr4Z insert_childrr]r5rarcr)rrr7r r*r r r test_node_insert_child#s     z TestNodes.test_node_insert_childcCstdg}tdd}||||j|||j|gtdd}||||j|||j||g|t|jt dS)Nr3rrr() rr4rZ append_childrr]r5rarcr)rr7rr r r r test_node_append_child3s     z TestNodes.test_node_append_childcCsVtdg}tdg}td||g}||j|||jd||jddSNr3)rr4assertIs next_siblingrrr7r@p1r r r test_node_next_siblingCs   z TestNodes.test_node_next_siblingcCsVtdd}tdd}td||g}||j|||jd||jddSNrr<r>r3)rrr4rirjrrrr rlr r r test_leaf_next_siblingLs   z TestNodes.test_leaf_next_siblingcCsVtdg}tdg}td||g}||j|||jd||jddSrh)rr4ri prev_siblingrrkr r r test_node_prev_siblingUs   z TestNodes.test_node_prev_siblingcCsVtdd}tdd}td||g}||j|||jd||jddSrn)rrr4rirqrror r r test_leaf_prev_sibling^s   z TestNodes.test_leaf_prev_siblingN)#__name__ __module__ __qualname__rrrr!r%r,r1r8r9r:r;rArCrDrIrKrNrPrSrTrWrYr[r^r_rdrfrgrmrprrrsr r r r r s@           r c@s,eZdZddZddZddZddZd S) TestPatternsc Cstdd}tdd}tdd}td||g}td|g}td||g}tjdddd}i}||j||d||i||j||d||i||j||d||i||j||d||d|ii}||j||d||itjd|gdd} || j||d||i|| j||d||i|| j||d||||d i}|| j||d||i|| j||d||idS) Nrrr(r3plname)resultspn)r|rx) rrr4 LeafPatternr.matchrr0 NodePattern) rrr r*r7r@rootrxrr|r r r test_basic_patternsls>          z TestPatterns.test_basic_patternsc Cstdd}tdd}tdd}td||g}td|g}td||g}tjdddd}tjd|gdd}tj|g||ggdd} i} || |g| || i|| |g| || i| | |g| |t | gd || d||| d||| d|g|| |||gd i} | | ||g| || |||gd | | d|i} dS) Nrrr(r3rxryr|pw)rxr|r)rxr) rrr4r}rWildcardPatternr.Z match_seqrr0r keysri) rrr r*r7r@rrxr|rrr r r test_wildcards2     zTestPatterns.test_wildcardc Cstdd}tdd}tdd}tdd}tdd}tdd}||||||g}td|}tddd } tddd } tddd } tddd } tddd } tddd}tj| | | g| | g| | g| | g| |ggdddd}|dd||Dgdtjd|gdd}tt|g|g}|t |d|d\}}||d|t |dd||d||||||gdD]"}||d|td|qdS)Nrr<r>r?derUr3papbpcpdpepfr`r)minmaxrzcSsg|] }|dqS)rr ).0xr r r z6TestPatterns.test_generate_matches..)r#r"r`pr)rZcontentrzrZabcdefp) rrr4r}rrZgenerate_matchesrrlenr)rZlaZlbZlcZldleZlfrMrrrrrrrrrmatchesr?rr r r test_generate_matchess>         z"TestPatterns.test_generate_matchescCstdtdtjddtdf}tdd}tdd}tdd }td|||g}i}||||||d|gdS) NiKargsry(rr)) rrr}rrr4r0r~r)rpatternrr r*Znoderr r r test_has_key_examples    z!TestPatterns.test_has_key_exampleN)rtrurvrrrrr r r r rwhs$rwN) r-rZlib2to3rr NameErrorZTestCaser rwr r r r  s   Q