U
    iâËdH  ã                   @   s¼   d Z ddlZddlmZmZ ddlmZmZ dZdZ	dZ
ee	ddd	�d
d„ ƒZee	dd�dd„ ƒZee
ddd	�dd„ ƒZedd�dd„ ƒZee	ddd	�dd„ ƒZG dd„ deƒZdd„ ZdS )zz
This file will be copied to a temporary directory in order to
exercise caching compiled C callbacks.

See test_cfunc.py.
é    N)ÚcfuncÚjit)ÚTestCaseÚcaptured_stderré   zfloat64(float64, float64)zfloat64(int64, int64)T)ÚcacheÚnopythonc                 C   s   | | t  S ©N©ÚZ©ÚxÚy© r   úY/home/sam/Atlas/atlas_env/lib/python3.8/site-packages/numba/tests/cfunc_cache_usecases.pyÚadd_usecase   s    r   )r   c                 C   s   | | t  S r	   r
   r   r   r   r   Úadd_nocache_usecase   s    r   c                 C   s   | | S r	   r   )ÚaÚbr   r   r   Údiv_usecase   s    r   c                 C   s   | | t  S r	   r
   r   r   r   r   Úinner"   s    r   c                 C   s   t | | ƒS r	   )r   r   r   r   r   Úouter&   s    r   c                   @   s   e Zd ZdZdd„ ZdS )Ú_TestModulez¢
    Tests for functionality of this module's cfuncs.
    Note this does not define any "test_*" method, instead check_module()
    should be called by hand.
    c              	   C   sÀ   |j }|  | dd¡d¡ |j}|  | dd¡d¡ |j}|  | dd¡d¡ |j}tƒ �}|  | dd¡d¡ W 5 Q R X |  | ¡ d	¡ tƒ �}| dd
¡ W 5 Q R X | ¡ }|  	d|¡ d S )Ng       @g      @g      @g      @g      @é   é   g      @Ú r   ÚZeroDivisionError)
r   ZassertPreciseEqualÚctypesr   r   r   r   ÚassertEqualÚgetvalueZassertIn)ÚselfÚmodÚfÚerrr   r   r   Úcheck_module2   s    z_TestModule.check_moduleN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r$   r   r   r   r   r   +   s   r   c                  C   s   t jt } tƒ  | ¡ d S r	   )ÚsysÚmodulesr%   r   r$   )r!   r   r   r   Ú	self_testD   s    
r+   )r(   r)   Znumbar   r   Znumba.tests.supportr   r   r   Zadd_sigZdiv_sigr   r   r   r   r   r   r+   r   r   r   r   Ú<module>   s$   





