
    /hh(                     F    S SK r S SKrS SKrS SKrS SKJr   " S S\5      rg)    N)AssemblerTestCasec                   <    \ rS rSrS
S jrS rS rS rS rS r	Sr
g	)IsolatedAssembleTests   c                 .   Uc  0 nS H  nUR                  X35        M     S H  nUR                  U/ 5        M     S H  nUR                  U0 5        M     S H  nUR                  US5        M     UR                  SS5        UR                  SU5        U$ )	N)namequalname)consts)namesvarnamescellvarsfreevars
fasthidden)argcountposonlyargcountkwonlyargcountr   firstlineno   filename)
setdefault)selfmetadatar   keys       D/opt/python-3.13.8/usr/lib/python3.13/test/test_compiler_assemble.pycomplete_metadata'IsolatedAssembleTests.complete_metadata   s    H'C) (CR( NCR( ODCQ' EM1-J1    c                 p    U R                  U5      nU R                  U5      nU R                  US   X25      $ )Nr   )r   seq_from_instsget_code_object)r   instsr   seqs       r   insts_to_code_object*IsolatedAssembleTests.insts_to_code_object   s:    ))(3!!%(##HZ$8#HHr   c                 Z   U R                  X5      nU R                  U[        R                  5        0 nUR	                  5        Hg  u  pgUS:X  a  M  [        U[        5      (       a  [        U5      XV'   M1  [        U[        5      (       a  [        UR                  5       5      XV'   Mc  XuU'   Mi     UR	                  5        H$  u  pgU R                  [        USU-   5      U5        M&     [        R                  " U0 5      nUR	                  5        H  u  pU R                  U" U	6 U
5        M     g )Nr   co_)r#   assertIsInstancetypesCodeTypeitems
isinstancelisttupledictkeysassertEqualgetattrFunctionType)r   r!   r   expectedcoexpected_metadatar   valuefargsress              r   assemble_test#IsolatedAssembleTests.assemble_test!   s    &&u7b%..1"..*JCl"%&&).u!&E4(().uzz|)<!&).#& + ,113JCWR5u= 4 r2&!)IDQXs+ *r   c                 X    SSSSS0SSSS.S.n/ S	QnS
SSS.nU R                  X!U5        g )Nzavg.pyavgz	stats.avg   r   r   )xy)r   r   r	   r
   r   r   )RESUMEr   )	LOAD_FASTr   r   )rC   r   r   )	BINARY_OPr   r   )
LOAD_CONSTr   r   )rD   r   r   )RETURN_VALUENr   g      @2      ))      )i   )
      )r:   )r   r   r!   r3   s       r   test_simple_expr&IsolatedAssembleTests.test_simple_expr8   sI    !$a !+

 !rB5H5r   c           
          S nUR                   R                  S   n[        U[        R                  5      (       d   eSSSSS0S SUSSS0SSS0S	.n/ S
QnSSSSSS.nU R                  XCU5        g )Nc                 $   ^  U 4S jnU" 5       S-  $ )Nc                     > T $ )N )r?   s   r   innerjIsolatedAssembleTests.test_expression_with_pseudo_instruction_load_closure.<locals>.mod_two.<locals>.innerS   s    r   r>   rS   )r?   rT   s   ` r   mod_two[IsolatedAssembleTests.test_expression_with_pseudo_instruction_load_closure.<locals>.mod_twoR   s    7Q;r   r   z
mod_two.pyrV   znested.mod_twor?   r   r>   )r   r   r	   r   r
   r   r   )rA   )LOAD_CLOSUREr   r   )BUILD_TUPLEr   r   )rE   r   r   )MAKE_FUNCTIONNr>   )SET_FUNCTION_ATTRIBUTE   r>   )	PUSH_NULLNr   )CALLr   r>   )rE   r>   r>   )rD      r>   )rF   Nr>   ))r   )r   )r>   )x   )y   )__code__	co_constsr+   r(   r)   r:   )r   rV   
inner_coder   instructionsr3   s         r   4test_expression_with_pseudo_instruction_load_closureJIsolatedAssembleTests.test_expression_with_pseudo_instruction_load_closureP   s    	
 %%//2
*enn5555 &")Q
Aq!4

 1Aq!D<8<r   c                    SSSS0S.n/ SQnU R                  X!5      n[        R                  " 5       n[        R                  " X4S9  [        R
                  " S5      nU R                  UR                  5       R                  U5      5        g )	Nzexc.pyexcr>   r   )r   r   r
   )rA   )SETUP_FINALLYrI   RETURN_CONSTr   )SETUP_CLEANUPr\   )PUSH_EXC_INFON)POP_TOPN
POP_EXCEPTNrk   )COPYrI   rp   )RERAISEr   )filez
                                       ExceptionTable:
                                         L1 to L2 -> L2 [0]
                                         L2 to L3 -> L3 [1] lasti
                                    )	r#   ioStringIOdistextwrapdedent
assertTruegetvalueendswith)r   r   r!   r4   output	exc_tables         r   test_exception_table*IsolatedAssembleTests.test_exception_tablev   sy    !a

 &&u7 OO %( )	
 	)229=>r   rS   N)z	myfile.py)__name__
__module____qualname____firstlineno__r   r#   r:   rN   rf   r   __static_attributes__rS   r   r   r   r      s"    I
,.60#=L?r   r   )rw   ru   rx   r(   test.support.bytecode_helperr   r   rS   r   r   <module>r      s#    
 	   :
H?- H?r   