U
    ?h  ć                   @   sT   d dl Zd dlmZ d dlmZ d dlmZmZ G dd deZ	e
dkrPe ”  dS )é    N)Śdriver)Ścuda)ŚunittestŚContextResettingTestCasec                   @   s,   e Zd Zdd Zdd Zdd Zdd Zd	S )
ŚTestHostAllocc                 C   s®   d}t  ” j|dd}t tj”}tj||j ||d}d}t 	|||” |  
t ||k”” | |” t |”}t |||j” |  
t ||k”” |  
t ||k”” d S )Né    T)Zmapped)ŚshapeŚdtypeŚbufferé«   )r   Zcurrent_contextZmemhostallocŚnpr	   Zuint8ZndarrayŚitemsizer   Śdevice_memsetŚ
assertTrueŚallŚfillZ
empty_likeZdevice_to_hostŚsize)ŚselfŚnZmemr	   ŚaryŚmagicŚrecv© r   śZ/var/www/html/venv/lib/python3.8/site-packages/numba/cuda/tests/cudadrv/test_host_alloc.pyŚtest_host_alloc_driver   s    ’

z$TestHostAlloc.test_host_alloc_driverc                 C   s|   t jdtjd}| d” |  t|dk” t  |”}t 	|dt 
|”” |  t|dk” | |” |  t|dk” d S ©Né
   ©r	   é{   r   )r   Śpinned_arrayr   Śuint32r   r   r   Z	to_devicer   r   Śdevice_memory_sizeZcopy_to_host)r   r   Zdevaryr   r   r   Śtest_host_alloc_pinned   s    


z$TestHostAlloc.test_host_alloc_pinnedc                 C   sl   t jdtjd}| d” |  t|dk” t |dt 	|”” |  t|dk” |  t
|dkdk” d S r   )r   Śmapped_arrayr   r    r   r   r   r   r   r!   Śsum©r   r   r   r   r   Śtest_host_alloc_mapped(   s    
z$TestHostAlloc.test_host_alloc_mappedc                 C   s  t jdtjdt jdtjdfD ]ų}td|d d < |  t|d dk” |  t|d d d dk” |  t|dk dk” |  t|dkdk” |  t|dkd	k” |  t|dkd
k” |  t|d dk” |  t|d dk” |  t|d dk” |  t|d dk” q d S )Nr   r   é   é7   é   éd   é   é   é   é   i  é   g       @g     6@)r   r#   r   r    r   Śranger   r$   r%   r   r   r   Śtest_host_operators0   s    ’z!TestHostAlloc.test_host_operatorsN)Ś__name__Ś
__module__Ś__qualname__r   r"   r&   r1   r   r   r   r   r      s   
r   Ś__main__)Śnumpyr   Znumba.cuda.cudadrvr   Znumbar   Znumba.cuda.testingr   r   r   r2   Śmainr   r   r   r   Ś<module>   s   9