
    wg                     x    d dl Zd dlmZ d dlmZ d dlmZmZ  G d de      Z	e
dk(  r ej                          yy)    N)driver)cuda)unittestContextResettingTestCasec                   $    e Zd Zd Zd Zd Zd Zy)TestHostAllocc                    d}t        j                         j                  |d      }t        j                  t        j
                        }t        j                  ||j                  z  ||      }d}t        j                  |||       | j                  t        j                  ||k(               |j                  |       t        j                  |      }t        j                  |||j                         | j                  t        j                  ||k(               | j                  t        j                  ||k(               y )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recvs          m/home/mcse/projects/flask/flask-venv/lib/python3.12/site-packages/numba/cuda/tests/cudadrv/test_host_alloc.pytest_host_alloc_driverz$TestHostAlloc.test_host_alloc_driver   s    ""$11!D1A"jjqENN2% #% S%+se|,-}}S!dC2sd{+,tqy)*    c                    t        j                  dt        j                        }|j	                  d       | j                  t        |dk(               t        j                  |      }t        j                  |dt        j                  |             | j                  t        |dk(               |j                  |       | j                  t        |dk(               y N
   r   {   r   )r   pinned_arrayr   uint32r   r   r   	to_devicer   r   device_memory_sizecopy_to_host)r   r    devarys      r#   test_host_alloc_pinnedz$TestHostAlloc.test_host_alloc_pinned   s    "))4C3J($VQ(A(A&(IJC3J(C C1H&r%   c                 x   t        j                  dt        j                        }|j	                  d       | j                  t        |dk(               t        j                  |dt        j                  |             | j                  t        |dk(               | j                  t        |dk7        dk(         y r'   )r   mapped_arrayr   r,   r   r   r   r   r   r.   sumr   r    s     r#   test_host_alloc_mappedz$TestHostAlloc.test_host_alloc_mapped(   s    "))4C3J(S!V%>%>s%CDC1H&C1H*+r%   c                 N   t        j                  dt        j                        t        j                  dt        j                        fD ]W  }t        d      |d d  | j                  t        |dz         dk(         | j                  t        |dz   dz  dz
        dk(         | j                  t        |dk        dk(         | j                  t        |dk        dk(         | j                  t        |dkD        d	k(         | j                  t        |dk\        d
k(         | j                  t        |dz        dk(         | j                  t        |dz        dk(         | j                  t        |dz        dk(         | j                  t        |dz        dk(         Z y )Nr(   r)      7      d               i     g       @g     6@)r   r3   r   r,   r+   ranger   r4   r5   s     r#   test_host_operatorsz!TestHostAlloc.test_host_operators0   sL   %%b		:%%b		:< 	/C2YCFOOCaLB./OOCqA 12c9:OOCaLA-.OOCqMQ./OOCaLA-.OOCqMQ./OOCqMS01OOCqMR/0OOCc	Nd23OOCaLA-.	/r%   N)__name__
__module____qualname__r$   r1   r6   rB    r%   r#   r   r      s    +,',/r%   r   __main__)numpyr   numba.cuda.cudadrvr   numbar   numba.cuda.testingr   r   r   rC   mainrF   r%   r#   <module>rM      s9     %  A6/, 6/r zHMMO r%   