
    /hhK                         S SK r S SKJr  S SKrS SKr\" S5      rS SKJr   " S S\R                  5      r " S S\R                  5      r	 " S	 S
\R                  5      r
\S:X  a  \R                  " 5         gg)    N)import_module_opcode)stack_effectc                   ,    \ rS rSrS rS rS rS rSrg)OpListTests
   c                 "   U Hw  n[        U[        5      (       a  [        R                  U   nU R	                  XAS9   U R                  U" U5      [        5        U R                  U" U5      U5        S S S 5        My     g ! , (       d  f       M  = f)Nopcodefunc)
isinstancestrdisopmapsubTestassertIsInstanceboolassertEqual)selfr   opsexpectedops        :/opt/python-3.13.8/usr/lib/python3.13/test/test__opcode.pycheck_bool_function_result&OpListTests.check_bool_function_result   sm    B"c""YYr]R3%%d2h5  b84 43  43s   5A??
B	c                    / SQnU R                  [        R                  US5        U R                  [        R                  US5        U R                  [        R                  US5        U R                  [        R
                  US5        U R                  [        R                  US5        U R                  [        R                  US5        U R                  [        R                  US5        U R                  [        R                  US5        g )N)i   i   i  i  F)
r   r   is_validhas_arg	has_consthas_namehas_jumphas_free	has_localhas_exc)r   invalids     r   test_invalid_opcodes OpListTests.test_invalid_opcodes   s    1''(8(8'5I''%H''(9(97EJ''(8(8'5I''(8(8'5I''(8(8'5I''(9(97EJ''%H    c                     / SQnU Vs/ s H  n[         R                  U   PM     nnU R                  [        R                  US5        g s  snf )N)CACHEPOP_TOPIMPORT_NAMEJUMPINSTRUMENTED_RETURN_VALUET)r   r   r   r   r   )r   namesopnameopcodess       r   test_is_validOpListTests.test_is_valid   sE    
 4995399V$59''(8(8'4H :s   A
c                    S nU" U [         R                  [        R                  5        U" U [         R                  [        R
                  5        U" U [         R                  [        R                  5        U" U [         R                  [        R                  5        U" U [         R                  [        R                  5        U" U [         R                  [        R                  5        U" U [         R                  [        R                  5        g )Nc                     S HM  nU R                  X1S9   U" U5      nU R                  U[        5        U R                  XCU;   5        S S S 5        MO     g ! , (       d  f       Ma  = f)N)ii  r
   )r   r   r   r   )r   r   r   r   ress        r   check_function0OpListTests.test_oplists.<locals>.check_function*   sT     \\\7r(C))#t4$$S.9 87 !77s   3A
A$	)r   r    r   hasargr!   hasconstr"   hasnamer#   hasjumpr$   hasfreer%   haslocalr&   hasexc)r   r9   s     r   test_oplistsOpListTests.test_oplists)   s    	: 	tW__cjj9tW..=tW--s{{;tW--s{{;tW--s{{;tW..=tW__cjj9r*    N)	__name__
__module____qualname____firstlineno__r   r(   r4   rB   __static_attributes__rD   r*   r   r   r   
   s    5	I	I:r*   r   c                        \ rS rSrS rS rSrg)StackEffectTests:   c                    U R                  [        [        R                  S   5      S5        U R                  [        [        R                  S   S5      S5        U R                  [        [        R                  S   S5      S5        U R                  [        [        R                  S   S5      S5        U R	                  [
        [        S5        [        R                  n[        S	 [        R                  R                  5       5       HJ  u  p#U[        R                  :  a  M  U R                  US
9   [        U5        [        US5        S S S 5        ML     [        [        S5      5      [        [        R                  R                  5       5      -
   HR  nU R                  US9   U R	                  [
        [        U5        U R	                  [
        [        US5        S S S 5        MT     g ! , (       d  f       M  = f! , (       d  f       Mx  = f)Nr-   r   BUILD_SLICEr         i0u  c                 .    U S   [         R                  ;  $ Nr   r   deoptmapitems    r   <lambda>4StackEffectTests.test_stack_effect.<locals>.<lambda>C       d1gS\\.Ir*   r2      )r   )r   r   r   r   assertRaises
ValueErrorr;   filteritemsr   MIN_INSTRUMENTED_OPCODEr   setrangevalues)r   r    namecodes       r   test_stack_effect"StackEffectTests.test_stack_effect;   sm   cii	&:;R@cii&>BBGcii&>BBGcii&>BBG*lE:** !I399??K\]JDv555T*T"T1% +* ^ c
Oc#))*:*:*<&==DT*!!*lDA!!*lD!D +* >	 +*
 +*s   2G)$8G;)
G8	;
H
	c           	         [         R                  S   nU R                  [        US5      S5        U R                  [        USSS9S5        U R                  [        USSS9S5        [         R                  S   nU R                  [        US5      S5        U R                  [        USSS9S5        U R                  [        USSS9S5        [         R                  n[         R
                  n[         R                  [         R                  -   n[        S [         R                  R                  5       5       H  u  pgU[        R                  :  a  M  U R                  US	9   Xs;  a   [        U5      n[        USS9n	[        USS9n
O"[        US5      n[        USSS9n	[        USSS9n
Xu;   d  Xt;   a  U R                  U[        X5      5        O"U R                  X5        U R                  X5        S S S 5        M     g ! , (       d  f       M  = f)
NFOR_ITERr   rO   T)jumpFJUMP_FORWARDc                 .    U S   [         R                  ;  $ rS   rT   rV   s    r   rX   9StackEffectTests.test_stack_effect_jump.<locals>.<lambda>\   rZ   r*   r[   )r   r   r   r   r;   rA   hasjabshasjrelr_   r`   r   ra   r   max)r   rj   rl   r    r&   r#   re   rf   commonrk   nojumps              r   test_stack_effect_jump'StackEffectTests.test_stack_effect_jumpO   s   99Z(h2A6h=qAh>Byy0lA6:lADA1ElAEBAF****;;, !I399??K\]JDv555T*&)$/F'48D)$U;F)$2F'ad;D)$>F#t$$VS->?$$T2$$V4 +* ^ +*s   BG<<
H	rD   N)rE   rF   rG   rH   rg   rt   rI   rD   r*   r   rK   rK   :   s    E(5r*   rK   c                       \ rS rSrS rSrg)SpecializationStatsTestso   c                    / SQn[         R                   Vs/ s H:  n[         R                  R                  US5      (       d  M*  UR	                  5       PM<     nnU R                  SU5        U R                  SU5        [        R                  5       nUb  U R                  U[        5        U R                  UR                  5       U5        U R                  US   R                  5       US/-   5        U H  nU R                  US   U   [        5        M!     U R                  US   S   [        5        US   S    H  nU R                  U[        5        M     g g s  snf )N)successfailurehitdeferredmissdeoptr   	load_attrbinary_subscrfailure_kinds)r   _specializations_inline_cache_entriesgetlowerassertInr   get_specialization_statsr   dictassertCountEqualkeysinttuple)r   
stat_namesr   specialized_opcodesstatssnvs          r   test_specialization_stats2SpecializationStatsTests.test_specialization_statsp   sF   O
 --
-++//A6 BHHJ- 	 

 	k#67o':;002!!%.!!%**,0CD!!k"'')o..0 !%%eK&8&<cB !!!k"?3 ;'8%%a- 9 
s   )EErD   N)rE   rF   rG   rH   r   rI   rD   r*   r   rw   rw   o   s    .r*   rw   __main__)r   test.support.import_helperr   unittestr   r   r   TestCaser   rK   rw   rE   mainrD   r*   r   <module>r      sn    
 4  
	
"  -:(## -:`25x(( 25j.x00 .6 zMMO r*   