U
    iâËd	  ã                   @   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rxe  ¡  dS )é    N)Újit)ÚtypesÚconfig)Úcompile_isolated)Úoverride_configc                   @   s   e Zd Zdd„ Zdd„ ZdS )ÚTestJITMethodc              	   C   sx   G dd„ dt ƒ}|dƒ}tj | d¡tjdddddgtjd�¡ |jj ¡ \}|j	d }|j ¡ \}|  
|jj¡ d S )Nc                   @   s    e Zd Zdd„ Zedd„ ƒZdS )zETestJITMethod.test_bound_jit_method_with_loop_lift.<locals>.Somethingc                 S   s
   || _ d S ©N©Úx0©Úselfr
   © r   úS/home/sam/Atlas/atlas_env/lib/python3.8/site-packages/numba/tests/test_jitmethod.pyÚ__init__   s    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   s   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                   @   s    e Zd Zdd„ Zedd„ ƒZdS )z8TestJITMethod.test_unbound_jit_method.<locals>.Somethingc                 S   s
   || _ d S r   r	   r   r   r   r   r   '   s    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   &   s   r   r    )r"   ZassertEqualsr   )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                   @   s   e Zd Zdd„ Zdd„ ZdS )ÚTestDisabledJITc              	   C   sV   t ddƒ� dd„ }t|ƒ}W 5 Q R X |  ||¡ |  d|dƒ¡ |  d|dƒ¡ d S )NÚDISABLE_JITTc                 S   s   | S r   r   ©r   r   r   r   r   5   s    z7TestDisabledJIT.test_decorated_function.<locals>.methodé
   ©r   r   ÚassertEqual©r   r   Zjittedr   r   r   Útest_decorated_function3   s    z'TestDisabledJIT.test_decorated_functionc              	   C   s\   t ddƒ� dd„ }tdd�|ƒ}W 5 Q R X |  ||¡ |  d|dƒ¡ |  d|dƒ¡ d S )Nr,   Tc                 S   s   | S r   r   r-   r   r   r   r   ?   s    zCTestDisabledJIT.test_decorated_function_with_kwargs.<locals>.method)Znopythonr.   r/   r1   r   r   r   Ú#test_decorated_function_with_kwargs=   s    z3TestDisabledJIT.test_decorated_function_with_kwargsN)r   r   r   r2   r3   r   r   r   r   r+   2   s   
r+   Ú__main__)ZunittestÚnumpyr   Znumbar   Z
numba.corer   r   Znumba.core.compilerr   Znumba.tests.supportr   ZTestCaser   r+   r   Úmainr   r   r   r   Ú<module>   s   '