
    sh                         S SK rS SKJrJrJr  S SKJr  S SKJ	r	J
r
  S SKr " S S\	5      r\S:X  a  \R                  " 5         gg)    N)cuda	vectorizeguvectorize)
from_dtype)CUDATestCaseskip_on_cudasimc                       \ rS rSrS rS r\" S5      S 5       r\" S5      S 5       r\" S5      S 5       r	\" S5      S	 5       r
S
rg)TestCudaDateTime	   c                 "   [         R                  S 5       n[        R                  " SSSS9nU[        R                  R                  SSUR                  5      -   n[        R                  " USS9nUS	   " X#U5        U R                  XCU-
  5        g )
Nc                     [        [        R                  " S5      UR                  [        R                  " S5      5       H  nX   X   -
  X#'   M     g N   ranger   gridsizegridsize)startenddeltais       y/Users/tiagomarins/Projetos/claudeai/copy_bank/venv/lib/python3.13/site-packages/numba/cuda/tests/cudapy/test_datetime.pyfoo8TestCudaDateTime.test_basic_datetime_kernel.<locals>.foo   s;    499Q<T]]15EF6EH, G    2005-022006-02datetime64[D]dtyper   '  timedelta64[D]r       )	r   jitnparangerandomrandintr   
zeros_likeassertPreciseEqual)selfr   arr1arr2r   s        r   test_basic_datetime_kernel+TestCudaDateTime.test_basic_datetime_kernel
   s~    		- 
	- yyI_Ebii''5$))<<d*:;E
4u%d{3r   c                    [         R                  S 5       n[        R                  " SSSS9nUS   nUS   US   -
  n[        R                  " U[        R
                  S9n[        R                  " USS9nUS   " X#XEU5        UR                  5       nU R                  [        U5      S/5        U R                  XbU-
  5        g )	Nc                     [        [        R                  " S5      UR                  [        R                  " S5      5       H  nX   U:H  X5'   X   U-
  XE'   M     g r   r   )datestargetr   matchesoutdeltar   s         r   r   9TestCudaDateTime.test_scalar_datetime_kernel.<locals>.foo   sG    499Q<t}}Q7GH"X/
#h. Ir   r   r   r   r          r$   )
r   r&   r'   r(   r+   bool_nonzeroassertEquallistr,   )r-   r   r.   r5   r   r6   r7   wheres           r   test_scalar_datetime_kernel,TestCudaDateTime.test_scalar_datetime_kernel   s    		/ 
	/ yyI_EaQ$q'!--BHH5==_=E
4:!eqc*,7r   z&ufunc API unsupported in the simulatorc                 &   [        [        R                  " S5      5      n[        X4/SS9S 5       n[        R                  " SSSS9nU[        R
                  R                  SS	UR                  5      -   nU" X45      nU R                  XTU-
  5        g )
Nr   r   r5   c                 
    X-
  $ )N )r   r   s     r   timediff-TestCudaDateTime.test_ufunc.<locals>.timediff.   s
    ;r   r   r   r    r   r"   )	r   r'   r!   r   r(   r)   r*   r   r,   )r-   
datetime_trF   r.   r/   r   s         r   
test_ufuncTestCudaDateTime.test_ufunc*   s     9:
	Z,-f	=	 
>	 yyI_Ebii''5$))<<$d{3r   c                 n   [        [        R                  " S5      5      n[        [        R                  " S5      5      n[        XUS S  4/SSS9S 5       n[        R                  " SSSS	9nU[        R
                  R                  S
SUR                  5      -   nU" XE5      nU R                  XeU-
  5        g )Nr   r#   z	(),()->()r   rC   c                     X-
  US'   g )Nr   rE   )r   r   outs      r   rF   .TestCudaDateTime.test_gufunc.<locals>.timediff>   s     [CFr   r   r   r    r   r"   )	r   r'   r!   r   r(   r)   r*   r   r,   )r-   rH   timedelta_trF   r.   r/   r   s          r   test_gufuncTestCudaDateTime.test_gufunc9   s     9:
 *:!;<	z{1~>?"
$	!
$	! yyI_Ebii''5$))<<$d{3r   z#no .copy_to_host() in the simulatorc                 `   [         R                  " SSSS9n[        R                  " U5      nUR	                  [         R
                  5      nU R                  UR	                  [         R
                  5      UR                  5       5        U R                  UR                  UR                  5        g )Nr   r   r   r    )
r'   r(   r   	to_deviceviewint64r,   copy_to_hostr=   gpu_datar-   arrdarrvieweds       r   test_datetime_view_as_int64,TestCudaDateTime.test_datetime_view_as_int64J   sr    ii	9OD~~c"288$ 2F4G4G4IJ$--8r   c                    [         R                  " SSSS9nXS-
  -
  nU R                  UR                  [         R                  " S5      5        [        R
                  " U5      nUR                  [         R                  5      nU R                  UR                  [         R                  5      UR                  5       5        U R                  UR                  UR                  5        g )Nr   r   r   r    r   r#   )r'   r(   r=   r!   r   rS   rT   rU   r,   rV   rW   rX   s       r   test_timedelta_view_as_int64-TestCudaDateTime.test_timedelta_view_as_int64R   s    ii	9OD1WoBHH-=$>?~~c"288$ 2F4G4G4IJ$--8r   rE   N)__name__
__module____qualname____firstlineno__r0   r@   r   rI   rP   r\   r_   __static_attributes__rE   r   r   r
   r
   	   st    48$ =>4 ?4 =>4 ?4  :;9 <9 :;9 <9r   r
   __main__)numpyr'   numbar   r   r   numba.np.numpy_supportr   numba.cuda.testingr   r   unittestr
   ra   mainrE   r   r   <module>rm      s>     . . - < Q9| Q9h zMMO r   