
    -Sh                         d Z ddlmZ ddlmZ ddlmZ ddlZddlZddlZddlm	Z	  G d dej
                  Z
 ee
d	          s ee
d	e
j                   d
 Zd ZdS )zUseful stuff for tests.    )absolute_import)division)print_functionN)zipc                       e Zd Zd ZdS )TestCasec           	         ||dS 	 |                      |           |                      |           t          t          j        |          t          j        |                    D ]\  }}|                     t          |          t          |                      t          |                      j        D ]U}t          ||d          }t          ||d          }t          |t                    r-t          ||          D ]\  }}	| 
                    ||	           gt          |t          j                  st          |t          j                  rt          |t          j        t          j        t          j        f          sqt          |t          j        t          j        t          j        f          s@|                      |           |                      |           | 
                    ||           ?|                     ||           WdS # t          $ rM}
|                     dt          j        |          dt          j        |          d|
           Y d}
~
dS d}
~
ww xY w)ziCompares two ASTs and fails if there are differences.

    Ignores `ctx` fields and formatting info.
    NzASTs differ:
z
  !=
z

)assertIsNotNoner   astwalkassertEqualtype_fieldsgetattr
isinstancelistcheckAstsEqualASTLoadStoreParamAssertionErrorfaildump)selfabnode_anode_bfielda_valb_valitem_aitem_baes              [/var/www/html/movieo_spanner_bot/venv/lib/python3.11/site-packages/pasta/base/test_utils.pyr   zTestCase.checkAstsEqual   sd   
 	yQYf)
1
1SXa[[99 + +.&&ftF||444!T&\\^^+ 	+ 	+E&%..%&%..%t$$ 
+"%eU"3"3 2 2!!&&11112%)) +Zsw-G-G +usxCI&FGG 0usxCI&FGG0""5)))""5)))!!%///UE****	++ +"  ) ) )
iii
(1++++sx{{{{BB( ) ) ) ) ) ) ) ) ))s   H	H 
I*AI%%I*N)__name__
__module____qualname__r        r&   r   r      s#        ) ) ) ) )r+   r   assertItemsEqualc                  t    t          j        t          d | D                       dd | D             z            S )Nc              3   6   K   | ]}t          |           V  d S )Nsupports_feature).0features     r&   	<genexpr>z$requires_features.<locals>.<genexpr>D   s.      	@	@Gw''
'	@	@	@	@	@	@r+   zMTests features which are not supported by this version of python. Missing: %rc                 0    g | ]}t          |          |S r*   r/   )r1   fs     r&   
<listcomp>z%requires_features.<locals>.<listcomp>F   s&    FFFQ2B12E2EFqFFFr+   )unittestskipIfany)featuress    r&   requires_featuresr;   B   sO    			@	@x	@	@	@@@FF(FFFG
H 
H Hr+   c                    | dk    r9t          t          d          o#t          t          j        t          j                  S | dk    r9t          t          d          o#t          t          j        t          j                  S | dk    r)	 t          j        d           n# t          $ r Y dS w xY wdS | d	k    r9t          t          d
          o#t          t          j        t          j                  S | dk    rt          j
        d         dk     S dS )N
bytes_nodeBytes	exec_nodeExectype_annotationsz#def foo(bar: str=123) -> None: passFTfstring	JoinedStrmixed_tabs_spacesr      )hasattrr   
issubclassr>   r   r@   parseSyntaxErrorrC   sysversion_info)r2   s    r&   r0   r0   I   s    3  CZ	37%C%CC3AJsx$A$AA"""	i56666   UU4	3$$KCM37)K)KK###A""	s   B 
B)(B))__doc__
__future__r   r   r   r   rJ   r7   	six.movesr   r   rF   setattrassertCountEqualr;   r0   r*   r+   r&   <module>rQ      s      ' & & & & &       % % % % % % 



 



       ) ) ) ) )x  ) ) )D wx+,, C	'(&(ABBBH H H    r+   