
    piv                         d dl Zd dlmZ d dlmZ d dlmZ d dlm	Z	m
Z
mZ  G d de      Z G d d	e      Zed
k(  r e
j                          yy)    N)
namedtuple)cuda)TypingError)skip_on_cudasimunittestCUDATestCasec                   N    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y)TestCudaArrayArgc                 V   t        j                  ddd      d        t        j                  d      fd       }t        j                  dt        j                        }t        j
                  |      } |d	   ||       | j                  t        j                  ||k(               y )
Nzdouble(double[:],int64)T)deviceinlinec                     | |   S )N )acs     i/opt/services/ai/voice_agent/venv/lib/python3.12/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                 H    t        j                  d      } | |      ||<   y N   )r   grid)xyir   s      r   kernelz/TestCudaArrayArg.test_array_ary.<locals>.kernel   s     		!A"1a(AaDr   
   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	 
G	 
-	.	) 
/	) IIb		*MM!uaqAv'r   c                 
   t         j                  d        }d}t        j                  t	        |      t        j
                        } |d   ||       t        t	        |            D ]  }| j                  ||   ||           y )Nc                 4    |d   | d<   |d   | d<   |d   | d<   y )Nr   r      r   rr   s     r   fz)TestCudaArrayArg.test_unituple.<locals>.f   s)    Q4AaDQ4AaDQ4AaDr   )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   su    		 
	
 HHSV288,$1s1v 	)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 ]  }| j                  ||   ||           t        t	        |            D ]&  }| j                  ||   ||t	        |      z             ( y )Nc                 d    |d   | d<   |d   | d<   |d   | d<   |d   |d<   |d   |d<   |d   |d<   y Nr   r   r+   r/         r   r1r2r   s      r   r.   z&TestCudaArrayArg.test_tuple.<locals>.f)   sP    aDBqEaDBqEaDBqEaDBqEaDBqEaDBqEr   )r   r+   r/   g      @g      @g      @r+   r   r0   )	r   r    r!   r1   r2   r3   float64r4   r5   )r'   r.   r   r=   r>   r   s         r   
test_tuplezTestCudaArrayArg.test_tuple(   s    		 
	 %XXc!fk2XXc!fk4$Bs2w 	*ARUAaD)	* s2w 	4ARUAa#b'kN3	4r   c                 J   t         j                  d        }t        dd      } |dd      }t        j                  t        |      t        j                        } |d   ||       | j                  |d   |j                         | j                  |d   |j                         y )	Nc                 @    |j                   | d<   |j                  | d<   y Nr   r   r   r   r,   s     r   r.   z.TestCudaArrayArg.test_namedunituple.<locals>.f>   s    33AaD33AaDr   PointrD   r   r+   r   r0   r   )
r   r    r   r!   r1   r2   r3   r5   r   r   )r'   r.   rE   r   r-   s        r   test_namedunituplez#TestCudaArrayArg.test_namedunituple=   s    		 
	 7J/!QKHHSV288,$11qss#1qss#r   c                    t         j                  d        }t        dd      } |ddd      }t        j                  dt        j
                        }t        j                  dt        j                        } |d   |||       | j                  |d	   |j                         | j                  |d   |j                         | j                  |d	   |j                         y )
Nc                 ^    |j                   | d<   |j                  | d<   |j                  |d<   y rC   r   r   r-   r<   s      r   r.   z+TestCudaArrayArg.test_namedtuple.<locals>.fL   s)    CCBqECCBqECCBqEr   rE   rI   r   r+   gS@r   r0   r   )r   r    r   r!   r1   r3   r?   r5   r   r   r-   )r'   r.   rE   r   r=   r>   s         r   test_namedtuplez TestCudaArrayArg.test_namedtupleK   s    		 
	
 7O4!QXXarxx(XXarzz*$BA$A$A$r   c                     t         j                  d        }t               }t        j                  dt        j
                        } |d   ||       | j                  |d   d       y )Nc                      t        |      | d<   y )Nr   r2   r,   s     r   r.   z,TestCudaArrayArg.test_empty_tuple.<locals>.f]   s    q6AaDr   r   r   r0   r   )r   r    tupler!   onesr3   r5   r'   r.   r   r-   s       r   test_empty_tuplez!TestCudaArrayArg.test_empty_tuple\   sX    		 
	 GGGARXX&$11q!r   c                     t         j                  d        }d}t        j                  dt        j                        } |d   ||       | j                  |d   d       | j                  |d   d       y )	Nc                 B    t        |      | d<   t        |d         | d<   y rC   rM   r,   s     r   r.   z6TestCudaArrayArg.test_tuple_of_empty_tuples.<locals>.fh   s     q6AaDqt9AaDr   )r   r   r   r+   r   r0   r   r/   r   r   r    r!   rO   r3   r5   rP   s       r   test_tuple_of_empty_tuplesz+TestCudaArrayArg.test_tuple_of_empty_tuplesg   sj    		 
	 GGARXX&$11q!1q!r   c                    t         j                  d        }d}t        j                  dt        j                        } |d   ||       | j                  |d   d       | j                  |d   d       | j                  |d	   d	       | j                  |d   d       | j                  |d
   d       | j                  |d   d       | j                  |d   d       | j                  |d   d       | j                  |d   d       y )Nc                     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	<   y )
