U
    ,d                     @   s`   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r\e   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   A/tmp/pip-unpacked-wheel-eu7e0c37/numba/tests/test_extended_arg.pyf   s    z6TestExtendedArg.get_extended_arg_load_const.<locals>.f   z<BB)N)*      Nr   )Z
codestringconsts)
	bytearray__code__co_code	co_constsstructpackdisEXTENDED_ARGr   bytes)selfr
   br   bytecode_lenZ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)Znopython)r   ZassertPreciseEqualr   )r   ZpyfuncZ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__)Zunittestr   r   sysZnumbar   Znumba.tests.supportr   r   r   r   mainr   r   r   r	   <module>   s   