
    J/Ph                         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                     dS dS )    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	d	S )
TestCudaDateTimec                 4   t           j        d             }t          j        ddd          }|t          j                            dd|j                  z   }t          j        |d          } |d	         |||           |                     |||z
             d S )
Nc                     t          t          j        d          |j        t          j        d                    D ]}||         | |         z
  ||<   d S N   ranger   gridsizegridsize)startenddeltais       e/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/numba/cuda/tests/cudapy/test_datetime.pyfooz8TestCudaDateTime.test_basic_datetime_kernel.<locals>.foo   sS    49Q<<T]15E5EFF - -q6E!H,a- -    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    		- 	- 
	- yI_EEEbi''5$)<<<d*:;;;E
4u%%%td{33333r   c                    t           j        d             }t          j        ddd          }|d         }|d         |d         z
  }t          j        |t          j                  }t          j        |d          } |d         |||||           |                                }|                     t          |          dg           | 	                    |||z
             d S )	Nc                     t          t          j        d          |j        t          j        d                    D ]}| |         |k    ||<   | |         |z
  ||<    d S r   r   )datestargetr   matchesoutdeltar   s         r   r   z9TestCudaDateTime.test_scalar_datetime_kernel.<locals>.foo   sa    49Q<<t}Q7G7GHH / /"1X/
#Ah./ /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    		/ 	/ 
	/ yI_EEEaQ$q'!-BH555=_===E
4:::!!eqc***$,77777r   z&ufunc API unsupported in the simulatorc                 L   t          t          j        d                    }t          ||fgd          d             }t          j        ddd          }|t          j                            dd	|j                  z   } |||          }|                     |||z
             d S )
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 9::
	Z,-f	=	=	=	 	 
>	=	 yI_EEEbi''5$)<<<t$$td{33333r   c                    t          t          j        d                    }t          t          j        d                    }t          |||d d          fgdd          d             }t          j        ddd	          }|t          j                            d
d|j                  z   } |||          }|                     |||z
             d S )Nr   r!   z	(),()->()r   r>   c                     || z
  |d<   d S )Nr   r@   )r   r   outs      r   rA   z.TestCudaDateTime.test_gufunc.<locals>.timediff>   s     5[CFFFr   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 9::
 *:!;!;<<	z:{111~>?"
$ 
$ 
$	! 	!
$ 
$	! yI_EEEbi''5$)<<<t$$td{33333r   z#no .copy_to_host() in the simulatorc                 d   t          j        ddd          }t          j        |          }|                    t           j                  }|                     |                    t           j                  |                                           |                     |j	        |j	                   d S )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   s    i	9ODDD~c""28$$ 2 2F4G4G4I4IJJJ$-88888r   c                    t          j        ddd          }||dz
  z
  }|                     |j        t          j        d                     t	          j        |          }|                    t           j                  }|                     |                    t           j                  |	                                           |                     |j
        |j
                   d S )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    i	9ODDDS1WoBH-=$>$>???~c""28$$ 2 2F4G4G4I4IJJJ$-88888r   N)
__name__
__module____qualname__r.   r<   r   rC   rH   rS   rU   r@   r   r   r
   r
   	   s        4 4 48 8 8$ _=>>4 4 ?>4 _=>>4 4 ?>4  _:;;9 9 <;9 _:;;9 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9 Q9 Q9 Q9| Q9 Q9 Q9h zHMOOOOO r   