U
    hd                     @   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re  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   

