
    ;e?                         	 d dl mZ ddlmZ 	 e n# e$ r d ZY nw xY w G d dej                  Z G d dej                  Zd	S )
   )support    )pytreec                 L    t          |           }|                                 |S N)listsort)lstls     0/usr/lib/python3.11/lib2to3/tests/test_pytree.pysortedr      s    II	    c                       e Zd Z	 d Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Z d Z!d  Z"d!S )"	TestNodesc                     d S r   )assertRaisesAssertionErrorr   Base)selfs    r   test_instantiate_basezTestNodes.test_instantiate_base   s    	; 	;r   c                     t          j        dd          }|                     |j        d           |                     |j        d           d S )Nd   foo)r   LeafassertEqualtypevaluer   l1s     r   	test_leafzTestNodes.test_leaf"   sI    [e$$#&&&5)))))r   c                 v    t          j        dd          }|                     t          |          d           d S )Nr   r   zLeaf(100, 'foo'))r   r   r   reprr   s     r   test_leaf_reprzTestNodes.test_leaf_repr'   s6    [e$$b#566666r   c                     t          j        dd          }|                     t          |          d           t          j        ddd          }|                     t          |          d           d S )Nr   r   ) )
   r   contextz foo)r   r   r   str)r   r   l2s      r   test_leaf_strzTestNodes.test_leaf_str+   sg    [e$$R%((([e^<<<R&)))))r   c                     t          j        dd          }d|_        |                     t	          |          d           d S )N      foo_foo_5)r   r   prefixr   r)   r   s     r   test_leaf_str_numeric_valuez%TestNodes.test_leaf_str_numeric_value1   s>     [A	R'*****r   c                 6   t          j        dd          }t          j        ddd          }|                     ||           t          j        dd          }t          j        dd          }|                     ||           |                     ||           d S )Nr   r   r%   )r   r   r'   e   bar)r   r   r   assertNotEqual)r   r   r*   l3l4s        r   test_leaf_equalityzTestNodes.test_leaf_equality8   s    [e$$[e];;;R   [e$$[e$$B###B#####r   c                    t          j        dd          }|                     |j        d           |                     |j                   d|_        |                     |j        d           |                     |j                   d S )Nr   r    z  ##

)r   r   r   r1   assertFalsewas_changed
assertTruer   s     r   test_leaf_prefixzTestNodes.test_leaf_prefixA   sz    [e$$B'''(((	J///'''''r   c                     t          j        dd          }t          j        dd          }t          j        d||g          }|                     |j        d           |                     |j        ||g           d S )Nr   r      r6     )r   r   Noder   r   childrenr   r   r*   n1s       r   	test_nodezTestNodes.test_nodeI   ss    [e$$[e$$[Bx(($'''r2h/////r   c           	         t          j        dd          }t          j        ddd          }t          j        d||g          }|                     t	          |          dt	          |          dt	          |          d	           d S )
Nr   r   r6   r4   r'   rC   zNode(1000, [z, z]))r   r   rD   r   r"   rF   s       r   test_node_reprzTestNodes.test_node_reprP   s    [e$$[e];;;[Bx((b378888T"XXXXF	H 	H 	H 	H 	Hr   c                     t          j        dd          }t          j        ddd          }t          j        d||g          }|                     t	          |          d           d S )Nr   r   r6   r4   r'   rC   zfoo bar)r   r   rD   r   r)   rF   s       r   test_node_strzTestNodes.test_node_strW   s`    [e$$[e];;;[Bx((R),,,,,r   c                 B   t          j        dd          }|                     |j        d           t          j        d|g          }|                     |j        d           d|_        |                     |j        d           |                     |j        d           d S )Nr   r   r<   rC   r%   )r   r   r   r1   rD   )r   r   rG   s      r   test_node_prefixzTestNodes.test_node_prefix]   s    [e$$B'''[t$$B'''	C(((C(((((r   c                    t          j        ddd          }t          j        ddd          }t          j        d||g          }|                     |                                |j                   |                     |                                d           |                     |                                d           t          j        ddd	          }t          j        d||g          }|                     |                                |j                   |                     |                                d           |                     |                                d           d S )
Nr   r   ar1   r6   brC   r<   c)r   r   rD   r   
get_suffixr1   )r   r   r*   rG   r8   n2s         r   test_get_suffixzTestNodes.test_get_suffixf   s,   [eC000[eC000[Bx((")444"---"---[eC000[Bx((")444"---"-----r   c                     t          j        dd          }t          j        dg d          }|                     ||           t          j        dd          }|                     ||           d S )NrC    r4   r'   i  )r   rD   r   r7   )r   rG   rU   n3s       r   test_node_equalityzTestNodes.test_node_equalityv   sl    [r""[r=999R   [r""B#####r   c                 `   t          j        dd          }t          j        dd          }t          j        d|g          }t          j        d|g          }|                     ||           t          j        dd          }t          j        d|g          }|                     ||           d S )Nr   r   rC   r6   )r   r   rD   r   r7   )r   r   r*   rG   rU   r8   rY   s          r   test_node_recursive_equalityz&TestNodes.test_node_recursive_equality}   s    [e$$[e$$[t$$[t$$R   [e$$[t$$B#####r   c                 h   t          j        dd          }t          j        dd          }t          j        dd          }t          j        d|||g          }|                     |j        |||g           |                     |j        t                     |                     |j                   t          j        dd          }|	                    |           |                     |j        |||g           |                     |j        t                     | 
                    |j                   d S )Nr   r   +r6   rC   -)r   r   rD   r   rE   assertIsInstancer   r=   r>   replacer?   )r   r   r*   r8   rG   l2news         r   test_replacezTestNodes.test_replace   s   [e$$[c""[e$$[B|,,r2rl333bk4000(((C%%


5r5"o666bk4000'''''r   c                    t          j        dd          }t          j        dd          }t          j        dd          }t          j        d|||g          }|                    t          j        dd          t          j        dd          g           |                     t          |          d           |                     |j        t                     d S )Nr   r   r^   r6   rC   *zfoo**bar)	r   r   rD   ra   r   r)   r`   rE   r   )r   r   r*   r8   rG   s        r   test_replace_with_listz TestNodes.test_replace_with_list   s    [e$$[c""[e$$[B|,,


FKS))6;sC+@+@ABBBR*---bk400000r   c                 |   t          j        dd          }t          j        dd          }t          j        dd          }t          j        d||g          }t          j        d|g          }t          j        d||g          }|                     t	          |                                          |||g           d S Nr   r   r6   fooeyrC   )r   r   rD   r   r   leaves)r   r   r*   r8   rU   rY   rG   s          r   test_leaveszTestNodes.test_leaves   s    [e$$[e$$[g&&[Bx(([t$$[Bx((biikk**RRL99999r   c                    t          j        dd          }t          j        dd          }t          j        d||g          }t          j        dg           }t          j        d||g          }|                     |                                d           |                     |                                d           |                     |                                d           d S )Nr   r   r6   rC   r-   r   r   )r   r   rD   r   depth)r   r   r*   rU   rY   rG   s         r   
test_depthzTestNodes.test_depth   s    [e$$[e$$[Bx(([r""[Bx((Q'''Q'''Q'''''r   c                 T   t          j        dd          }t          j        dd          }t          j        dd          }t          j        d||g          }t          j        d||g          }|                     t	          |                                          |||||g           d S rh   )r   r   rD   r   r   
post_orderr   r   r*   r8   c1rG   s         r   test_post_orderzTestNodes.test_post_order   s    [e$$[e$$[g&&[Bx(([Bx((bmmoo..RR0DEEEEEr   c                 T   t          j        dd          }t          j        dd          }t          j        dd          }t          j        d||g          }t          j        d||g          }|                     t	          |                                          |||||g           d S rh   )r   r   rD   r   r   	pre_orderrq   s         r   test_pre_orderzTestNodes.test_pre_order   s    [e$$[e$$[g&&[Bx(([Bx((bllnn--BB/CDDDDDr   c                    t          j        dd          }|                     |j                   |                                 |                     |j                   t          j        dd          }t          j        d|g          }|                     |j                   |                                 |                     |j                   t          j        dd          }t          j        dd          }t          j        dd          }t          j        d|||g          }t          j        d|g          }|                     |j                   |                     |j                   |                     |j                   |                                 |                     |j                   |                     |j                   |                     |j                   d S )Nr   frC   r   r^   r6   )r   r   r=   r>   changedr?   rD   )r   r   rG   r*   r8   rU   s         r   test_changedzTestNodes.test_changed   s   [c""(((


'''[c""[t$$(((


'''[e$$[c""[e$$[B|,,[t$$(((((((((


''''''(((((r   c                     dD ]Z}t          j        dd|          }|                     t          |          |dz              |                     |j        |           [d S )Nxyz_r<   r   r   rQ   )r   r   r?   r)   r   r1   )r   r1   r   s      r   test_leaf_constructor_prefixz&TestNodes.test_leaf_constructor_prefix   sj    " 	0 	0FS&888BOOCGGVf_555RY////	0 	0r   c                    dD ]}t          j        dd          }t          j        ddd          }t          j        d||g|          }|                     t	          |          |dz              |                     |j        |           |                     |j        |           |                     |j        d           d S )	Nr|   r   r   r   _rQ   rC   self_foo)r   r   rD   r?   r)   r   r1   )r   r1   r   r*   rG   s        r   test_node_constructor_prefixz&TestNodes.test_node_constructor_prefix   s    " 	- 	-FS&))BS%444BTB8F;;;BOOCGGVj%8999RY///RY///RY,,,,	- 	-r   c                 $   t          j        dd          }t          j        dd          }t          j        d||g          }t          j        d|g          }|                     |                                d           |                     |j        g            |                     |j        |           |                     |j        d            |                     |j        d            |                     |j                   | 	                    |j                   |                     |                                d           |                     |                                d           |                     |j        g            |                     |j        d            |                     |j        d            |                     |j        d            | 	                    |j                   | 	                    |j                   d S )Nr   r   rC   r   r   )
r   r   rD   r   removerE   parentr=   r>   r?   )r   r   r*   rG   rU   s        r   test_removezTestNodes.test_remove   s   [e$$[e$$[Bx(([t$$a(((b)))B'''D)))D)))((('''a(((a(((b)))D)))D)))D)))''''''''r   c                    t          j        dg           }|                                 |                     |j        d            t          j        dd          }|                                 |                     |j        d            d S )NrC   r   r   )r   rD   r   r   r   r   )r   rG   r   s      r   test_remove_parentlessz TestNodes.test_remove_parentless  st    [r""
		D)))[e$$
		D)))))r   c                    t          j        dd          }t          j        d|g          }t          j        dd          }|                    d|           |                     |j        d            |                     |j        |           |                     |j        |g           t          j        d|g          }|                    d|           |                     |j        d            |                     |j        |           |                     |j        d            |                     |j        |g           |                     t          |j        d|           |                     t          |j        dt                     d S )Nr   r   rC   r6   r      )r   r   rD   	set_childr   r   rE   r   
IndexError	Exceptionr   )r   r   rG   r*   rU   s        r   test_node_set_childzTestNodes.test_node_set_child  s\   [e$$[t$$[e$$
QD)))B'''rd+++[t$$
QD)))B'''D)))rd+++*blAr:::)R\1d;;;;;r   c                    t          j        dd          }t          j        d|g          }t          j        dd          }|                    d|           |                     |j        |           |                     |j        ||g           t          j        dd          }|                    d|           |                     |j        |||g           |                     t          |j        dt                     d S )Nr   r   rC   r6   r   abcr-   )
r   r   rD   insert_childr   r   rE   r   r   r   )r   r   rG   r*   r8   s        r   test_node_insert_childz TestNodes.test_node_insert_child#  s    [e$$[t$$[e$$
2B'''r2h///[e$$
2r2rl333 	)R_a>>>>>r   c                    t          j        dg           }t          j        dd          }|                    |           |                     |j        |           |                     |j        |g           t          j        dd          }|                    |           |                     |j        |           |                     |j        ||g           |                     t          |j        t                     d S )NrC   r   r   r6   )
r   rD   r   append_childr   r   rE   r   r   r   )r   rG   r   r*   s       r   test_node_append_childz TestNodes.test_node_append_child3  s    [r""[e$$
B'''rd+++[e$$
B'''r2h/// 	)R_d;;;;;r   c                 *   t          j        dg           }t          j        dg           }t          j        d||g          }|                     |j        |           |                     |j        d            |                     |j        d            d S NrC   )r   rD   assertIsnext_siblingr   r   rG   rU   p1s       r   test_node_next_siblingz TestNodes.test_node_next_siblingC      [r""[r""[Bx((bor***$///$/////r   c                 *   t          j        dd          }t          j        dd          }t          j        d||g          }|                     |j        |           |                     |j        d            |                     |j        d            d S Nr   rP   rR   rC   )r   r   rD   r   r   r   r   r   r*   r   s       r   test_leaf_next_siblingz TestNodes.test_leaf_next_siblingL      [c""[c""[Bx((bor***$///$/////r   c                 *   t          j        dg           }t          j        dg           }t          j        d||g          }|                     |j        |           |                     |j        d            |                     |j        d            d S r   )r   rD   r   prev_siblingr   r   s       r   test_node_prev_siblingz TestNodes.test_node_prev_siblingU  r   r   c                 *   t          j        dd          }t          j        dd          }t          j        d||g          }|                     |j        |           |                     |j        d            |                     |j        d            d S r   )r   r   rD   r   r   r   r   s       r   test_leaf_prev_siblingz TestNodes.test_leaf_prev_sibling^  r   r   N)#__name__
__module____qualname__r   r    r#   r+   r2   r:   r@   rH   rJ   rL   rN   rV   rZ   r\   rc   rf   rk   rn   rs   rv   rz   r~   r   r   r   r   r   r   r   r   r   r   rX   r   r   r   r      s        2; ; ;
* * *
7 7 7* * *+ + +$ $ $( ( (0 0 0H H H- - -) ) ). . . $ $ $$ $ $( ( (1 1 1: : :	( 	( 	(F F FE E E) ) )40 0 0- - -( ( (.* * *< < <*? ? ? < < < 0 0 00 0 00 0 00 0 0 0 0r   r   c                   (    e Zd Z	 d Zd Zd Zd ZdS )TestPatternsc                    t          j        dd          }t          j        dd          }t          j        dd          }t          j        d||g          }t          j        d|g          }t          j        d||g          }t          j        ddd          }i }|                     |                    ||                     |                     |i            |                     |                    ||                     |                     |i            |                     |                    ||                     |                     |i            |                     |                    ||                     |                     |d|i           i }|                     |                    ||                     |                     |i            t          j        d|gd          }	|                     |	                    ||                     |                     |i            |                     |	                    ||                     |                     |i            |                     |	                    ||                     |                     |||d	           i }|                     |	                    ||                     |                     |i            |                     |	                    ||                     |                     |i            d S )
Nr   r   r6   rC   plname)resultspn)r   r   )	r   r   rD   LeafPatternr=   matchr   r?   NodePattern)
r   r   r*   r8   rG   rU   rootr   rr   s
             r   test_basic_patternsz TestPatterns.test_basic_patternsl  s   [e$$[e$$[e$$[Bx(([t$${4"b**U666$22333B"a00111B"a00111BQ//000T2J'''"a00111Brd666$22333B"a00111BQ//0002R00111"a00111B"a00111Br   c                    t          j        dd          }t          j        dd          }t          j        dd          }t          j        d||g          }t          j        d|g          }t          j        d||g          }t          j        ddd          }t          j        d|gd          }t          j        |g||ggd          }	i }
|                     |	                    |g|
                     |                     |
i            |                     |	                    |g|
                     |                     |
i            | 	                    |	                    |g|
                     |                     t          |
                                          g d	           |                     |
d         |           |                     |
d         |           |                     |
d         |g           |                     |
|||gd	           i }
| 	                    |	                    ||g|
                     |                     |
|||gd
           |                     |
d         |           i }
d S )Nr   r   r6   rC   r   r   r   pw)r   r   r   )r   r   )r   r   rD   r   r   WildcardPatternr=   	match_seqr   r?   r   keysr   )r   r   r*   r8   rG   rU   r   r   r   r   r   s              r   test_wildcardzTestPatterns.test_wildcard  sh   [e$$[e$$[e$$[Bx(([t$${4"b**U666rd666#bTB8$44@@@tfa00111BrdA..///BbT1--...))+=+=+=>>>4"%%%4"%%%42$'''2Rt<<===b"Xq112222b"X66777agr"""r   c           	         t          j        dd          }t          j        dd          }t          j        dd          }t          j        dd          }t          j        dd          }t          j        dd          }||||||g}t          j        d|          }t          j        ddd	          }	t          j        ddd
          }
t          j        ddd          }t          j        ddd          }t          j        ddd          }t          j        ddd          }t          j        |	|
|g||g|	|
g||g||ggddd          }|                     d |                    |          D             g d           t          j        d|gd          }t          t          j        |g|g                    }|                     t          |          d           |d         \  }}|                     |d           |                     t          |d                   d           |                     |d         ||||||g           dD ]4}|                     |d|z            t          j        d|                     5d S )Nr   rP   rR   rS   derx   rC   papbpcpdpepfr   r   )minmaxr   c                     g | ]
}|d          S )r   rX   ).0xs     r   
<listcomp>z6TestPatterns.test_generate_matches.<locals>.<listcomp>  s    DDD1!A$DDDr   )   r.   r-   r      pr)r   contentr   r   abcdefp)r   r   rD   r   r   r   generate_matchesr   r   lenr)   )r   lalblcldlelfrj   r   r   r   r   r   r   r   r   r   matchesrS   r   s                       r   test_generate_matchesz"TestPatterns.test_generate_matches  s   [C  [C  [C  [C  [C  [C  b"b"b){4((3--3--3--3--3--3--#b"b\B8&("XBx"b%C()qt= = = 	DD(;(;F(C(CDDD(	* 	* 	*TB4dCCCv.tdV<<==Wq)))qz1AQtWx00042r2r2r":;;; 	< 	<AQsQwZQ):):;;;;	< 	<r   c                    t          j        dt          j        d          t          j        d          t          j        d          f          }t          j        dd          }t          j        dd          }t          j        dd	          }t          j        d|||g          }i }|                     |                    ||                     |                     |d         |g           d S )
NiK     argsr      (r   r   ))	r   r   r   r   r   rD   r?   r   r   )r   patternr   r*   r8   noder   s          r   test_has_key_examplez!TestPatterns.test_has_key_example  s    $S&,&8&;&;&,&<&&I&I&I&,&8&;&;&=> > [C  [C  [C  {3R--dA..///6RD)))))r   N)r   r   r   r   r   r   r   rX   r   r   r   r   h  sT        0"  "  " H  >< < <<* * * * *r   r   N)	r<   r   lib2to3r   r   	NameErrorTestCaser   r   rX   r   r   <module>r      s               
FF       L0 L0 L0 L0 L0  L0 L0 L0^
p* p* p* p* p*7# p* p* p* p* p*s    