
    daf	                     6    d dl Z d dlZd dlmZ  G d de      Zy)    N)AssemblerTestCasec                        e Zd ZddZd Zd Zy)IsolatedAssembleTestsc                    |i }dD ]  }|j                  ||        dD ]  }|j                  |g         dD ]  }|j                  |i         dD ]  }|j                  |d        |j                  dd       |j                  d|       |S )	N)namequalname)consts)namesvarnamescellvarsfreevars
fasthidden)argcountposonlyargcountkwonlyargcountr   firstlineno   filename)
setdefault)selfmetadatar   keys       6/root/Python-3.12.4/Lib/test/test_compiler_assemble.pycomplete_metadataz'IsolatedAssembleTests.complete_metadata   s    H' 	*CS)	* 	)CR(	)N 	)CR(	)D 	(CQ'	(M1-J1    c                    | j                  |      }| j                  |      }| j                  |d   ||      }| j                  |t        j
                         i }|j                         D ]\  \  }}|dk(  rt        |t              rt        |      ||<   +t        |t              rt        |j                               ||<   X|||<   ^ |j                         D ]$  \  }}| j                  t        |d|z         |       & t	        j                  |i       }|j                         D ]  \  }	}
| j                   ||	 |
        y )Nr   r   co_)r   complete_insts_infoget_code_objectassertIsInstancetypesCodeTypeitems
isinstancelisttupledictkeysassertEqualgetattrFunctionType)r   instsr   expectedcoexpected_metadatar   valuefargsress              r   assemble_testz#IsolatedAssembleTests.assemble_test   s9   ))(3((/!!(:"6xHb%..1"..* 		/JCl"%&).u!#&E4().uzz|)<!#&).!#&		/ ,113 	>JCWR5u=	> r2&!) 	,ID#QXs+	,r   c                 Z    dddddiddddd}g d	}d
ddd}| j                  |||       y )Nzavg.pyavgz	stats.avg   r   r   )xy)r   r   r   r	   r   r   ))RESUMEr   )	LOAD_FASTr   r   )r;   r   r   )	BINARY_OPr   r   )
LOAD_CONSTr   r   )r<      r   )RETURN_VALUEr   g      @2      ))      )i   )
      )r4   )r   r   r,   r-   s       r   test_simple_exprz&IsolatedAssembleTests.test_simple_expr5   sK    !$a !+

 !rB5(H5r   N)z	myfile.py)__name__
__module____qualname__r   r4   rG    r   r   r   r   
   s    ,46r   r   )astr!   test.support.bytecode_helperr   r   rK   r   r   <module>rN      s    
  :
@6- @6r   