a
    Ø
þdÝ  ã                   @   s¸   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„ dejƒZG dd„ dejƒZG dd„ dejƒZG dd„ dejƒZedkr´e ¡  dS )zTests for yapf.pytree_utils.é    N)Úpygram)Úpytree)Útoken)Úpytree_utilsÚfooZfoo1Zfoo2Zfoo3Zfoo4Zfoo5c                   @   s   e Zd Zdd„ Zdd„ ZdS )ÚNodeNameTestc                 C   s$   t  tjd¡}|  dt |¡¡ d S )Nú(ÚLPAR)r   ÚLeafr   r	   ÚassertEqualr   ÚNodeName)ÚselfÚleaf© r   úd/var/www/html/stable-diffusion-webui/venv/lib/python3.9/site-packages/yapftests/pytree_utils_test.pyÚtestNodeNameForLeaf&   s    z NodeNameTest.testNodeNameForLeafc                 C   s:   t  tjd¡}t  tjjd |g¡}|  dt	 
|¡¡ d S )Nr   Úsuite)r   r
   r   r	   ÚNoder   Úpython_grammarÚsymbol2numberr   r   r   )r   r   Únoder   r   r   ÚtestNodeNameForNode*   s    z NodeNameTest.testNodeNameForNodeN)Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r   r   r   $   s   r   c                   @   s,   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	S )
ÚParseCodeToTreeTestc                 C   sJ   t  d¡}|  dt  |¡¡ |  dt|jƒ¡ |  dt  |jd ¡¡ d S )Nzfoo = 2
Ú
file_inputé   Úsimple_stmtr   ©r   ÚParseCodeToTreer   r   ÚlenÚchildren©r   Útreer   r   r   ÚtestParseCodeToTree2   s    
z'ParseCodeToTreeTest.testParseCodeToTreec                 C   sJ   t  d¡}|  dt  |¡¡ |  dt|jƒ¡ |  dt  |jd ¡¡ d S )Nz&print("hello world", file=sys.stderr)
r   r   r   r   r   r#   r   r   r   ÚtestPrintFunctionToTree:   s    ÿz+ParseCodeToTreeTest.testPrintFunctionToTreec                 C   s8   |   t¡ t d¡ W d   ƒ n1 s*0    Y  d S )Nzprint "hello world"
©ÚassertRaisesÚSyntaxErrorr   r    ©r   r   r   r   ÚtestPrintStatementToTreeA   s    z,ParseCodeToTreeTest.testPrintStatementToTreec                 C   s8   |   t¡ t d¡ W d   ƒ n1 s*0    Y  d S )Nzclass nonlocal: pass
r'   r*   r   r   r   ÚtestClassNotLocalE   s    z%ParseCodeToTreeTest.testClassNotLocalN)r   r   r   r%   r&   r+   r,   r   r   r   r   r   0   s   r   c                   @   sL   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	dd„ Z
dS )ÚInsertNodesBeforeAfterTestc                 C   sN   t  tjd¡}t  tjd¡}t  td t  tjd¡g¡}t  td |||g¡S )Nr   r   r   r   )r   r
   r   r	   r   Ú_GRAMMAR_SYMBOL2NUMBERÚNAME)r   Zlpar1Zlpar2r   r   r   r   Ú_BuildSimpleTreeL   s    

