a ze# @sVddlZddlmZddlZedZddlmZGdddejZedkrRe dS)N) import_module_opcode) stack_effectc@seZdZddZddZdS) OpcodeTestsc Cs|ttjdd|ttjdd|ttjddd|ttjddd|ttjddd |ttd |tttjd|tttjddtjD]r\}}|j|d L|tjkrt||tt|dnt|d|tt|Wdq1s0Yqt t d t tj D]R}|j|d .|tt||tt|dWdn1s0YqDdS)NZPOP_TOPZ DUP_TOP_TWOZ BUILD_SLICEri0uopname)Zopcode) assertEqualrdisopmapZ assertRaises ValueErroritemssubTest HAVE_ARGUMENTsetrangevalues)selfnamecoderE/opt/bitninja-python-dojo/embedded/lib/python3.9/test/test__opcode.pytest_stack_effect s&  0zOpcodeTests.test_stack_effectc Cstjd}|t|dd|t|dddd|t|ddddtjd}|t|dd|t|dddd|t|ddddtjd }|t|dd|t|dddd|t|ddddtjtj}tjD]\}}|j|d |tjkr2t|}t|dd}t|dd} n&t|d}t|ddd}t|ddd} ||vrv||t || n||||| |Wdq1s0YqdS) NJUMP_IF_TRUE_OR_POPrT)jumpFrFOR_ITERr JUMP_FORWARDr ) rrrrZhasjabsZhasjrelrrrmax) rrr r!Zhas_jumprrcommonrZnojumprrrtest_stack_effect_jump#s4         z"OpcodeTests.test_stack_effect_jumpN)__name__ __module__ __qualname__rr$rrrrr sr__main__) rZ test.supportrZunittestrrZTestCaserr%mainrrrrs  :