U
    -eb                     @   sX   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rTe  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arrayZarangeZreshaper   r   )nAB r   d/var/www/html/Darija-Ai-Train/env/lib/python3.8/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 ]2}	t|||D ] }
||
|	f ||	  | |
|	f< q^qNd S )N   r      )r   gridZgridDimxZblockDimyshaperange)cabZstartXZstartYZgridXZgridYheightwidthr   r   r   r   r   diagproduct   s    

z0TestCudaNonDet.test_for_pre.<locals>.diagproduct   r   )    r   )r   r   F)copy)r   Zjitr   r   r   r	   emptyr   r   Z	to_devicedotZdiagtestingZassert_array_almost_equalZcopy_to_host)selfr   Nr   r   FZblockdimZgriddimZdAZdBZ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	   Znumbar   r   r   Znumba.cuda.testingr   r   r   r   r*   mainr   r   r   r   <module>   s   $