ÿ
ÿz+InsertNodesBeforeAfterTest._BuildSimpleTreec                 C   s   t  tjd¡S )Nú))r   r
   r   ÚRPARr*   r   r   r   Ú_MakeNewNodeRPAR]   s    z+InsertNodesBeforeAfterTest._MakeNewNodeRPARc                 C   s   |   ¡ | _d S ©N)r0   Ú_simple_treer*   r   r   r   ÚsetUp`   s    z InsertNodesBeforeAfterTest.setUpc                 C   sf   t  |  ¡ g| jjd ¡ |  dt| jjƒ¡ |  dt  | jjd ¡¡ |  dt  | jjd ¡¡ d S )Nr   é   r2   r   é   )r   ÚInsertNodesBeforer3   r5   r"   r   r!   r   r*   r   r   r   ÚtestInsertNodesBeforec   s    
ÿÿÿz0InsertNodesBeforeAfterTest.testInsertNodesBeforec                 C   s‚   | j jd }|jd }t |  ¡ g|¡ |  dt| j jƒ¡ |  dt|jƒ¡ |  dt |jd ¡¡ |  dt |jd ¡¡ d S )Nr   r   r8   r2   r/   é   )r5   r"   r   r9   r3   r   r!   r   ©r   r   Z	foo_childr   r   r   ÚtestInsertNodesBeforeFirstChildm   s    
z:InsertNodesBeforeAfterTest.testInsertNodesBeforeFirstChildc                 C   sf   t  |  ¡ g| jjd ¡ |  dt| jjƒ¡ |  dt  | jjd ¡¡ |  dt  | jjd ¡¡ d S )Nr   r7   r   r2   r8   )r   ÚInsertNodesAfterr3   r5   r"   r   r!   r   r*   r   r   r   ÚtestInsertNodesAfterw   s    
ÿÿÿz/InsertNodesBeforeAfterTest.testInsertNodesAfterc                 C   s‚   | j jd }|jd }t |  ¡ g|¡ |  dt| j jƒ¡ |  dt|jƒ¡ |  dt |jd ¡¡ |  dt |jd ¡¡ d S )Nr   r   r8   r/   r2   r;   )r5   r"   r   r>   r3   r   r!   r   r<   r   r   r   ÚtestInsertNodesAfterLastChild   s    
z8InsertNodesBeforeAfterTest.testInsertNodesAfterLastChildc                 C   sL   |   t¡. t | jjd g| jjd ¡ W d   ƒ n1 s>0    Y  d S )Nr;   r   )r(   ÚRuntimeErrorr   r>   r5   r"   r*   r   r   r   ÚtestInsertNodesWhichHasParent‹   s    
ÿz8InsertNodesBeforeAfterTest.testInsertNodesWhichHasParentN)r   r   r   r0   r3   r6   r:   r=   r?   r@   rB   r   r   r   r   r-   J   s   



r-   c                   @   sD   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	dS )ÚAnnotationsTestc                 C   s2   t  tjd¡| _t  td t  tjd¡g¡| _d S )Nr   r   r   )	r   r
   r   r	   Ú_leafr   r.   r/   Ú_noder*   r   r   r   r6   ”   s    
ÿzAnnotationsTest.setUpc                 C   s   |   t | jt¡¡ d S r4   )ZassertIsNoner   ÚGetNodeAnnotationrD   Ú_FOOr*   r   r   r   ÚtestGetWhenNone™   s    zAnnotationsTest.testGetWhenNonec                 C   s*   t  | jtd¡ |  t  | jt¡d¡ d S ©Né   ©r   ÚSetNodeAnnotationrD   rG   r   rF   r*   r   r   r   ÚtestSetWhenNoneœ   s    zAnnotationsTest.testSetWhenNonec                 C   sP   t  | jtd¡ |  t  | jt¡d¡ t  | jtd¡ |  t  | jt¡d¡ d S )NrJ   é   rK   r*   r   r   r   ÚtestSetAgain    s    zAnnotationsTest.testSetAgainc                 C   sè   t  | jtd¡ t  | jtd¡ t  | jtd¡ t  | jtd¡ t  | jtd¡ t  | jtd¡ |  	t  
| jt¡d¡ |  	t  
| jt¡d¡ |  	t  
| jt¡d¡ |  	t  
| jt¡d¡ |  	t  
| jt¡d¡ |  	t  
| jt¡d¡ d S )NrJ   r;   r   r8   r7   é   )r   rL   rD   rG   Ú_FOO1Ú_FOO2Ú_FOO3Ú_FOO4Ú_FOO5r   rF   r*   r   r   r   ÚtestMultiple¦   s    zAnnotationsTest.testMultiplec                 C   s^   t  | jt jjt¡ |  t  | jt jj¡th¡ t  | jt¡ |  t  | jt jj¡t	ƒ ¡ d S r4   )
r   ZAppendNodeAnnotationrD   Z
AnnotationZSUBTYPErG   ZassertSetEqualrF   ZRemoveSubtypeAnnotationÚsetr*   r   r   r   ÚtestSubtypeµ   s     ÿÿþÿþzAnnotationsTest.testSubtypec                 C   s*   t  | jtd¡ |  t  | jt¡d¡ d S rI   )r   rL   rE   rG   r   rF   r*   r   r   r   ÚtestSetOnNodeÃ   s    zAnnotationsTest.testSetOnNodeN)
r   r   r   r6   rH   rM   rO   rV   rX   rY   r   r   r   r   rC   ’   s   rC   Ú__main__)Ú__doc__ZunittestZyapf_third_party._ylib2to3r   r   Z yapf_third_party._ylib2to3.pgen2r   Zyapf.pytreer   r   r   r.   rG   rQ   rR   rS   rT   rU   ZTestCaser   r   r-   rC   r   Úmainr   r   r   r   Ú<module>   s$   H6