§
    ƒÛg´  ã                   ó�   — 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       ú[/granary/edev/quantum/lib/python3.11/site-packages/numba/cuda/tests/cudapy/test_datetime.pyÚfooz8TestCudaDateTime.test_basic_datetime_kernel.<locals>.foo   sS   € å�4œ9 Q™<œ<¨¬µT´]À1Ñ5EÔ5EÑFÔFð -ð -�Ø˜qœ6 E¨!¤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ˆØ•b”i×'Ò'¨¨5°$´)Ñ<Ô<Ñ<ˆÝ”˜dÐ*:Ð;Ñ;Ô;ˆàˆˆEŒ
�4˜˜uÑ%Ô%Ð%à×Ò  t¨d¡{Ñ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   € å�4œ9 Q™<œ<¨¬µt´}ÀQÑ7GÔ7GÑHÔHð /ð /�Ø" 1œX¨Ò/�˜‘
Ø# Aœh¨Ñ.�˜‘�ð/ð /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œ'Ñ!ˆÝ”- ­B¬HÐ5Ñ5Ô5ˆÝ”= ¨_Ð=Ñ=Ô=ˆàˆˆEŒ
�4˜ ¨°Ñ:Ô:Ð:Ø—’Ñ!Ô!ˆà×Ò�˜e™œ q cÑ*Ô*Ð*Ø×Ò ¨$°©,Ñ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ˆØ•b”i×'Ò'¨¨5°$´)Ñ<Ô<Ñ<ˆà�˜˜tÑ$Ô$ˆà×Ò  t¨d¡{Ñ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�‰FˆFˆ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Ô 9Ñ:Ô:ˆ
Ý ¥¤Ð*:Ñ!;Ô!;Ñ<Ô<ˆå	�z :¨{¸1¸1¸1¬~Ð>Ð?ÀØ"ð
$ñ 
$ô 
$ð	!ð 	!ñ
$ô 
$ð	!õ Œy˜ I°_ÐEÑEÔEˆØ•b”i×'Ò'¨¨5°$´)Ñ<Ô<Ñ<ˆà�˜˜tÑ$Ô$ˆà×Ò  t¨d¡{Ñ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˜	 9°OÐDÑDÔDˆÝŒ~˜cÑ"Ô"ˆØ—’�2œ8Ñ$Ô$ˆØ×Ò §¢­¬Ñ 2Ô 2°F×4GÒ4GÑ4IÔ4IÑ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˜	 9°OÐDÑDÔDˆØ�S˜1‘W‰oˆØ×Ò˜œ¥B¤HÐ-=Ñ$>Ô$>Ñ?Ô?Ð?ÝŒ~˜cÑ"Ô"ˆØ—’�2œ8Ñ$Ô$ˆØ×Ò §¢­¬Ñ 2Ô 2°F×4GÒ4GÑ4IÔ4IÑ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9ðh ˆzÒÐØ€H„M�O„O€O€O€Oð Ðr   