Nr   r   r+   r/   r:   r;            rM   r,   s     r   r.   z0TestCudaArrayArg.test_tuple_of_tuples.<locals>.fu   s    q6AaDqt9AaDqt9AaDqt9AaDQ47AaDQ47AaDQ47AaDQ47AaDQ47AaDr   )r   )r;   rX   )rZ   	   r   r[   r   r0   r   r/   r   r+   r:   r;   rX   rZ   rY   r   rT   rP   s       r   test_tuple_of_tuplesz%TestCudaArrayArg.test_tuple_of_tuplest   s    			 
		 %GGARXX&$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   ||       | j                  |d   d       | j                  |d   d	       | j                  |d   d
       | j                  |d	   d       | j                  |d   d       | j                  |d   d       y )Nc                     t        |      | d<   t        |d         | d<   |d   d   | d<   |d   d   | d<   |d   d   | d<   |d   | d<   y r9   rM   r,   s     r   r.   z<TestCudaArrayArg.test_tuple_of_tuples_and_scalars.<locals>.f   s`    q6AaDqt9AaDQ47AaDQ47AaDQ47AaDQ4AaDr   ))rX   r;   r:   rY   r[   r   r0   r   r+   r   r/   rX   r;   r:   rY   rT   rP   s       r    test_tuple_of_tuples_and_scalarsz1TestCudaArrayArg.test_tuple_of_tuples_and_scalars   s    		 
	 GGARXX&$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
                  j                  |||z          y )Nc                     t        j                  d      }|t        | d         k  r| d   |   | d   |   z   | d   |<   y y )Nr   r   r+   )r   r   r2   )r   r   s     r   r.   z0TestCudaArrayArg.test_tuple_of_arrays.<locals>.f   sE    		!A3qt9}A$q'AaDG+!Q r   r   r/   r   )r   r    r!   r1   	ones_liketestingassert_equal)r'   r.   Nx0x1x2r   s          r   test_tuple_of_arraysz%TestCudaArrayArg.test_tuple_of_arrays   sw    		, 
	,
 XXa[\\"!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   ||       | j                  |d   d       | j                  |d	   d       | j                  |d   d       | j                  |d
   d       | j                  |d   d
       y )Nc                 l    |d   d   | d<   |d   d   | d<   |d   | d<   |d   d   | d<   |d   d   | d<   y )Nr   r   r+   r/   r:   r   r,   s     r   r.   z<TestCudaArrayArg.test_tuple_of_array_scalar_tuple.<locals>.f   sS    Q47AaDQ47AaDQ4AaDQ47AaDQ47AaDr   r+   r   r   )r:   r/   r;   r0   r   r   r/   r:   )r   r    r!   r"   r3   r1   r5   )r'   r.   zr   r-   s        r    test_tuple_of_array_scalar_tuplez1TestCudaArrayArg.test_tuple_of_array_scalar_tuple   s    		 
	 IIarxx(UBHHQbhh'$11q!1q!1r"1q!1q!r   N)__name__
__module____qualname__r(   r6   r@   rF   rJ   rQ   rU   r\   r_   ri   rm   r   r   r   r
   r
   	   s9    ( )4*$%"	""#6"*- "r   r
   c                   (    e Zd Z ed      d        Zy)TestDatetimeIssueszTyping not used on cudasimc                 "   t         j                  d        }t        j                  dd      }| j	                  t
              5 } |d   |       d d d        j                  j                  d   }d}| j                  ||       y # 1 sw Y   7xY w)Nc                     | dz   S r   r   )r   s    r   r.   z1TestDatetimeIssues.test_10y_issue_9585.<locals>.f   s    q5Lr   2010zdatetime64[10Y]r   r0   r   z(Unsupported array dtype: datetime64[10Y])	r   r    r!   arrayassertRaisesr   	exceptionargsassertIn)r'   r.   arremessageunsupported_types         r   test_10y_issue_9585z&TestDatetimeIssues.test_10y_issue_9585   s    		 
	 hhv%67{+ 	qAdGCL	 ++""1%E&0	 	s   BBN)rn   ro   rp   r   r   r   r   r   rr   rr      s     121 31r   rr   __main__)numpyr!   collectionsr   numbar   numba.core.errorsr   numba.cuda.testingr   r   r   r
   rr   rn   mainr   r   r   <module>r      sL     "  ) F F}"| }"@1 1, zHMMO r   