U
    hâËdÙ  ã                   @   s’   d dl Zzd dlZdZW n ek
r0   dZY nX d dlmZmZ d dlm	Z	m
Z
mZmZ e ed¡e	dƒG dd	„ d	eƒƒƒZed
krŽe ¡  dS )é    NTF)ÚcudaÚtypes)Úskip_on_cudasimÚtest_data_dirÚunittestÚCUDATestCasez
Needs CFFIz"Simulator does not support linkingc                   @   s   e Zd Zdd„ ZdS )ÚTestCFFIc                    s„   t  ¡ ‰ttd ƒ}t t tj¡¡}t 	d|¡‰ tj
|gd�‡ ‡fdd„ƒ}t d¡ tj¡}|d |ƒ |  |d |d	 ¡ d S )
Nzjitlink.ptxÚarray_mutator)Úlinkc                    s   ˆ  | ¡}ˆ |ƒ d S )N)Zfrom_buffer)ÚxZx_ptr©r	   Úffi© úZ/home/sam/Atlas/atlas_env/lib/python3.8/site-packages/numba/cuda/tests/cudapy/test_cffi.pyÚmutate_array   s    
z/TestCFFI.test_from_buffer.<locals>.mutate_arrayé   )é   r   r   r   )ÚcffiZFFIÚstrr   r   ÚvoidZCPointerZint32r   Zdeclare_deviceZjitÚnpZarangeZastypeÚassertEqual)Úselfr
   Úsigr   r   r   r   r   Útest_from_buffer   s    zTestCFFI.test_from_bufferN)Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r   r      s   r   Ú__main__)Únumpyr   r   Z
_have_cffiÚImportErrorZnumbar   r   Znumba.cuda.testingr   r   r   r   Z
skipUnlessr   r   Úmainr   r   r   r   Ú<module>   s   

