U
    hâËdh  ã                   @   sl   d dl Zd dlmZmZmZ d dlmZmZ dZ	dd„ Z
dZdZd	d
„ ZG dd„ deƒZedkrhe ¡  dS )é    N)ÚcudaÚint32Úfloat32)ÚunittestÚCUDATestCaseéd   c                 C   sN   t j tt¡}t  d¡}|dkr6ttƒD ]}|||< q(t  ¡  || | |< d S )Né   r   )r   ÚsharedÚarrayÚNr   ÚgridÚrangeÚsyncthreads)ÚaryÚsmÚiÚj© r   ú]/home/sam/Atlas/atlas_env/lib/python3.8/site-packages/numba/cuda/tests/cudapy/test_globals.pyÚsimple_smem   s    

r   é
   é   c                 C   sX   t  d¡\}}t j ttft¡}|d |d  |||f< t  ¡  |||f | ||f< d S )Né   r   )r   r   r	   r
   ÚS0ÚS1r   r   )r   r   r   r   r   r   r   Úcoop_smem2d   s
    r   c                   @   s"   e Zd Zdd„ Zejdd„ ƒZdS )ÚTestCudaTestGlobalc              	   C   sV   t  d¡tƒ}d}tj|tjd�}|d|f |ƒ |  t |tj|tjd�k¡¡ dS )zTest simple_smem
        zvoid(int32[:])r   ©Zdtyper   N)	r   Újitr   ÚnpÚemptyr   Ú
assertTrueÚallZarange)ÚselfÚcompiledZnelemr   r   r   r   Útest_global_int_const   s
    z(TestCudaTestGlobal.test_global_int_constc                 C   s–   t  d¡tƒ}d}tj|tjd�}|d|f |ƒ t |¡}t|jd ƒD ]4}t|jd ƒD ] }t	|d ƒ|d  |||f< q\qJ|  
t ||¡¡ dS )zTest coop_smem2d
        zvoid(float32[:,:]))r   r   r   r   r   N)r   r   r   r   r    r   Z
empty_liker   ÚshapeÚfloatr!   Zallclose)r#   r$   r&   r   Úexpr   r   r   r   r   Útest_global_tuple_const*   s    
 z*TestCudaTestGlobal.test_global_tuple_constN)Ú__name__Ú
__module__Ú__qualname__r%   r   ZSkipTestr)   r   r   r   r   r      s   r   Ú__main__)Únumpyr   Znumbar   r   r   Znumba.cuda.testingr   r   r   r   r   r   r   r   r*   Úmainr   r   r   r   Ú<module>   s   
