a 9êdgþ?ã@sdddlmZddlmZzeWney:dd„ZYn0Gdd„dejƒZGdd „d ejƒZd S) é)Úsupporté)ÚpytreecCst|ƒ}| ¡|S©N)ÚlistÚsort)ZlstÚl©r ú5/usr/local/lib/python3.9/lib2to3/tests/test_pytree.pyÚsortedsr c@s eZdZdd„Zdd„Zdd„Zdd„Zd d „Zd d „Zd d„Z dd„Z dd„Z dd„Z dd„Z dd„Zdd„Zdd„Zdd„Zdd „Zd!d"„Zd#d$„Zd%d&„Zd'd(„Zd)d*„Zd+d,„Zd-d.„Zd/d0„Zd1d2„Zd3d4„Zd5d6„Zd7d8„Zd9d:„Zd;d<„Z d=d>„Z!d?d@„Z"dAS)BÚ TestNodescCsdSr)ÚAssertionErrorr)Úselfr r r Útest_instantiate_baseszTestNodes.test_instantiate_basecCs,t dd¡}| |jd¡| |jd¡dS)NédÚfoo)rÚLeafÚ assertEqualÚtypeÚvalue©rÚl1r r r Ú test_leaf"s zTestNodes.test_leafcCs t dd¡}| t|ƒd¡dS)NrrzLeaf(100, 'foo'))rrrÚreprrr r r Útest_leaf_repr's zTestNodes.test_leaf_reprcCs@t dd¡}| t|ƒd¡tjdddd}| t|ƒd¡dS)Nrr)ú )é r©Úcontextz foo)rrrÚstr)rrÚl2r r r Ú test_leaf_str+s zTestNodes.test_leaf_strcCs&t dd¡}d|_| t|ƒd¡dS)NééZfoo_Zfoo_5)rrÚprefixrrrr r r Útest_leaf_str_numeric_value1s z%TestNodes.test_leaf_str_numeric_valuecCs\t dd¡}tjdddd}| ||¡t dd¡}t dd¡}| ||¡| ||¡dS)Nrr©r)rrréeÚbar)rrrÚassertNotEqual)rrr Úl3Úl4r r r Útest_leaf_equality8s     zTestNodes.test_leaf_equalitycCsJt dd¡}| |jd¡| |j¡d|_| |jd¡| |j¡dS)NrrÚz ## )rrrr$Ú assertFalseÚ was_changedÚ assertTruerr r r Útest_leaf_prefixAs   zTestNodes.test_leaf_prefixcCsLt dd¡}t dd¡}t d||g¡}| |jd¡| |j||g¡dS)NrréÈr(éè)rrÚNoderrÚchildren©rrr Ún1r r r Ú test_nodeIs   zTestNodes.test_nodecCsPt dd¡}tjdddd}t d||g¡}| t|ƒdt|ƒt|ƒf¡dS)Nrrr(r&rr3zNode(1000, [%s, %s]))rrr4rrr6r r r Útest_node_reprPs   ÿzTestNodes.test_node_reprcCs@t dd¡}tjdddd}t d||g¡}| t|ƒd¡dS)Nrrr(r&rr3zfoo bar)rrr4rrr6r r r Ú test_node_strWs zTestNodes.test_node_strcCs\t dd¡}| |jd¡t d|g¡}| |jd¡d|_| |jd¡| |jd¡dS)Nrrr-r3r)rrrr$r4)rrr7r r r Útest_node_prefix]s zTestNodes.test_node_prefixcCs¸tjdddd}tjdddd}t d||g¡}| | ¡|j¡| | ¡d¡| | ¡d¡tjddd d}t d||g¡}| | ¡|j¡| | ¡d¡| | ¡d¡dS) NrrÚa©r$r(Úbr3r-Úc)rrr4rZ get_suffixr$)rrr r7r*Ún2r r r Útest_get_suffixfszTestNodes.test_get_suffixcCsDt dd¡}tjdgdd}| ||¡t dd¡}| ||¡dS)Nr3r r&rié)rr4rr))rr7r@Ún3r r r Útest_node_equalityvs    zTestNodes.test_node_equalitycCsjt dd¡}t dd¡}t d|g¡}t d|g¡}| ||¡t dd¡}t d|g¡}| ||¡dS)Nrrr3r()rrr4rr))rrr r7r@r*rBr r r Útest_node_recursive_equality}s    z&TestNodes.test_node_recursive_equalitycCs¬t dd¡}t dd¡}t dd¡}t d|||g¡}| |j|||g¡| |jt¡| |j¡t dd¡}|  |¡| |j|||g¡| |jt¡|  |j¡dS)Nrrú+r(r3ú-) rrr4rr5ÚassertIsInstancerr.r/Úreplacer0)rrr r*r7Zl2newr r r Ú test_replace‡s      zTestNodes.test_replacecCsvt dd¡}t dd¡}t dd¡}t d|||g¡}| t dd¡t dd¡g¡| t|ƒd¡| |jt¡dS)NrrrEr(r3Ú*zfoo**bar) rrr4rHrrrGr5r)rrr r*r7r r r Útest_replace_with_list•s   z TestNodes.test_replace_with_listcCspt dd¡}t dd¡}t dd¡}t d||g¡}t d|g¡}t d||g¡}| t| ¡ƒ|||g¡dS©Nrrr(Zfooeyr3)rrr4rrÚleaves)rrr r*r@rBr7r r r Ú test_leavesŸs   zTestNodes.test_leavescCsxt dd¡}t dd¡}t d||g¡}t dg¡}t d||g¡}| | ¡d¡| | ¡d¡| | ¡d¡dS)Nrrr(r3r"rr)rrr4rÚdepth)rrr r@rBr7r r r Ú test_depth©s   zTestNodes.test_depthcCsft dd¡}t dd¡}t dd¡}t d||g¡}t d||g¡}| t| ¡ƒ|||||g¡dSrL)rrr4rrZ post_order©rrr r*Úc1r7r r r Útest_post_order´s    zTestNodes.test_post_ordercCsft dd¡}t dd¡}t dd¡}t d||g¡}t d||g¡}| t| ¡ƒ|||||g¡dSrL)rrr4rrZ pre_orderrQr r r Útest_pre_order¼s    zTestNodes.test_pre_ordercCsþt dd¡}| |j¡| ¡| |j¡t dd¡}t d|g¡}| |j¡| ¡| |j¡t dd¡}t dd¡}t dd¡}t d|||g¡}t d|g¡}| |j¡| |j¡| |j¡| ¡| |j¡| |j¡| |j¡dS)NrÚfr3rrEr()rrr.r/Úchangedr0r4)rrr7r r*r@r r r Ú test_changedÄs*              zTestNodes.test_changedcCs@dD]6}tjdd|d}| t|ƒ|d¡| |j|¡qdS)N©Zxyz_r-rrr=)rrr0rrr$)rr$rr r r Útest_leaf_constructor_prefixÞsz&TestNodes.test_leaf_constructor_prefixcCs|dD]r}t dd¡}tjdddd}tjd||g|d}| t|ƒ|d¡| |j|¡| |j|¡| |jd¡qdS) NrXrrrÚ_r=r3Zself_foo)rrr4r0rrr$)rr$rr r7r r r Útest_node_constructor_prefixäs z&TestNodes.test_node_constructor_prefixcCs t dd¡}t dd¡}t d||g¡}t d|g¡}| | ¡d¡| |jg¡| |j|¡| |jd¡| |jd¡| |j¡|  |j¡| | ¡d¡| | ¡d¡| |jg¡| |jd¡| |jd¡| |jd¡|  |j¡|  |j¡dS)Nrrr3rr) rrr4rÚremover5Úparentr.r/r0)rrr r7r@r r r Ú test_removeîs&     zTestNodes.test_removecCsHt dg¡}| ¡| |jd¡t dd¡}| ¡| |jd¡dS)Nr3rr)rr4r\rr]r)rr7rr r r Útest_remove_parentlesss   z TestNodes.test_remove_parentlesscCsÚt dd¡}t d|g¡}t dd¡}| d|¡| |jd¡| |j|¡| |j|g¡t d|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_childcCs”t dd¡}t d|g¡}t dd¡}| d|¡| |j|¡| |j||g¡t dd¡}| d|¡| |j|||g¡| t|jdt ¡dS)Nrrr3r(rÚabcr") rrr4Z insert_childrr]r5rarcr)rrr7r r*r r r Útest_node_insert_child#s     z TestNodes.test_node_insert_childcCsŠt dg¡}t dd¡}| |¡| |j|¡| |j|g¡t dd¡}| |¡| |j|¡| |j||g¡| t|jt ¡dS)Nr3rrr() rr4rZ append_childrr]r5rarcr)rr7rr r r r Útest_node_append_child3s     z TestNodes.test_node_append_childcCsVt dg¡}t dg¡}t d||g¡}| |j|¡| |jd¡| |jd¡dS©Nr3)rr4ÚassertIsÚ next_siblingr©rr7r@Úp1r r r Útest_node_next_siblingCs   z TestNodes.test_node_next_siblingcCsVt dd¡}t dd¡}t d||g¡}| |j|¡| |jd¡| |jd¡dS©Nrr<r>r3)rrr4rirjr©rrr rlr r r Útest_leaf_next_siblingLs   z TestNodes.test_leaf_next_siblingcCsVt dg¡}t dg¡}t d||g¡}| |j|¡| |jd¡| |jd¡dSrh)rr4riÚ prev_siblingrrkr r r Útest_node_prev_siblingUs   z TestNodes.test_node_prev_siblingcCsVt dd¡}t dd¡}t d||g¡}| |j|¡| |jd¡| |jd¡dSrn)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,eZdZdd„Zdd„Zdd„Zdd„Zd S) Ú TestPatternsc CsÎt dd¡}t dd¡}t dd¡}t d||g¡}t d|g¡}t d||g¡}tjdddd}i}| |j||d¡| |i¡| |j||d¡| |i¡| |j||d¡| |i¡| |j||d¡| |d|i¡i}| |j||d¡| |i¡tjd|gdd} | | j||d¡| |i¡| | j||d¡| |i¡| | j||d¡| |||d œ¡i}| | j||d¡| |i¡| | j||d¡| |i¡dS) Nrrr(r3Úpl©Úname)ÚresultsÚpn)r|rx) rrr4Ú LeafPatternr.Úmatchrr0Ú NodePattern) rrr r*r7r@ÚrootrxÚrr|r r r Útest_basic_patternsls>          z TestPatterns.test_basic_patternsc CsŒt dd¡}t dd¡}t dd¡}t d||g¡}t d|g¡}t d||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}rÚWildcardPatternr.Z match_seqrr0r Úkeysri) rrr r*r7r@r€rxr|rƒrr r r Ú test_wildcards2     zTestPatterns.test_wildcardc Cs´t dd¡}t dd¡}t dd¡}t dd¡}t dd¡}t dd¡}||||||g}t d|¡}t ddd ¡} t ddd ¡} t ddd ¡} t ddd ¡} t ddd ¡} t ddd¡}tj| | | g| | g| | g| | g| |ggdddd}| dd„| |¡Dƒgd¢¡tjd|gdd}tt |g|g¡ƒ}| t |ƒd¡|d\}}| |d¡| t |dƒd¡| |d||||||g¡dD]"}| |d|t d|¡¡qŒdS)Nrr<r>r?ÚdÚerUr3ÚpaÚpbÚpcÚpdÚpeÚpfr`rƒ)ÚminÚmaxrzcSsg|] }|d‘qS)rr )Ú.0Úxr r r Ú Áóz6TestPatterns.test_generate_matches..)ér#r"r`éÚpr)rZcontentrzrZabcdefÚp) rrr4r}r„rZgenerate_matchesrrÚlenr)rZlaZlbZlcZldÚleZlfrMr€r‰rŠr‹rŒrrŽrƒr—Úmatchesr?rr r r Útest_generate_matches¯s>       ÿþÿ  z"TestPatterns.test_generate_matchescCsˆt dt d¡tjddt d¡f¡}t dd¡}t dd¡}t dd ¡}t d|||g¡}i}| | ||¡¡| |d|g¡dS) NiKéÚargsryéú(r•r’ú)) rrr}r„rr4r0r~r)rÚpatternrr r*Znoderr r r Útest_has_key_exampleÍs þÿ   z!TestPatterns.test_has_key_exampleN)rtrurvr‚r†rœr£r r r r rwhs$rwN) r-rZlib2to3rr Ú NameErrorZTestCaser rwr r r r Ú s   Q