a
    Rīh#  ć                   @   sV   d dl Z d dlmZ d dlZedZd dlmZ G dd dejZedkrRe 	”  dS )é    N)Śimport_moduleŚ_opcode)Śstack_effectc                   @   s   e Zd Zdd Zdd ZdS )ŚOpcodeTestsc              	   C   s  |   ttjd d” |   ttjd d” |   ttjd dd” |   ttjd dd” |   ttjd dd	” |  ttd
” |  tttjd ” |  tttjd d” tj ” D ]r\}}| j|dL |tjk ršt| |  tt|d” nt|d |  tt|” W d    q¶1 s0    Y  q¶t	t
dt	tj ”  D ]R}| j|d. |  tt|” |  tt|d” W d    n1 s0    Y  qDd S )NZPOP_TOPé’’’’ZDUP_TOP_TWOé   ZBUILD_SLICEr   é   é   éž’’’i0u  ©Śopnameé   )Zopcode)ŚassertEqualr   ŚdisŚopmapZassertRaisesŚ
ValueErrorŚitemsŚsubTestŚHAVE_ARGUMENTŚsetŚrangeŚvalues)ŚselfŚnameŚcode© r   ś9/opt/python-3.9.24/usr/lib/python3.9/test/test__opcode.pyŚtest_stack_effect   s&    

0zOpcodeTests.test_stack_effectc           
   	   C   s“  t jd }|  t|dd” |  t|dddd” |  t|dddd” t jd }|  t|dd” |  t|dddd” |  t|dddd” t jd	 }|  t|dd” |  t|dddd” |  t|dddd” t jt j }t j ” D ]Ą\}}| j|d
 |t jk r2t|}t|dd}t|dd}	n&t|d}t|ddd}t|ddd}	||v rv|  |t	||	” n|  ||” |  |	|” W d    qī1 s¤0    Y  qīd S )NŚJUMP_IF_TRUE_OR_POPr   T)ŚjumpFr   ŚFOR_ITERr   ŚJUMP_FORWARDr   )
r   r   r   r   ZhasjabsZhasjrelr   r   r   Śmax)
r   r   r    r!   Zhas_jumpr   r   Ścommonr   Znojumpr   r   r   Śtest_stack_effect_jump#   s4    




z"OpcodeTests.test_stack_effect_jumpN)Ś__name__Ś
__module__Ś__qualname__r   r$   r   r   r   r   r   	   s   r   Ś__main__)
r   Ztest.supportr   Zunittestr   r   ZTestCaser   r%   Śmainr   r   r   r   Ś<module>   s   :