
    `is                         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                     dS dS )    N)
namedtuple)cuda)unittestCUDATestCasec                   P    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd ZdS )TestCudaArrayArgc                 h   t          j        ddd          d             t          j        d          fd            }t          j        dt          j                  }t          j        |          } |d	         ||           |                     t          j        ||k                         d S )
Nzdouble(double[:],int64)T)deviceinlinec                     | |         S )N )acs     {/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/numba/cuda/tests/cudapy/test_array_args.pydevice_functionz8TestCudaArrayArg.test_array_ary.<locals>.device_function   s    Q4K    zvoid(double[:],double[:])c                 N    t          j        d          } | |          ||<   d S )N   )r   grid)xyir   s      r   kernelz/TestCudaArrayArg.test_array_ary.<locals>.kernel   s)    	!A"?1a((AaDDDr   
   dtype)r   r   )r   jitnparangedouble
zeros_like
assertTrueall)selfr   r   r   r   s       @r   test_array_aryzTestCudaArrayArg.test_array_ary	   s    	+D	F	F	F	 	 
G	F	 
-	.	.	) 	) 	) 	) 
/	.	) Ib	***M!uaqAv'''''r   c                 4   t           j        d             }d}t          j        t	          |          t          j                  } |d         ||           t          t	          |                    D ]$}|                     ||         ||                    %d S )Nc                 H    |d         | d<   |d         | d<   |d         | d<   d S )Nr   r      r   rr   s     r   fz)TestCudaArrayArg.test_unituple.<locals>.f   s-    Q4AaDQ4AaDQ4AaDDDr   )r   r(      r   r   r   )r   r   r   zeroslenint64rangeassertEqual)r$   r+   r   r*   r   s        r   test_unituplezTestCudaArrayArg.test_unituple   s    		 	 
	
 HSVV28,,,$1s1vv 	) 	)AQqT1Q4((((	) 	)r   c           	      >   t           j        d             }d}t          j        t	          |          dz  t          j                  }t          j        t	          |          dz  t          j                  } |d         |||           t          t	          |                    D ]$}|                     ||         ||                    %t          t	          |                    D ]4}|                     ||         ||t	          |          z                       5d S )Nc                     |d         | d<   |d         | d<   |d         | d<   |d         |d<   |d         |d<   |d         |d<   d S Nr   r   r(   r,         r   r1r2r   s      r   r+   z&TestCudaArrayArg.test_tuple.<locals>.f(   sT    aDBqEaDBqEaDBqEaDBqEaDBqEaDBqEEEr   )r   r(   r,   g      @g      @g      @r(   r   r-   )	r   r   r   r.   r/   r0   float64r1   r2   )r$   r+   r   r:   r;   r   s         r   
test_tuplezTestCudaArrayArg.test_tuple'   s   		 	 
	 %Xc!ffk222Xc!ffk444$Bs2ww 	* 	*ARUAaD))))s2ww 	4 	4ARUAa#b''kN3333	4 	4r   c                 j   t           j        d             }t          dd          } |dd          }t          j        t          |          t          j                  } |d         ||           |                     |d         |j                   |                     |d         |j	                   d S )	Nc                 .    |j         | d<   |j        | d<   d S Nr   r   r   r   r)   s     r   r+   z.TestCudaArrayArg.test_namedunituple.<locals>.f=   s    3AaD3AaDDDr   PointrA   r   r(   r   r-   r   )
r   r   r   r   r.   r/   r0   r2   r   r   )r$   r+   rB   r   r*   s        r   test_namedunituplez#TestCudaArrayArg.test_namedunituple<   s    		 	 
	 7J//E!QKKHSVV28,,,$11qs###1qs#####r   c                    t           j        d             }t          dd          } |ddd          }t          j        dt          j                  }t          j        dt          j                  } |d         |||           |                     |d	         |j                   |                     |d         |j	                   |                     |d	         |j
                   d S )
Nc                 B    |j         | d<   |j        | d<   |j        |d<   d S r@   r   r   r*   r9   s      r   r+   z+TestCudaArrayArg.test_namedtuple.<locals>.fK   s'    CBqECBqECBqEEEr   rB   rF   r   r(   gS@r   r-   r   )r   r   r   r   r.   r0   r<   r2   r   r   r*   )r$   r+   rB   r   r:   r;   s         r   test_namedtuplez TestCudaArrayArg.test_namedtupleJ   s    		 	 
	
 7O44E!QXarx(((Xarz***$BA$$$A$$$A$$$$$r   c                     t           j        d             }t                      }t          j        dt          j                  } |d         ||           |                     |d         d           d S )Nc                 *    t          |          | d<   d S )Nr   r/   r)   s     r   r+   z,TestCudaArrayArg.test_empty_tuple.<locals>.f\   s    q66AaDDDr   r   r   r-   r   )r   r   tupler   onesr0   r2   r$   r+   r   r*   s       r   test_empty_tuplez!TestCudaArrayArg.test_empty_tuple[   sq    		 	 
	 GGGARX&&&$11q!!!!!r   c                    t           j        d             }d}t          j        dt          j                  } |d         ||           |                     |d         d           |                     |d         d           d S )	Nc                 Z    t          |          | d<   t          |d                   | d<   d S r@   rJ   r)   s     r   r+   z6TestCudaArrayArg.test_tuple_of_empty_tuples.<locals>.fg   s(    q66AaDqt99AaDDDr   )r   r   r   r(   r   r-   r   r,   r   r   r   r   rL   r0   r2   rM   s       r   test_tuple_of_empty_tuplesz+TestCudaArrayArg.test_tuple_of_empty_tuplesf   s    		 	 
	 GARX&&&$11q!!!1q!!!!!r   c                    t           j        d             }d}t          j        dt          j                  } |d         ||           |                     |d         d           |                     |d         d           |                     |d	         d	           |                     |d         d           |                     |d
         d           |                     |d         d           |                     |d         d           |                     |d         d           |                     |d         d           d S )Nc                 d   t          |          | d<   t          |d                   | d<   t          |d                   | d<   t          |d                   | d<   |d         d         | d<   |d         d         | d<   |d         d         | d<   |d         d         | d<   |d         d         | d	<   d S )
Nr   r   r(   r,   r7   r8            rJ   r)   s     r   r+   z0TestCudaArrayArg.test_tuple_of_tuples.<locals>.ft   s    q66AaDqt99AaDqt99AaDqt99AaDQ47AaDQ47AaDQ47AaDQ47AaDQ47AaDDDr   )r   )r8   rU   )rW   	   r   rX   r   r-   r   r,   r   r(   r7   r8   rU   rW   rV   r   rQ   rM   s       r   test_tuple_of_tuplesz%TestCudaArrayArg.test_tuple_of_tupless   s=   			 		 
		 %GARX&&&$11q!!!1q!!!1q!!!1q!!!1q!!!1q!!!1q!!!1q!!!1r"""""r   c                    t           j        d             }d}t          j        dt          j                  } |d         ||           |                     |d         d           |                     |d         d	           |                     |d         d
           |                     |d	         d           |                     |d         d           |                     |d         d           d S )Nc                     t          |          | d<   t          |d                   | d<   |d         d         | d<   |d         d         | d<   |d         d         | d<   |d         | d<   d S r6   rJ   r)   s     r   r+   z<TestCudaArrayArg.test_tuple_of_tuples_and_scalars.<locals>.f   sh    q66AaDqt99AaDQ47AaDQ47AaDQ47AaDQ4AaDDDr   ))rU   r8   r7   rV   rX   r   r-   r   r(   r   r,   rU   r8   r7   rV   rQ   rM   s       r    test_tuple_of_tuples_and_scalarsz1TestCudaArrayArg.test_tuple_of_tuples_and_scalars   s    		 	 
	 GARX&&&$11q!!!1q!!!1q!!!1q!!!1q!!!1q!!!!!r   c                    t           j        d             }d}t          j        |          }t          j        |          }|dz  }|||f} |d|f         |           t          j                            |||z              d S )Nc                     t          j        d          }|t          | d                   k     r(| d         |         | d         |         z   | d         |<   d S d S )Nr   r   r(   )r   r   r/   )r   r   s     r   r+   z0TestCudaArrayArg.test_tuple_of_arrays.<locals>.f   sO    	!A3qt99}}A$q'AaDG+!Q }r   r   r,   r   )r   r   r   r.   	ones_liketestingassert_equal)r$   r+   Nx0x1x2r   s          r   test_tuple_of_arraysz%TestCudaArrayArg.test_tuple_of_arrays   s    		, 	, 
	,
 Xa[[\"!VRL!Q$




BG,,,,,r   c                    t           j        d             }t          j        dt          j                  }d|z  ddf}t          j        dt          j                  } |d         ||           |                     |d         d           |                     |d	         d           |                     |d         d           |                     |d
         d           |                     |d         d
           d S )Nc                     |d         d         | d<   |d         d         | d<   |d         | d<   |d         d         | d<   |d         d         | d<   d S )Nr   r   r(   r,   r7   r   r)   s     r   r+   z<TestCudaArrayArg.test_tuple_of_array_scalar_tuple.<locals>.f   sW    Q47AaDQ47AaDQ4AaDQ47AaDQ47AaDDDr   r(   r   r   )r7   r,   r8   r-   r   r   r,   r7   )r   r   r   r   r0   r.   r2   )r$   r+   zr   r*   s        r    test_tuple_of_array_scalar_tuplez1TestCudaArrayArg.test_tuple_of_array_scalar_tuple   s    		 	 
	 Iarx(((UBHQbh'''$11q!!!1q!!!1r"""1q!!!1q!!!!!r   N)__name__
__module____qualname__r%   r3   r=   rC   rG   rN   rR   rY   r\   rf   rj   r   r   r   r   r      s        ( ( ( ) ) )4 4 4*$ $ $% % %"	" 	" 	"" " "# # #6" " "*- - - " " " " "r   r   __main__)numpyr   collectionsr   numbar   numba.cuda.testingr   r   r   rk   mainr   r   r   <module>rt      s        " " " " " "       5 5 5 5 5 5 5 5}" }" }" }" }"| }" }" }"@ zHMOOOOO r   