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).cCs| ttj¡dSr)Ú assertRaisesÚAssertionErrorrZBase)Ú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Úprefixrr rr 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'rr4zNode(1000, [%s, %s]))rrr5rrr7r r r Útest_node_reprPs   ÿzTestNodes.test_node_reprcCs@t dd¡}tjdddd}t d||g¡}| t|ƒd¡dS)Nrrr)r'rr4zfoo bar)rrr5rr r7r r r Ú test_node_strWs zTestNodes.test_node_strcCs\t dd¡}| |jd¡t d|g¡}| |jd¡d|_| |jd¡| |jd¡dS)Nrrr.r4r)rrrr%r5)rrr8r 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)Úbr4r.Úc)rrr5rZ get_suffixr%)rrr!r8r+Ún2r r r Útest_get_suffixfszTestNodes.test_get_suffixcCsDt dd¡}tjdgdd}| ||¡t dd¡}| ||¡dS)Nr4r r'rié)rr5rr*)rr8rAÚ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)Nrrr4r))rrr5rr*)rrr!r8rAr+rCr 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)r4ú-) rrr5rr6ÚassertIsInstancerr/r0Úreplacer1)rrr!r+r8Zl2newr 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)NrrrFr)r4Ú*zfoo**bar) rrr5rIrr rHr6r)rrr!r+r8r 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)Zfooeyr4)rrr5rrÚleaves)rrr!r+rArCr8r r r Ú test_leavesŸs   zTestNodes.test_leavescCsxt dd¡}t dd¡}t d||g¡}t dg¡}t d||g¡}| | ¡d¡| | ¡d¡| | ¡d¡dS)Nrrr)r4r#rr)rrr5rÚdepth)rrr!rArCr8r r r Ú test_depth©s   zTestNodes.test_depthcCsft dd¡}t dd¡}t dd¡}t d||g¡}t d||g¡}| t| ¡ƒ|||||g¡dSrM)rrr5rrZ post_order©rrr!r+Úc1r8r r r Útest_post_order´s    zTestNodes.test_post_ordercCsft dd¡}t dd¡}t dd¡}t d||g¡}t d||g¡}| t| ¡ƒ|||||g¡dSrM)rrr5rrZ pre_orderrRr 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Úfr4rrFr))rrr/r0Úchangedr1r5)rrr8r!r+rAr r r Ú test_changedÄs*              zTestNodes.test_changedcCs@dD]6}tjdd|d}| t|ƒ|d¡| |j|¡qdS)N©Zxyz_r.rrr>)rrr1r rr%)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) NrYrrrÚ_r>r4Zself_foo)rrr5r1r rr%)rr%rr!r8r 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)Nrrr4rr) rrr5rÚremover6Úparentr/r0r1)rrr!r8rAr r r Ú test_removeîs&     zTestNodes.test_removecCsHt dg¡}| ¡| |jd¡t dd¡}| ¡| |jd¡dS)Nr4rr)rr5r]rr^r)rr8rr 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)Nrrr4r)ré) rrr5Z set_childrr^r6r Ú IndexErrorÚ Exceptionr)rrr8r!rAr 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)Nrrr4r)rÚabcr#) rrr5Z insert_childrr^r6r rcr)rrr8r!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)Nr4rrr)) rr5rZ append_childrr^r6r rcr)rr8rr!r r r Útest_node_append_child3s     z TestNodes.test_node_append_childcCsVt dg¡}t dg¡}t d||g¡}| |j|¡| |jd¡| |jd¡dS©Nr4)rr5ÚassertIsÚ next_siblingr©rr8rAÚ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?r4)rrr5rirjr©rrr!rlr r r Útest_leaf_next_siblingLs   z TestNodes.test_leaf_next_siblingcCsVt dg¡}t dg¡}t d||g¡}| |j|¡| |jd¡| |jd¡dSrh)rr5riÚ prev_siblingrrkr r r Útest_node_prev_siblingUs   z TestNodes.test_node_prev_siblingcCsVt dd¡}t dd¡}t d||g¡}| |j|¡| |jd¡| |jd¡dSrn)rrr5rirqrror r r Útest_leaf_prev_sibling^s   z TestNodes.test_leaf_prev_siblingN)$Ú__name__Ú __module__Ú __qualname__Ú__doc__rrrr"r&r-r2r9r:r;r<rBrDrErJrLrOrQrTrUrXrZr\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)r4Úpl©Úname)ÚresultsÚpn)r}ry) rrr5Ú LeafPatternr/Úmatchrr1Ú NodePattern) rrr!r+r8rAÚ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)r4ryrzr}Úpw)ryr}r„)ryr„) rrr5r~r€ÚWildcardPatternr/Z match_seqrr1r Úkeysri) rrr!r+r8rArryr}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ÚerVr4ÚpaÚpbÚpcÚpdÚpeÚpfrar„)ÚminÚmaxr{cSsg|] }|d‘qS)rr )Ú.0Úxr r r Ú Áóz6TestPatterns.test_generate_matches..)ér$r#raéÚpr)rZcontentr{rZabcdefÚp) rrr5r~r…rZgenerate_matchesr€rÚlenr )rZlaZlbZlcZldÚleZlfrNrrŠ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…rr5r1rr)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