
    /hh                     J   S SK rS SKrS SKrS SKJr  S SKrS SKrS SKr\R                  " 5       (       d  \R                  " S5      e\" \" \" \5      5      5      r\R                  R                  \S5      r " S S\R                   5      r\S:X  a  \R&                  " 5         gg)    N)dirnamez'test irrelevant for an installed PythonParserc                   ^    \ rS rSr\S 5       r\S 5       rS rS rS r	S r
S rS	 rS
 rSrg)TestAsdlParser   c                 j   [         R                  R                  S[        5        [        R
                  R                  S[        R                  R                  [        S5      5      n[        R                  R                  SU5      n[        R                  R                  U5      nUR                  U5        X0l        U R                  R                  [        R                  R                  [        S5      5      U l        U R!                  U R                  R#                  U R                  5      S5        g )Nr   asdlzasdl.pyzPython.asdlzModule validation failed)syspathinsert
parser_dir	importlib	machinerySourceFileLoaderosjoinutilspec_from_loadermodule_from_specexec_moduler	   parsemod
assertTruecheck)clsloaderspecmodules       >/opt/python-3.13.8/usr/lib/python3.13/test/test_asdl_parser.py
setUpClassTestAsdlParser.setUpClass   s     	:&$$55Z;=~~..vv>0066"((..j-!HIsxx~~cgg.0JK    c                 &    [         R                  S	 g )Nr   )r
   r   )r   s    r   tearDownClassTestAsdlParser.tearDownClass%   s    HHQKr"   c                     [         R                  U l        [         R                  U l        U R                  R                  U l        g N)r   r	   r   typesselfs    r   setUpTestAsdlParser.setUp)   s+    "''	!%%XX^^
r"   c                     U R                  U R                  R                  S5        U R                  SU R                  5        U R                  SU R                  5        U R                  SU R                  5        g )NPythonstmtexprr   )assertEqualr   nameassertInr(   r)   s    r   test_moduleTestAsdlParser.test_module/   sP    1fdjj)fdjj)eTZZ(r"   c                    U R                   R                  nU R                  US   U R                  R                  5        U R                  US   R
                  U R                  R                  5        U R                  U R                  S   U R                  R                  5        U R                  U R                  S   U R                  R                  5        g )Nr   withitemalias)	r   dfnsassertIsInstancer	   TypevalueSumr(   Product)r*   defss     r   test_definitionsTestAsdlParser.test_definitions5   s    xx}}d1gtyy~~6d1gmmTYY]];djj4dii6G6GHdjj14993D3DEr"   c                 X    U R                   S   nU R                  [        U5      S5        g )Nr8   zProduct([Field(identifier, name), Field(identifier, asname, opt=True)], [Field(int, lineno), Field(int, col_offset), Field(int, end_lineno, opt=True), Field(int, end_col_offset, opt=True)]))r(   r1   str)r*   r8   s     r   test_productTestAsdlParser.test_product=   s,    

7#JW	Xr"   c                    U R                   S   nU R                  [        UR                  5      S5        U R                  [	        UR                  S   5      S5        U R                  [	        UR                  S   5      S5        U R                  [	        UR                  S   5      S5        U R                  [	        UR                  S	   5      S
5        g )Nr/      r   zField(int, lineno)   zField(int, col_offset)   z Field(int, end_lineno, opt=True)   z$Field(int, end_col_offset, opt=True))r(   r1   len
attributesrepr)r*   r/   s     r   test_attributesTestAsdlParser.test_attributesE   s    zz&!T__-q1dooa013GHdooa013KLdooa013UVdooa013YZr"   c                    U R                   S   nU R                  [        UR                   5      S5        U R                  [        UR                  5      S5        UR                   S   nU R	                  X R
                  R                  5        U R                  [        UR                  5      S5        UR                  S   nU R                  UR                  S5        U R                  UR                  S5        U R                  UR                  5        UR                  S   nU R                  UR                  S5        U R                  UR                  S	5        U R                  UR                  5        UR                  S
   nU R                  UR                  S5        U R                  UR                  S5        U R                  UR                  5        U R                  UR                  5        g )NexcepthandlerrH   rG   r   rJ   r0   type
identifierr2   rI   r/   body)r(   r1   rK   rL   r:   r	   ConstructorfieldsrR   r2   r   optassertFalseseq)r*   ehandlerconsf0f1f2s         r   test_constructor_fields&TestAsdlParser.test_constructor_fieldsM   sd   ::o.X^^,a0X00115~~a dII$9$9:T[[)1-[[^&)&)[[^,/&)[[^&)&) r"   c                      " S SU R                   R                  5      nU" 5       nUR                  U R                  S   5        U R	                  UR
                  / SQ5        g )Nc                   @   ^  \ rS rSrU 4S jrS rS rS rS rSr	U =r
$ )2TestAsdlParser.test_visitor.<locals>.CustomVisitorg   c                 0   > [         TU ]  5         / U l        g r'   )super__init__names_with_seq)r*   	__class__s    r   rg   ;TestAsdlParser.test_visitor.<locals>.CustomVisitor.__init__h   s     "&(#r"   c                 L    UR                    H  nU R                  U5        M     g r'   )r9   visit)r*   r   dfns      r   visitModule>TestAsdlParser.test_visitor.<locals>.CustomVisitor.visitModulel   s    88CJJsO $r"   c                 :    U R                  UR                  5        g r'   )rl   r<   )r*   rR   s     r   	visitType<TestAsdlParser.test_visitor.<locals>.CustomVisitor.visitTypep   s    

4::&r"   c                 L    UR                    H  nU R                  U5        M     g r'   )r(   rl   )r*   sumts      r   visitSum;TestAsdlParser.test_visitor.<locals>.CustomVisitor.visitSums   s    AJJqM #r"   c                     UR                    H;  nUR                  (       d  M  U R                  R                  UR                  5        M=     g r'   )rV   rY   rh   appendr2   )r*   r[   fs      r   visitConstructorCTestAsdlParser.test_visitor.<locals>.CustomVisitor.visitConstructorw   s1    Auuu++22499= %r"   )rh   )__name__
__module____qualname____firstlineno__rg   rn   rq   rv   r{   __static_attributes____classcell__)ri   s   @r   CustomVisitorrc   g   s!    )$'"> >r"   r   r   )Moduler   InteractiveFunctionType)r	   VisitorBaserl   r(   r1   rh   )r*   r   vs      r   test_visitorTestAsdlParser.test_visitorf   sP    	>DII11 	>* O	

5!"))L	Nr"   )r	   r   r(   N)r}   r~   r   r   classmethodr    r$   r+   r4   r@   rD   rN   r_   r   r    r"   r   r   r      sQ    L L  $)FX[ 2Nr"   r   __main__)importlib.machineryr   importlib.utilr   os.pathr   r
   	sysconfigunittestis_python_buildSkipTest__file__src_baser   r   r   TestCaser   r}   mainr   r"   r   <module>r      s      	  
     ""


E
FF778,-.WW\\(H-
kNX&& kN\ zMMO r"   