
    `N`                     8   d Z ddlZddlmZ ddlmZ ddlmZ ddlmZ ej	        j
        ZdZdZd	Zd
ZdZdZ G d dej                  Z G d dej                  Z G d dej                  Z G d dej                  Zedk    r ej                     dS dS )zTests for yapf.pytree_utils.    N)pygram)pytree)token)pytree_utilsfoofoo1foo2foo3foo4foo5c                       e Zd Zd Zd ZdS )NodeNameTestc                     t          j        t          j        d          }|                     dt          j        |                     d S )N(LPAR)r   Leafr   r   assertEqualr   NodeName)selfleafs     ;lib/python3.11/site-packages/yapftests/pytree_utils_test.pytestNodeNameForLeafz NodeNameTest.testNodeNameForLeaf&   s<    ;uz3''DV\248899999    c                     t          j        t          j        d          }t          j        t
          j        j        d         |g          }|                     dt          j
        |                     d S )Nr   suite)r   r   r   r   Noder   python_grammarsymbol2numberr   r   r   )r   r   nodes      r   testNodeNameForNodez NodeNameTest.testNodeNameForNode*   sZ    ;uz3''D;v,:7CdVLLDWl3D99:::::r   N)__name__
__module____qualname__r   r     r   r   r   r   $   s2        : : :; ; ; ; ;r   r   c                   &    e Zd Zd Zd Zd Zd ZdS )ParseCodeToTreeTestc                 4   t          j        d          }|                     dt          j        |                     |                     dt	          |j                             |                     dt          j        |j        d                              d S )Nzfoo = 2

file_input   simple_stmtr   r   ParseCodeToTreer   r   lenchildrenr   trees     r   testParseCodeToTreez'ParseCodeToTreeTest.testParseCodeToTree2   s     '44D\<#8#>#>???QDM**+++]L$9$-:J$K$KLLLLLr   c                 4   t          j        d          }|                     dt          j        |                     |                     dt	          |j                             |                     dt          j        |j        d                              d S )Nz&print("hello world", file=sys.stderr)
r(   r)   r*   r   r+   r/   s     r   testPrintFunctionToTreez+ParseCodeToTreeTest.testPrintFunctionToTree:   s    '13 3D\<#8#>#>???QDM**+++]L$9$-:J$K$KLLLLLr   c                 4   t          j        d          }|                     dt          j        |                     |                     dt	          |j                             |                     dt          j        |j        d                              d S )Nzprint "hello world"
r(   r)   r*   r   r+   r/   s     r   testPrintStatementToTreez,ParseCodeToTreeTest.testPrintStatementToTreeA   s    '(?@@D\<#8#>#>???QDM**+++]L$9$-:J$K$KLLLLLr   c                 4   t          j        d          }|                     dt          j        |                     |                     dt	          |j                             |                     dt          j        |j        d                              d S )Nzclass nonlocal: pass
r(   r)   classdefr   r+   r/   s     r   testClassNotLocalz%ParseCodeToTreeTest.testClassNotLocalG   s    '(@AAD\<#8#>#>???QDM**+++Z!6t}Q7G!H!HIIIIIr   N)r!   r"   r#   r1   r3   r5   r8   r$   r   r   r&   r&   0   s^        M M MM M MM M MJ J J J Jr   r&   c                   >    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	S )
InsertNodesBeforeAfterTestc                 @   t          j        t          j        d          }t          j        t          j        d          }t          j        t
          d         t          j        t          j        d          g          }t          j        t
          d         |||g          S )Nr   r*   r   r   )r   r   r   r   r   _GRAMMAR_SYMBOL2NUMBERNAME)r   lpar1lpar2r*   s       r   _BuildSimpleTreez+InsertNodesBeforeAfterTest._BuildSimpleTreeP   s     K
