
    xKg                         d dl Zd dlmZmZmZ d dlmZ d dlm	Z	m
Z
 d dlZ G d de	      Zedk(  r ej                          yy)    N)cuda	vectorizeguvectorize)
from_dtype)CUDATestCaseskip_on_cudasimc                       e Zd Zd Zd Z ed      d        Z ed      d        Z ed      d        Z ed      d        Z	y	)
TestCudaDateTimec                 .   t         j                  d        }t        j                  ddd      }|t        j                  j                  dd|j                        z   }t        j                  |d      } |d	   |||       | j                  |||z
         y )
Nc                     t        t        j                  d      |j                  t        j                  d            D ]  }||   | |   z
  ||<    y N   ranger   gridsizegridsize)startenddeltais       i/home/alanp/www/video.onchill/myenv/lib/python3.12/site-packages/numba/cuda/tests/cudapy/test_datetime.pyfooz8TestCudaDateTime.test_basic_datetime_kernel.<locals>.foo   sA    499Q<T]]15EFq6E!H,a 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_kernelz+TestCudaDateTime.test_basic_datetime_kernel
   s    		- 
	- yyI_Ebii''5$))<<d*:;E
4u%td{3r   c                    t         j                  d        }t        j                  ddd      }|d   }|d   |d   z
  }t        j                  |t        j
                        }t        j                  |d      } |d   |||||       |j                         }| j                  t        |      dg       | j                  |||z
         y )	Nc                     t        t        j                  d      |j                  t        j                  d            D ]  }| |   |k(  ||<   | |   |z
  ||<    y r   r   )datestargetr   matchesoutdeltar   s         r   r   z9TestCudaDateTime.test_scalar_datetime_kernel.<locals>.foo   sO    499Q<t}}Q7GH"1X/
#Ah. Ir   r   r   r   r         r"   )
r   r$   r%   r&   r)   bool_nonzeroassertEquallistr*   )r+   r   r,   r2   r   r3   r4   wheres           r   test_scalar_datetime_kernelz,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                 4   t        t        j                  d            }t        ||fgd      d        }t        j                  ddd      }|t        j
                  j                  dd	|j                        z   } |||      }| j                  |||z
         y )
Nr   r   r2   c                     || z
  S )N )r   r   s     r   timediffz-TestCudaDateTime.test_ufunc.<locals>.timediff.   s    ;r   r   r   r   r   r    )	r   r%   r   r   r&   r'   r(   r   r*   )r+   
datetime_trA   r,   r-   r   s         r   
test_ufunczTestCudaDateTime.test_ufunc*   s     9:
	Z,-f	=	 
>	 yyI_Ebii''5$))<<t$td{3r   c                 z   t        t        j                  d            }t        t        j                  d            }t        |||d d  fgdd      d        }t        j                  ddd	      }|t        j
                  j                  d
d|j                        z   } |||      }| j                  |||z
         y )Nr   r!   z	(),()->()r   r>   c                     || z
  |d<   y )Nr   r@   )r   r   outs      r   rA   z.TestCudaDateTime.test_gufunc.<locals>.timediff>   s     5[CFr   r   r   r   r   r    )	r   r%   r   r   r&   r'   r(   r   r*   )r+   rB   timedelta_trA   r,   r-   r   s          r   test_gufunczTestCudaDateTime.test_gufunc9   s     9:
 *:!;<	z:{1~>?"
$	!
$	! yyI_Ebii''5$))<<t$td{3r   z#no .copy_to_host() in the simulatorc                 b   t        j                  ddd      }t        j                  |      }|j	                  t         j
                        }| j                  |j	                  t         j
                        |j                                | j                  |j                  |j                         y )Nr   r   r   r   )
r%   r&   r   	to_deviceviewint64r*   copy_to_hostr9   gpu_datar+   arrdarrvieweds       r   test_datetime_view_as_int64z,TestCudaDateTime.test_datetime_view_as_int64J   sr    ii	9OD~~c"288$ 2F4G4G4IJ$--8r   c                    t        j                  ddd      }||dz
  z
  }| j                  |j                  t        j                  d             t	        j
                  |      }|j                  t         j                        }| j                  |j                  t         j                        |j                                | j                  |j                  |j                         y )Nr   r   r   r   r   r!   )r%   r&   r9   r   r   rJ   rK   rL   r*   rM   rN   rO   s       r   test_timedelta_view_as_int64z-TestCudaDateTime.test_timedelta_view_as_int64R   s    ii	9ODS1WoBHH-=$>?~~c"288$ 2F4G4G4IJ$--8r   N)
__name__
__module____qualname__r.   r<   r   rC   rH   rS   rU   r@   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
   rV   mainr@   r   r   <module>r`      s@     . . - < Q9| Q9h zHMMO r   