
    daf                         d dl Z d dlmZ d dlZd dlZ ed      Zd dlmZ  G d dej                        Z G d dej                        Z	e
d	k(  r ej                          yy)
    N)import_module_opcode)stack_effectc                       e Zd Zd Zd Zy)OpcodeTestsc                 0   | j                  t        t        j                  d         d       | j                  t        t        j                  d   d      d       | j                  t        t        j                  d   d      d       | j                  t        t        j                  d   d      d       | j	                  t
        t        d       | j	                  t
        t        t        j                  d          | j	                  t
        t        t        j                  d   d       t        j                  }t        d	 t        j                  j                               D ]  \  }}|t        j                  k\  r| j                  |
      5  ||vr(t        |       | j	                  t
        t        |d       n't        |d       | j	                  t
        t        |       d d d         t        t        d            t        t        j                  j                               z
  D ]T  }| j                  |      5  | j	                  t
        t        |       | j	                  t
        t        |d       d d d        V y # 1 sw Y   (xY w# 1 sw Y   nxY w)NPOP_TOPBUILD_SLICEr         i0u  c                 ,    | d   t         j                  vS Nr   disdeoptmapitems    ,/root/Python-3.12.4/Lib/test/test__opcode.py<lambda>z/OpcodeTests.test_stack_effect.<locals>.<lambda>       d1gS\\.I     opname   )opcode)assertEqualr   r   opmapassertRaises
ValueErrorhasargfilteritemsr   MIN_INSTRUMENTED_OPCODEsubTestsetrangevalues)selfhas_argnamecodes       r   test_stack_effectzOpcodeTests.test_stack_effect   s   cii	&:;R@cii&>BBGcii&>BBGcii&>BBG*lE:*lCIIm4LM*lCIIi4H!L** !I399??K\] 		FJD$v555T* Fw& &%%j,aH q)%%j,EF F		F c
Oc#))*:*:*<&== 	EDT* E!!*lDA!!*lD!DE E	EF FE Es   AI?<8J?J		J	c           	      @   t         j                  d   }| j                  t        |d      d       | j                  t        |dd      d       | j                  t        |dd      d       t         j                  d   }| j                  t        |d      d       | j                  t        |dd      d       | j                  t        |dd      d       t         j                  }t         j
                  }t         j                  t         j                  z   }t        d t         j                  j                               D ]  \  }}|t        j                  k\  r| j                  |	      5  ||vr&t        |      }t        |d      }	t        |d      }
n(t        |d      }t        |dd      }	t        |dd      }
||v s||v r| j                  |t        |	|
             n$| j                  |	|       | j                  |
|       d d d         y # 1 sw Y   xY w)
NFOR_ITERr   r   T)jumpFJUMP_FORWARDc                 ,    | d   t         j                  vS r   r   r   s    r   r   z4OpcodeTests.test_stack_effect_jump.<locals>.<lambda>3   r   r   r   )r   r   r   r   r"   hasexchasjabshasjrelr#   r$   r   r%   r&   max)r*   r0   r2   r+   has_exchas_jumpr,   r-   commonr1   nojumps              r   test_stack_effect_jumpz"OpcodeTests.test_stack_effect_jump&   s   99Z(h2A6h=qAh>Byy0lA6:lADA1ElAEBAF****;;, !I399??K\] 	5JD$v555T* 5w&)$/F'48D)$U;F)$2F'ad;D)$>F8#tw$$VSv->?$$T62$$VV45 5	55 5s   -BHH	N)__name__
__module____qualname__r.   r<    r   r   r   r   
   s    E45r   r   c                       e Zd Zd Zy)SpecializationStatsTestsc                    g d}t         j                  D cg c]6  }t         j                  t         j                  |      r|j	                         8 }}| j                  d|       | j                  d|       t        j                         }|| j                  |t               | j                  |j                         |       | j                  |d   j                         |dgz          |D ]  }| j                  |d   |   t                 | j                  |d   d   t               |d   d   D ]  }| j                  |t                y y c c}w )N)successfailurehitdeferredmissdeopt	load_attrbinary_subscrfailure_kinds)r   _specializations_inline_cache_entriesr   lowerassertInr   get_specialization_statsassertIsInstancedictassertCountEqualkeysinttuple)r*   
stat_namesopspecialized_opcodesstatssnvs          r   test_specialization_statsz2SpecializationStatsTests.test_specialization_statsG   sO   O
 --
++FLL,<= HHJ
 

 	k#67o':;002!!%.!!%**,0CD!!k"'')o..0 ! C%%eK&8&<cBC!!k"?3 ;'8 .%%a-. 
s   ;EN)r=   r>   r?   r^   r@   r   r   rB   rB   F   s    .r   rB   __main__)r   test.support.import_helperr   unittestr   r   r   TestCaser   rB   r=   mainr@   r   r   <module>rd      s]    
 4  
	
"  95(## 95x.x00 .6 zHMMO r   