U
    hâËd   ã                   @   sX   d dl Zd dlmZmZmZmZmZ d dlm	Z	m
Z
 G dd„ de
ƒZedkrTe	 ¡  dS )é    N)ÚcudaÚfloat32Úfloat64Úint32Úvoid)ÚunittestÚCUDATestCasec                   @   s   e Zd Zdd„ Zdd„ ZdS )ÚTestCudaIDivc                 C   st   t  ttd d …d d …f ttƒ¡dd„ ƒ}tjdtjd�}t  |¡}|d |ddƒ | ¡ }|  	t 
|dk¡¡ d S )Nc                 S   s4   t |ƒD ]&}t |ƒD ]}| ||f  d  < qqd S ©Ng       @©Úrange©ÚgridZl_xZl_yÚxÚy© r   úZ/home/sam/Atlas/atlas_env/lib/python3.8/site-packages/numba/cuda/tests/cudapy/test_idiv.pyÚdiv	   s    z*TestCudaIDiv.test_inplace_div.<locals>.div©é   r   ©Zdtype©é   r   r   ç      à?)r   Újitr   r   r   ÚnpÚonesÚ	to_deviceÚcopy_to_hostÚ
assertTrueÚall)Úselfr   r   r   r   r   r   r   Útest_inplace_div   s     

zTestCudaIDiv.test_inplace_divc                 C   st   t  ttd d …d d …f ttƒ¡dd„ ƒ}tjdtjd�}t  |¡}|d |ddƒ | ¡ }|  	t 
|dk¡¡ d S )Nc                 S   s4   t |ƒD ]&}t |ƒD ]}| ||f  d  < qqd S r
   r   r   r   r   r   Ú
div_double   s    z8TestCudaIDiv.test_inplace_div_double.<locals>.div_doubler   r   r   r   r   )r   r   r   r   r   r   r   r   r   r   r    )r!   r#   r   r   r   r   r   r   Útest_inplace_div_double   s     

z$TestCudaIDiv.test_inplace_div_doubleN)Ú__name__Ú
__module__Ú__qualname__r"   r$   r   r   r   r   r	      s   r	   Ú__main__)Únumpyr   Znumbar   r   r   r   r   Znumba.cuda.testingr   r   r	   r%   Úmainr   r   r   r   Ú<module>   s
   