C((EK
C((E+4]C%{5:u==>@ @K;-g6uk24 4 4r   c                 @    t          j        t          j        d          S )N))r   r   r   RPARr   s    r   _MakeNewNodeRPARz+InsertNodesBeforeAfterTest._MakeNewNodeRPARa   s    ;uz3'''r   c                 8    |                                  | _        d S N)r@   _simple_treerD   s    r   setUpz InsertNodesBeforeAfterTest.setUpd   s    --//Dr   c                    t          j        |                                 g| j        j        d                    |                     dt          | j        j                             |                     dt          j        | j        j        d                              |                     dt          j        | j        j        d                              d S )Nr)      rC   r*      )r   InsertNodesBeforerE   rH   r.   r   r-   r   rD   s    r   testInsertNodesBeforez0InsertNodesBeforeAfterTest.testInsertNodesBeforeg   s    "D$9$9$;$;#<#'#4#=a#@B B BQD-677888V!*4+<+Ea+HIIK K K]!*4+<+Ea+HIIK K K K Kr   c                 
   | j         j        d         }|j        d         }t          j        |                                 g|           |                     dt          | j         j                             |                     dt          |j                             |                     dt          j        |j        d                              |                     dt          j        |j        d                              d S )Nr)   r   rL   rC   r=      )rH   r.   r   rM   rE   r   r-   r   r   r*   	foo_childs      r   testInsertNodesBeforeFirstChildz:InsertNodesBeforeAfterTest.testInsertNodesBeforeFirstChildq   s    #,Q/K$Q'I"D$9$9$;$;#<iHHHQD-677888QK011222V\2;3G3JKKLLLV\2;3G3JKKLLLLLr   c                    t          j        |                                 g| j        j        d                    |                     dt          | j        j                             |                     dt          j        | j        j        d                              |                     dt          j        | j        j        d                              d S )Nr)   rK   r*   rC   rL   )r   InsertNodesAfterrE   rH   r.   r   r-   r   rD   s    r   testInsertNodesAfterz/InsertNodesBeforeAfterTest.testInsertNodesAfter{   s    !4#8#8#:#:";"&"3"<Q"?A A AQD-677888]!*4+<+Ea+HIIK K KV!*4+<+Ea+HIIK K K K Kr   c                 
   | j         j        d         }|j        d         }t          j        |                                 g|           |                     dt          | j         j                             |                     dt          |j                             |                     dt          j        |j        d                              |                     dt          j        |j        d                              d S )Nr)   r   rL   r=   rC   rP   )rH   r.   r   rU   rE   r   r-   r   rQ   s      r   testInsertNodesAfterLastChildz8InsertNodesBeforeAfterTest.testInsertNodesAfterLastChild   s    #,Q/K$Q'I!4#8#8#:#:";YGGGQD-677888QK011222V\2;3G3JKKLLLV\2;3G3JKKLLLLLr   c                     |                      t                    5  t          j        | j        j        d         g| j        j        d                    d d d            d S # 1 swxY w Y   d S )NrP   r   )assertRaisesRuntimeErrorr   rU   rH   r.   rD   s    r   testInsertNodesWhichHasParentz8InsertNodesBeforeAfterTest.testInsertNodesWhichHasParent   s    			<	(	( C C#T%6%?%B$C$($5$>q$AC C CC C C C C C C C C C C C C C C C C Cs   7AA#&A#N)r!   r"   r#   r@   rE   rI   rN   rS   rV   rX   r\   r$   r   r   r:   r:   N   s        4 4 4"( ( (0 0 0K K KM M MK K KM M MC C C C Cr   r:   c                   8    e Zd Zd Zd Zd Zd Zd Zd Zd Z	dS )	AnnotationsTestc                     t          j        t          j        d          | _        t          j        t          d         t          j        t          j        d          g          | _        d S )Nr   r*   r   )	r   r   r   r   _leafr   r<   r=   _noderD   s    r   rI   zAnnotationsTest.setUp   sJ    UZ--DJ3MB$k%*e<<=? ?DJJJr   c                 j    |                      t          j        | j        t                               d S rG   )assertIsNoner   GetNodeAnnotationr`   _FOOrD   s    r   testGetWhenNonezAnnotationsTest.testGetWhenNone   s+    l4TZFFGGGGGr   c                     t          j        | j        t          d           |                     t          j        | j        t                    d           d S N   r   SetNodeAnnotationr`   re   r   rd   rD   s    r   testSetWhenNonezAnnotationsTest.testSetWhenNone   D    "4:tR888\3DJEErJJJJJr   c                 R   t          j        | j        t          d           |                     t          j        | j        t                    d           t          j        | j        t          d           |                     t          j        | j        t                    d           d S )Nri      rj   rD   s    r   testSetAgainzAnnotationsTest.testSetAgain   s    "4:tR888\3DJEErJJJ"4:tR888\3DJEErJJJJJr   c                    t          j        | j        t          d           t          j        | j        t          d           t          j        | j        t
          d           t          j        | j        t          d           t          j        | j        t          d           t          j        | j        t          d           | 	                    t          j
        | j        t                    d           | 	                    t          j
        | j        t                    d           | 	                    t          j
        | j        t
                    d           | 	                    t          j
        | j        t                    d           | 	                    t          j
        | j        t                    d           | 	                    t          j
        | j        t                    d           d S )Nri   rP   r)   rL   rK      )r   rk   r`   re   _FOO1_FOO2_FOO3_FOO4_FOO5r   rd   rD   s    r   testMultiplezAnnotationsTest.testMultiple   sp   "4:tR888"4:ua888"4:ua888"4:ua888"4:ua888"4:ua888\3DJEErJJJ\3DJFFJJJ\3DJFFJJJ\3DJFFJJJ\3DJFFJJJ\3DJFFJJJJJr   c                    t          j        | j        t           j        j        t
                     |                     t          j        | j        t           j        j                  t
          h           t          j        | j        t
                     |                     t          j        | j        t           j        j                  t                                 d S rG   )
r   AppendNodeAnnotationr`   
AnnotationSUBTYPEre   assertSetEqualrd   RemoveSubtypeAnnotationsetrD   s    r   testSubtypezAnnotationsTest.testSubtype   s    %dj&2&=&EtM M M 	&tz'3'>'F	H 	HJNQ Q Q (T:::&tz'3'>'F	H 	HILP P P P Pr   c                     t          j        | j        t          d           |                     t          j        | j        t                    d           d S rh   )r   rk   ra   re   r   rd   rD   s    r   testSetOnNodezAnnotationsTest.testSetOnNode   rm   r   N)
r!   r"   r#   rI   rf   rl   rp   rx   r   r   r$   r   r   r^   r^      s        ? ? ?
H H HK K KK K KK K KP P PK K K K Kr   r^   __main__)__doc__unittestlib2to3r   r   lib2to3.pgen2r   yapf.yapflibr   r   r   r<   re   rs   rt   ru   rv   rw   TestCaser   r&   r:   r^   r!   mainr$   r   r   <module>r      s   # "                    % % % % % %  .< 	; 	; 	; 	; 	;8$ 	; 	; 	;J J J J J(+ J J J<EC EC EC EC EC!2 EC EC ECP3K 3K 3K 3K 3Kh' 3K 3K 3Kl z(-///// r   