o
    ib                     @   s\   d dl Zd dlmZmZmZ d dlmZmZ dd Z	G dd deZ
edkr,e  dS dS )	    N)cudafloat32void)unittestCUDATestCasec                 C   sD   t jt | |  | | t jd}t jt | d |jd}||fS )Ndtyper   )nparrayarangereshaper   r   )nAB r   `/home/ubuntu/veenaModal/venv/lib/python3.10/site-packages/numba/cuda/tests/cudapy/test_nondet.pygenerate_input   s   "r   c                   @   s   e Zd Zdd ZdS )TestCudaNonDetc                 C   s   t ttddddf tddddf tdd dd }d}t|\}}tj|j|jd}d}d}t 	|}t 	|}	t j	|dd	}
|||f |
||	 t
|t|}tj|
 | dS )
ziTest issue with loop not running due to bad sign-extension at the for
        loop precondition.
        Nc                 S   s   t d\}}t jjt jj }t jjt jj }| jd }| jd }t|||D ]}	t|||D ]}
||
|	f ||	  | |
|	f< q/q'd S )N   r      )r   gridgridDimxblockDimyshaperange)cabstartXstartYgridXgridYheightwidthr   r   r   r   r   diagproduct   s   

z0TestCudaNonDet.test_for_pre.<locals>.diagproduct   r   )    r'   )r   r   F)copy)r   jitr   r   r   r	   emptyr   r   	to_devicedotdiagtestingassert_array_almost_equalcopy_to_host)selfr&   Nr   r   FblockdimgriddimdAdBdFEr   r   r   test_for_pre   s   8


zTestCudaNonDet.test_for_preN)__name__
__module____qualname__r;   r   r   r   r   r      s    r   __main__)numpyr	   numbar   r   r   numba.cuda.testingr   r   r   r   r<   mainr   r   r   r   <module>   s    $