§
    *‚Kgo  ã                   ó\   — d Z ddlZddlZddlZ e¦   «         Z G d„ dej        ¦  «        ZdS )zGbytecode_helper - support tools for testing correct bytecode generationé    Nc                   ó,   — e Zd ZdZd„ Zefd„Zefd„ZdS )ÚBytecodeTestCasez1Custom assertion methods for inspecting bytecode.c                 ó|   — t          j        ¦   «         }t          j        ||¬¦  «         |                     ¦   «         S )N)Úfile)ÚioÚStringIOÚdisÚgetvalue)ÚselfÚcoÚss      ú3/usr/lib/python3.11/test/support/bytecode_helper.pyÚget_disassembly_as_stringz*BytecodeTestCase.get_disassembly_as_string   s0   € ÝŒK‰MŒMˆÝŒ�˜ÐÑÔÐØ�zŠz‰|Œ|Ðó    c                 ó  — t          j        |¦  «        D ]%}|j        |k    r|t          u s|j        |k    r|c S Œ&|                      |¦  «        }|t          u r|›d|›�}n
d}||||fz  }|                      |¦  «         dS )zAReturns instr if opname is found, otherwise throws AssertionErrorz not found in bytecode:
z!(%s,%r) not found in bytecode:
%sN)r	   Úget_instructionsÚopnameÚ_UNSPECIFIEDÚargvalr   Úfail©r   Úxr   r   ÚinstrÚdisassemblyÚmsgs          r   ÚassertInBytecodez!BytecodeTestCase.assertInBytecode   s£   € åÔ)¨!Ñ,Ô,ð 	!ð 	!ˆEØŒ|˜vÒ%Ð%Ø�\Ð)Ð)¨U¬\¸VÒ-CÐ-CØ �L�L�LøØ×4Ò4°QÑ7Ô7ˆØ•\Ð!Ð!Ø5;°V°V¸[¸[ÐIˆCˆCà6ˆCØ˜ ¨Ð5Ñ5ˆCØ�	Š	�#‰Œˆˆˆr   c                 ó  — t          j        |¦  «        D ]r}|j        |k    re|                      |¦  «        }|t          u r|›d|›�}|                      |¦  «         ŒH|j        |k    rd}||||fz  }|                      |¦  «         ŒsdS )z(Throws AssertionError if opname is foundz occurs in bytecode:
z(%s,%r) occurs in bytecode:
%sN)r	   r   r   r   r   r   r   r   s          r   ÚassertNotInBytecodez$BytecodeTestCase.assertNotInBytecode   s¥   € åÔ)¨!Ñ,Ô,ð 		#ð 		#ˆEØŒ|˜vÒ%Ð%Ø"×<Ò<¸QÑ?Ô?�Ø�\Ð)Ð)Ø:@¸&¸&À+À+ÐN�CØ—I’I˜c‘N”N�N�NØ”\ VÒ+Ð+Ø;�CØ ¨°Ð =Ñ=�CØ—I’I˜c‘N”N�Nøð		#ð 		#r   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r   r   © r   r   r   r   	   s\   € € € € € Ø;Ð;ðð ð ð
 2>ð ð ð ð ð 5Að #ð #ð #ð #ð #ð #r   r   )r"   Úunittestr	   r   Úobjectr   ÚTestCaser   r#   r   r   ú<module>r'      sh   ðØ MÐ Mà €€€Ø 
€
€
€
Ø 	€	€	€	àˆv‰xŒx€ð!#ð !#ð !#ð !#ð !#�xÔ(ñ !#ô !#ð !#ð !#ð !#r   