o
    JXho                     @   s6   	 d dl Z d dlZd dlZe ZG dd de jZdS )    Nc                   @   s.   e Zd Z	 dd ZefddZefddZdS )BytecodeTestCasec                 C   s   t  }tj||d | S )N)file)ioStringIOdisgetvalue)selfcos r   F/opt/python-3.10.19/usr/lib/python3.10/test/support/bytecode_helper.pyget_disassembly_as_string   s   z*BytecodeTestCase.get_disassembly_as_stringc                 C   sv   	 t |D ]}|j|kr|tu s|j|kr|  S q| |}|tu r+d||f }n	d}||||f }| | d S )Nz%s not found in bytecode:
%sz!(%s,%r) not found in bytecode:
%s)r   get_instructionsopname_UNSPECIFIEDargvalr   failr   xr   r   ZinstrZdisassemblymsgr   r   r   assertInBytecode   s   

z!BytecodeTestCase.assertInBytecodec                 C   sp   	 t |D ]/}|j|kr5| |}|tu r"d||f }| | q|j|kr5d}||||f }| | qd S )Nz%s occurs in bytecode:
%sz(%s,%r) occurs in bytecode:
%s)r   r   r   r   r   r   r   r   r   r   r   assertNotInBytecode   s   



z$BytecodeTestCase.assertNotInBytecodeN)__name__
__module____qualname__r   r   r   r   r   r   r   r   r   	   s
    r   )Zunittestr   r   objectr   ZTestCaser   r   r   r   r   <module>   s    