o
    8ήc	                     @   s   d dl Z d dlZd dlmZ d dlmZm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r>e   dS dS )    N)jit)typesconfig)compile_isolated)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 ZdS )zETestJITMethod.test_bound_jit_method_with_loop_lift.<locals>.Somethingc                 S   
   || _ d S Nx0selfr    r   A/tmp/pip-target-vg8gfxp4/lib/python/numba/tests/test_jitmethod.py__init__      
zNTestJITMethod.test_bound_jit_method_with_loop_lift.<locals>.Something.__init__c                 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   testingassert_array_equalr   arrayr   	overloadsvalueslifted
assertTruefndescnative)r   r#   	somethingcresjitloop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__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'   assertEqualsr   )r   r#   r1   r   r   r   test_unbound_jit_method%   s   z%TestJITMethod.test_unbound_jit_methodN)r    r!   r"   r5   r7   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   5      z7TestDisabledJIT.test_decorated_function.<locals>.method
   r   r   assertEqualr   r   jittedr   r   r   test_decorated_function3   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 )Nr9   Tc                 S   r:   r   r   r;   r   r   r   r   ?   r<   zCTestDisabledJIT.test_decorated_function_with_kwargs.<locals>.method)nopythonr=   r>   r@   r   r   r   #test_decorated_function_with_kwargs=   s   z3TestDisabledJIT.test_decorated_function_with_kwargsN)r    r!   r"   rB   rD   r   r   r   r   r8   2   s    
r8   __main__)unittestnumpyr   numbar   
numba.corer   r   numba.core.compilerr   numba.tests.supportr   TestCaser   r8   r    mainr   r   r   r   <module>   s    '