o
    gµ„i…  ã                   @   sX   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r*e ¡  dS 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)Úmapped)ÚshapeÚdtypeÚbufferé«   )r   Úcurrent_contextÚmemhostallocÚnpr
   Úuint8ÚndarrayÚitemsizer   Údevice_memsetÚ
assertTrueÚallÚfillÚ
empty_likeÚdevice_to_hostÚsize)ÚselfÚnÚmemr
   ÚaryÚmagicÚrecv© r    ú[/home/kuhnn/.local/lib/python3.10/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   Ú	to_devicer   r   Údevice_memory_sizeÚcopy_to_host)r   r   Ú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/   r0   r    r    r!   Útest_host_operators0   s   ÿôz!TestHostAlloc.test_host_operatorsN)Ú__name__Ú
__module__Ú__qualname__r"   r-   r1   r<   r    r    r    r!   r      s
    
r   Ú__main__)Únumpyr   Únumba.cuda.cudadrvr   Únumbar   Únumba.cuda.testingr   r   r   r=   Úmainr    r    r    r!   Ú<module>   s    9ÿ