o
    8ήc                     @   sd   d dl Z d dlZd dlZd dlZd dlmZ d dlmZmZ G dd deZ	e
dkr0e   dS dS )    N)jit)TestCase
tweak_codec                   @   s    e Zd ZdZdd Zdd ZdS )TestExtendedArgz3
    Test support for the EXTENDED_ARG opcode.
    c                 C   sb   dd }t |jj}|jj}d}d}|d|  d }t|tjd|dd	< t|t	||d
 |S )zW
        Get a function with a EXTENDED_ARG opcode before a LOAD_CONST opcode.
        c                  S   s   d} | S )N    )xr   r   D/tmp/pip-target-vg8gfxp4/lib/python/numba/tests/test_extended_arg.pyf   s   z6TestExtendedArg.get_extended_arg_load_const.<locals>.f   z<BB)N)*      Nr   )
codestringconsts)
	bytearray__code__co_code	co_constsstructpackdisEXTENDED_ARGr   bytes)selfr
   br   bytecode_lenbytecode_formatr   r   r	   get_extended_arg_load_const   s   z+TestExtendedArg.get_extended_arg_load_constc                 C   s6   |   }| | d tdd|}| | d d S )Nr   T)nopython)r   assertPreciseEqualr   )r   pyfunccfuncr   r   r	   test_extended_arg_load_const!   s   z,TestExtendedArg.test_extended_arg_load_constN)__name__
__module____qualname____doc__r   r"   r   r   r   r	   r      s    r   __main__)unittestr   r   sysnumbar   numba.tests.supportr   r   r   r#   mainr   r   r   r	   <module>   s    