a 9êdgþ?ã@shdZddlmZddlmZzeWney>dd„ZYn0Gdd„dejƒZGd d „d ejƒZ d S) aUnit tests for pytree.py. NOTE: Please *don't* add doc strings to individual test methods! In verbose mode, printing of the module, class and method name is much more helpful than printing of (the first line of) the docstring, especially when debugging a test. é)Úsupporté)ÚpytreecCst|ƒ}| ¡|S©N)ÚlistÚsort)ZlstÚl©r ú5/usr/local/lib/python3.9/lib2to3/tests/test_pytree.pyÚsortedsr c@seZdZdZdd„Zdd„Zdd„Zdd „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.d/„Zd0d1„Zd2d3„Zd4d5„Zd6d7„Zd8d9„Zd:d;„Z dd?„Z"d@dA„Z#dBS)CÚ TestNodesz(Unit tests for nodes (Base, Leaf, Node).cCsdSr)Ú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__Ú__doc__rrrr!r%r,r1r8r9r:r;rArCrDrIrKrNrPrSrTrWrYr[r^r_rdrfrgrmrprrrsr r r r r sB           r c@s0eZdZdZdd„Zdd„Zdd„Zdd „Zd S) Ú TestPatternsz&Unit tests for tree matching patterns.c 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}ry) rrr4Ú LeafPatternr.Úmatchrr0Ú NodePattern) rrr r*r7r@ÚrootryÚ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(r3ryrzr}Úpw)ryr}r„)ryr„) rrr4r~r€ÚWildcardPatternr.Z match_seqrr0r Úkeysri) rrr r*r7r@rryr}r„r‚r 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Úmaxr{cSsg|] }|d‘qS)rr )Ú.0Úxr r r Ú Áóz6TestPatterns.test_generate_matches..)ér#r"r`éÚpr)rZcontentr{rZabcdefÚp) rrr4r~r…rZgenerate_matchesr€rÚlenr)rZlaZlbZlcZldÚleZlfrMrrŠr‹rŒrrŽrr„r˜Úmatchesr?r‚r 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éÚargsrzéú(r–r“ú)) rr€r~r…rr4r0rr)rÚpatternrr r*Znoder‚r r r Útest_has_key_exampleÍs þÿ   z!TestPatterns.test_has_key_exampleN)rtrurvrwrƒr‡rr¤r r r r rxhs $rxN) rwr-rZlib2to3rr Ú NameErrorZTestCaser rxr r r r Ús   Q