o
    ۾i                     @   sH   d dl Z d dlmZmZ edG dd deZedkr"e   dS dS )    N)CUDATestCaseskip_on_cudasimz4cudasim doesn't support cuda import at non-top-levelc                   @   s   e Zd Zdd ZdS )
TestRandomc                    s  ddl m  ddlm}m dd l} j fdd}d\}}}d\}}}	d\}
}}|| |	 |
 | | }||d	d
} j|||f|jd}||
||f|||	ff || |	 }| 
||d | ||d | ||dk | ||dk d S )Nr   )cuda)create_xoroshiro128p_statesxoroshiro128p_uniform_float32c                    s     d\}}} d\}}}|| | ||  | }t|| jd |D ]$}	t|| jd |D ]}
t|| jd |D ]}||| |	|
|f< q;q0q%d S )N   r         )gridgridsizerangeshape)arr
rng_statesstartxstartystartzstridexstrideystrideztidijkr   r    ]/home/ubuntu/.local/lib/python3.10/site-packages/numba/cuda/tests/doc_examples/test_random.py	random_3d   s   z-TestRandom.test_ex_3d_grid.<locals>.random_3d)i  i  i  )   r   r   )   r    r    r	   )seed)dtypeg\(\?gRQ?g      ?g        )numbar   numba.cuda.randomr   r   numpyjitdevice_arrayfloat32copy_to_hostassertGreatermean
assertLess
assertTrueall)selfr   npr   XYZbxbybzgxgygznthreadsr   r   host_arrr   r   r   test_ex_3d_grid
   s"   


zTestRandom.test_ex_3d_gridN)__name__
__module____qualname__r<   r   r   r   r   r      s    r   __main__)unittestnumba.cuda.testingr   r   r   r=   mainr   r   r   r   <module>   s   1