o
    1&i                     @   sd   d dl Z d dlZd dlmZ d dlmZ G dd de jZG dd de jZ	e
dkr0e   dS dS )	    N)jit)override_configc                   @      e Zd Zdd Zdd ZdS )TestJITMethodc                 C   sr   G dd dt }|d}tj|dtjg dtjd |jj \}|j	d }|j \}| 
|jj d S )Nc                   @   &   e Zd Zdd Zedddd ZdS )zETestJITMethod.test_bound_jit_method_with_loop_lift.<locals>.Somethingc                 S   
   || _ d S Nx0selfr
    r   EC:\wamp64\www\opt\env\Lib\site-packages\numba/tests/test_jitmethod.py__init__      
zNTestJITMethod.test_bound_jit_method_with_loop_lift.<locals>.Something.__init__TZforceobjc                 S   s:   t jdt jd}| j}t|jd D ]}|| ||< q|S )N   )shapedtyper   )npemptyfloat32r
   ranger   )r   xar
   ir   r   r   method   s
   zLTestJITMethod.test_bound_jit_method_with_loop_lift.<locals>.Something.methodN__name__
__module____qualname__r   r   r   r   r   r   r   	Something       r!      r   )   r$   r$   r$   r$   )r   r   )objectr   testingZassert_array_equalr   arrayr   Z	overloadsvaluesZlifted
assertTrueZfndescnative)r   r!   	somethingZcresZjitloopZloopcresr   r   r   $test_bound_jit_method_with_loop_lift
   s   
z2TestJITMethod.test_bound_jit_method_with_loop_liftc                 C   s.   G dd dt }|d}| ||d d S )Nc                   @   r   )z8TestJITMethod.test_unbound_jit_method.<locals>.Somethingc                 S   r   r   r	   r   r   r   r   r   %   r   zATestJITMethod.test_unbound_jit_method.<locals>.Something.__init__Tr   c                 S   s   | j S r   r	   )r   r   r   r   r   (   s   z?TestJITMethod.test_unbound_jit_method.<locals>.Something.methodNr   r   r   r   r   r!   $   r"   r!   r#   )r%   assertEqualr   )r   r!   r+   r   r   r   test_unbound_jit_method#   s   z%TestJITMethod.test_unbound_jit_methodN)r   r   r    r,   r.   r   r   r   r   r   	   s    r   c                   @   r   )TestDisabledJITc                 C   sj   t dd dd }t|}W d    n1 sw   Y  | || | d|d | d|d d S )NDISABLE_JITTc                 S      | S r   r   r   r   r   r   r   3      z7TestDisabledJIT.test_decorated_function.<locals>.method
   r   r   r-   r   r   Zjittedr   r   r   test_decorated_function1   s   
z'TestDisabledJIT.test_decorated_functionc                 C   sp   t dd dd }tdd|}W d    n1 sw   Y  | || | d|d | d|d d S )Nr0   Tc                 S   r1   r   r   r2   r   r   r   r   =   r3   zCTestDisabledJIT.test_decorated_function_with_kwargs.<locals>.method)Znopythonr4   r5   r6   r   r   r   #test_decorated_function_with_kwargs;   s   z3TestDisabledJIT.test_decorated_function_with_kwargsN)r   r   r    r7   r8   r   r   r   r   r/   0   s    
r/   __main__)Zunittestnumpyr   Znumbar   Znumba.tests.supportr   ZTestCaser   r/   r   mainr   r   r   r   <module>   s    '