o
    1ήc                    @   s   d dl Z d dl Zd dlZd dlZd dlmZmZmZmZm	Z	m
Z
mZ d dlmZ z
d dlmZ dZW n ey=   dZY nw ze W n eyM   eZY nw G dd dZG d	d
 d
ZdS )    N)assert_assert_equalassert_raisesassert_warnssuppress_warningsassert_raises_regexassert_array_equal)pickletimezoneTFc                   @   s  e Zd Zdd Zdd Zdd Zejdg dd	d
 Z	dd Z
ejdg ddd Zejdg ddd Zejdg dg dfg dg dfg dg dfg dg dgg dg dgfgejdg dd d! Zd"d# Zd$d% Zd&d' Zejdg d(d)d* Zd+d, Zd-d. Zd/d0 Zd1d2 Zd3d4 Zd5d6 Zd7d8 Zd9d: Zd;d< Zd=d> Zd?d@ ZejdAdBdCgdDdE ZejdFdGgdHdIgdJdK ZejdAdBdCgejdLdMdNgdOdP ZdQdR Z dSdT Z!dUdV Z"dWdX Z#dYdZ Z$d[d\ Z%d]d^ Z&d_d` Z'dadb Z(dcdd Z)dedf Z*dgdh Z+didj Z,dkdl Z-ejdme./dndoe./dpdodqfe./dndoe./drdodsfe./dtdoe./drdodsfe./dqdue./dvdodqfe./dwe./dvdxfe./dydze./d{d|dqfe.j0g d}d~de.j0dygd~de.j0g de.j1dfgdd Z2ejde./dde./ddfe./de./ddfe./e.3e.j1j4e./dfgdd Z5ejdddgdd Z6ejde./dndze./ddofe./dnd|e./dqdfgdd Z7ejde./dndoe./dpdofe./dndoe./drdofe./dtdoe./drdofe./dqdue./dvdofe./dwe./dvfe./dydze./d{d|fe.j0g d}d~de.j0dygd~dfgdd Z8ejde./dde./ddfe./de./ddfe./e.3e.j1j4e./dfgdd Z9dd Z:dd Z;dd Z<dd Z=dd Z>dd Z?dd Z@dd ZAdd ZBdd ZCdd ZDdd ZEdd ZFdd ZGdd ZHdd ZIdd ZJdd ZKejjLeM dddd ZNdd ZOddĄ ZPddƄ ZQejde./dndoe./ddoe./dqdofe./ddoe./dsdoe./ddofe./ddoe./dydoe./dqdofe./ddoe./ddoe./ddofe./ddoe./ddoe./ddofe./dqdue./ddoe./ddofe./dqde./ddΡe./ddΡfe./de./ddΡe./dfe./dydze./dd|e./dyd|fg	ddф ZRejde./dndze./ddofe./dnd|e./dqdfgddӄ ZSddՄ ZTejde./dndzdfde./dqdfgddل ZUddۄ ZVdd݄ ZWdd߄ ZXdd ZYdd ZZdd Z[dd Z\dd Z]dd Z^dd Z_dd Z`dd Zadd Zbejdg dejdg ddd Zcdd Zddd Zeejdddgd d Zfejdg ddd Zgejddzd|ejhdejjiddddd	dudod
ddΐdddejhdejjidddgejdddqgdd ZjdS (  TestDateTimec                 C   s.  dD ]&}t d| }t|t d| k t d| }t|t d| k qttt dd tt dt d tt d	t d
 tt dt dkp]t dt dk tt dt dkpst dt dk tt dt dk tt dt d tt dt d tt dt dkpt dt dk tt dt dkpt dt dk tt dt dk ttt jd ttt jd ttt jd ttt jd ttt jd ttt jd ttt jd ttt jd  ttt jd! ttt jd" d S )#N)YMWDhmsmsus   μsnspsfsasz	M8[750%s]zdatetime64[750%s]zm8[%s]ztimedelta64[%s]M8
datetime64z=M8z=M8[s]M8[s]z>M8z<M8z>M8[D]M8[D]<M8[D]z=m8m8z=m8[s]m8[s]z>m8z<m8z>m8[D]m8[D]z<m8[D]zM8[badunit]zm8[badunit]zM8[YY]zm8[YY]m4M7m7M16m16zM8[3000000000ps])npdtyper   r   strr   	TypeError)selfunitdt1dt2 r0   E/tmp/pip-target-vg8gfxp4/lib/python/numpy/core/tests/test_datetime.pytest_datetime_dtype_creation   sD   z)TestDateTime.test_datetime_dtype_creationc                 C   s  t tjdddd  t tjdddd  t tjdddd  t tjdddd  t tjdddd t tjdddd t tjdddd t tjdddd t tjdddd t tjdddd t tjd	ddd t tjd	ddd  t tjd
ddd  t tjd
ddd  t tjdddd  t tjdddd  t tjdddd  t tjdddd  t tjdddd t tjdddd t tjdddd t tjdddd t tjdddd  t tjdddd  t tjdddd t tjdddd t tjdddd  t tjdddd  t tjdddd t tjdddd t tjdddd t tjdddd  t tjdddd  t tjdddd t tjdddd t tjdddd t tjdddd t tjdddd t tjdddd t tjdddd  t tjdddd  t tjdddd  t tjdddd  d S )Nr    r   	same_kindcastingsafei8i4u4u8f4b1M8[M]r   M8[Y]m8[M]r"   m8[Y]M8[h]m8[h]zM8[7h]zM8[3h]zM8[6h])r   r(   can_castr,   r0   r0   r1   test_datetime_casting_rulesD   sV   z(TestDateTime.test_datetime_casting_rulesc                 C   sP   g d}g d}t ||D ]\}}tj||ddsJ tj||dds%J qd S )N)z
M8[7000ms]z
M8[2000us]z
M8[1000ns]z
M8[5000ns]z
M8[2000ps]z
M8[9000fs]z
M8[1000as]zM8[2000000ps]zM8[1000000as]zM8[2000000000ps]zM8[1000000000as])zM8[7s]M8[2ms]M8[us]zM8[5us]zM8[2ns]zM8[9ps]zM8[1fs]zM8[2us]zM8[1ps]rF   zM8[1ns]r6   r4   )zipr(   rC   )r,   smaller_unitslarger_unitslarger_unitsmaller_unitr0   r0   r1    test_datetime_prefix_conversions   s   z-TestDateTime.test_datetime_prefix_conversionsr-   )r   r   r   r   r   r   r   c                 C   sF   t t tjdgd| dd W d    d S 1 sw   Y  d S )N   zM8[-1]r)   )r   r+   r(   arrayr,   r-   r0   r0   r1   test_prohibit_negative_datetime   s   
"z,TestDateTime.test_prohibit_negative_datetimec                 C   sZ   t tdtdtd k t tdtddk t tddtdk d S )NNaT2000r   )r   r(   r   timedelta64rD   r0   r0   r1   test_compare_generic_nat   s
   
z%TestDateTime.test_compare_generic_natsize)           c                 C   4   t |}t t d|}tt j|dd| d S NrT   	mergesort)kind)r(   arangetiler   r   argsortr,   rX   expectedarrr0   r0   r1   #test_datetime_nat_argsort_stability      
z0TestDateTime.test_datetime_nat_argsort_stabilityc                 C   r]   r^   )r(   ra   rb   rV   r   rc   rd   r0   r0   r1   $test_timedelta_nat_argsort_stability   rh   z1TestDateTime.test_timedelta_nat_argsort_stabilityzarr, expected)rT   rN      rY   )rN   rj   rY   rT   )rT   	   rT   =)rl   rk   rT   rT   )rN   rY   rT   )rm   rN   rY   rT   )3   $rT   )rT   )ro   rn   rT   )rq   rp   rT   r)   )M8[ns]rG   m8[ns]zm8[us]c                 C   s2   t j||d}t j||d}|  t|| d S )NrP   )r(   rQ   sortr   )r,   rf   re   r)   r0   r0   r1    test_datetime_timedelta_sort_nat   s   z-TestDateTime.test_datetime_timedelta_sort_natc                 C   s  t tddtd t tddtdd t t td t ttdd t ttdd t ttdd t ttdd	 t td td t t jtd
 t tdjtd
 tttjd tdd}tjddd}t |jtd t |jtd t t|| t t|jtd t t|| t t|jtd t t|d| t t|djtd t t|d| t t|djtd t tdtt	
ddd t tddtt	
dddd t tdtt		ddddddd t tddtd t td dtd! t td"dtd# t tt	
dddd$td% t td&dtd t td'd(td  t td)d*td" d S )+Nz
1950-03-12r   z1950-03-12T13r   r   rT   znumpy.datetime64('NaT')z2011-02znumpy.datetime64('2011-02')r      z2000-03-18T16r   rA   rP   r   z
1945-03-25i  rY      z
2045-03-25i  z1980-01-25T14:36:22.5i  rN      $      i  z
1920-03-13z1920-03-13T00z1920-03z1920-03-01T00:001920z1920-01-01T00:00:00r   z2045-03-25T00:00:00.000z1920-03-13T18z1920-03-13T18:33:12r   z1920-03-13T18:33:12.5r   )r   r(   r   r*   reprr)   r   
ValueErrorrQ   datetimedater,   abr0   r0   r1   !test_datetime_scalar_construction   s~   


z.TestDateTime.test_datetime_scalar_constructionc                 C   s   t t ttdtd W d    n1 sw   Y  t t ttdtd W d    d S 1 s:w   Y  d S )Nz2000-01-01T00Zz2000-01-01T00z2000-01-01T00-08z2000-01-01T08)r   DeprecationWarningr   r(   r   rD   r0   r0   r1   *test_datetime_scalar_construction_timezone0  s   



"z7TestDateTime.test_datetime_scalar_construction_timezonec                 C   sp  t dd}t |g}t|jt d tddd}t |g}t|jt d tdddddd	}t |g}t|jt d t d
}t dd}tddd}tdddddd	}t ||g}t|jt d t ||g}t|jt d t ||g}t|jt d t ||gd}t|jt d t ||gd}t|jt d d S )N
1970-01-01r   r=   i  rN   O      (   Tr   r   rG   )	r(   r   rQ   r   r)   r~   r   bool_astype)r,   dtrf   r   dmdr0   r0   r1   test_datetime_array_find_type9  s.   
z*TestDateTime.test_datetime_array_find_type)r   r   r   r   r   r   r   r   r   r   r   r   r   genericc                 C   sL   |dkrt ttd|td| d S t ttdtd d S )Nr   {   )r   r(   rV   int64rR   r0   r0   r1   "test_timedelta_np_int_construction^  s   
z/TestDateTime.test_timedelta_np_int_constructionc                 C   s  t tddtdd t tddtdd t t td	 t td td
 t ttd
d
 t ttd
d t ttddd t ttddd t ttdd t tdjtd tdd}tjddd}t |jtd t |jtd t t|| t t|jtd t t|| t t|jtd t t|d| t t|djtd t t|d| t t|djtd t tddttjdd t tddttjdd t tddttjdd t tddttjdd t tdd ttjdd! t td"dttjd"d# t td$dttjd$d% t td&dttjd&d' tdd}t	t
tj|d( t	t
tj|d) td*d(}t	t
tj|d t	t
tj|d tdd)}t	t
tj|d t	t
tj|d tjdd}t	t
tj|d( t	t
tj|d) tjdd'}t	t
tj|d( t	t
tj|d) t }t	t
tj|d( t	t
tj|d) d S )+N   r   rN   r   x   r   rj   r   r   rT   znumpy.timedelta64('NaT')rY   z	3 secondsznumpy.timedelta64(-3,'s')r   znumpy.timedelta64(12)r    r   rB   rP   r!      )daysiesecondsl@D	 r   )microsecondsl   @D	 i r   )milliseconds
   )minutesi  )hours   )weeksr   r      )r   r(   rV   r*   r|   r)   rQ   r~   	timedeltar   r+   r   r0   r0   r1   "test_timedelta_scalar_constructionm  s   

z/TestDateTime.test_timedelta_scalar_constructionc                 C   sJ   t dt dt dg}tjg ddd}tj|dd}t|| d S )Nr   r      )r   r   r   ztimedelta64[D]rP   )r~   r   r(   rQ   r   )r,   inputsre   actualr0   r0   r1   &test_timedelta_object_array_conversion  s   z3TestDateTime.test_timedelta_object_array_conversionc                 C   sB   t tjdd}|t j}t tjddt j}t|| d S )N   r   )r(   rQ   r~   r   r   rV   r   )r,   testr   re   r0   r0   r1   ,test_timedelta_0_dim_object_array_conversion  s   z9TestDateTime.test_timedelta_0_dim_object_array_conversionc                 C   s   t ddtd d S )NrT   z{0}nat)r   formatr(   rV   rD   r0   r0   r1   test_timedelta_nat_format  s   z&TestDateTime.test_timedelta_nat_formatc                 C   s  t tdjtd t tdjtd t tdjtd t tdjtd t td	jtd
 t tdjtd t tdjtd t tdjtd t tdjtd t tdjtd t tdjtd t tdjtd t tdjtd t tdjtd t tdjtd t tdjtd t tdjtd t tdjtd t tdjtd t tdjtd t td jtd t td!jtd" t td#jtd" t td$jtd" t ttd%d&d'jtd t ttd%d&d'd(d)d*jtd t td+jtd t td,jtd d S )-N2010r>   z2010-03r=   z
2010-03-12r   z2010-03-12T17rA   z2010-03-12T17:15zM8[m]z2010-03-12T17:15:08r   z2010-03-12T17:15:08.1M8[ms]z2010-03-12T17:15:08.12z2010-03-12T17:15:08.123z2010-03-12T17:15:08.1234rG   z2010-03-12T17:15:08.12345z2010-03-12T17:15:08.123456z1970-01-01T00:00:02.1234567rr   z1970-01-01T00:00:02.12345678z1970-01-01T00:00:02.123456789z1970-01-01T00:00:02.1234567890M8[ps]z1970-01-01T00:00:02.12345678901z 1970-01-01T00:00:02.123456789012z!1970-01-01T00:00:02.1234567890123zM8[fs]z"1970-01-01T00:00:02.12345678901234z#1970-01-01T00:00:02.123456789012345z$1970-01-01T00:00:02.1234567890123456M8[as]z%1970-01-01T00:00:02.12345678901234567z&1970-01-01T00:00:02.123456789012345678i           -      todaynow)r   r(   r   r)   r~   r   rD   r0   r0   r1   (test_timedelta_scalar_construction_units  s   z5TestDateTime.test_timedelta_scalar_construction_unitsc           
      C   s  t jddd}t dd}t|dt jddd t|dt jddd t|dt jddd t|dt jddd t|d	t jdd	d tt |d
t dd
 tt |dt dd tt |dt dd tt |dt dd tt |dt dd tt |d
t dd
 tt |dt dd tt |dt dd tt |dt dd tt |dt dd t t jgd }|d}|d}|d}|d}|d}t t dgd }	t|d|	 t|d|	 t|d|	 t|d|	 t|d|	 t|d|	 t t dgd }	t|d|	 t|d|	 t|d|	 t|d|	 t|d|	 t|d|	 d S )NrT   r   rP   [D]r   r   r=   r>   M8[W]z[s]z[ms]z[M]z[Y]z[W]   fgr   FGrr   ztimedelta64[ns])r(   rQ   r   r   r   nanrV   )
r,   r   r   r   fnanlnancnancfnanclnanr   r0   r0   r1   test_datetime_nat_casting*  sJ   




z&TestDateTime.test_datetime_nat_castingc                 C   s@  t tjddddd t tjddddd t tjddddd	 t tjd
dddd t tjddddd t tjddddd t tjddddd t tjddddd t tjddddd t tjddddd t tjddddd t tjddddd t tjddddd t tjddddd t tjd dddd! t tjd"dddd# t tjd$dddd% t tjd&dddd' t tjd(dddd) t tjd*dddd+ t tjd,dddd- t tjd.dddd/ d S )0N1599r   rP   r7   g     1600g      1601g    s 1900i!1901i1967i1968i%1969i1970r   1971im  1972i  1973iH  1974i  rU   i*  2001i;,  2400i~e 2401if 
1600-02-29iW
1600-03-01iXz
2000-02-29i+  z
2000-03-01i	+  
2001-03-22i,  r   r(   rQ   r   rD   r0   r0   r1   test_days_creation[  sd   zTestDateTime.test_days_creationc                 C   sl  t tjddddtddd t tjddddtddd t tjd	dddtd
dd t tjddddtddd t tjddddtddd t tjddddtddd t tjddddtddd t tjddddtddd t tjddddtddd t tjddddtddd d S )Nr   r   rP   r   i?  rN   r   i@  r   iA  r   il  r   im  rU     r   i  r   rj      r   rY   r   rz   )r   r(   rQ   r   r~   r   rD   r0   r0   r1   test_days_to_pydate  s<   z TestDateTime.test_days_to_pydatec                 C   sf   t tdtdk  t tdtdk t tdtdk t tdtdk d S )NrG   r   M8[2D]r   r   r(   r)   rD   r0   r0   r1   test_dtype_comparison  s   z"TestDateTime.test_dtype_comparisonc                 C   s   t jdtdddgdd}t|d |d  t jd	td
ddgdd}t|d |d  t jdtdddgdd}t|d |d  t jdtj gdd}t|d |d  tt jtdddddt t d d S )Nz
1960-03-12i  rY   r   r   rP   r   rN   z
1999-12-31i  r   
2000-01-01r   r   r   z1960-03-12T00:00:00)r(   rQ   r~   r   r   r   r   r,   r   r0   r0   r1   test_pydatetime_creation  s   z%TestDateTime.test_pydatetime_creationc                 C   sL  g d}t j|dd}t j|dd}t j|dd}t||d t|j|dj t |}||d< t|| t||d t |}||d< t|| t||d t|j|dj t |}||d< t|| t||d t |}||d< t|| t||t jdf t j|jt jdfd}||d< t|| d S )	Nz
2011-03-16z
1920-01-01z
2013-05-19SrP   Ur   .S0   )	r(   rQ   r   r   r)   
empty_likestring_emptyshape)r,   r   str_auni_adt_adt_bstr_buni_br0   r0   r1   test_datetime_string_conversion  s4   







z,TestDateTime.test_datetime_string_conversion
time_dtyper"   r>   c                 C   sR   t jddg|d}||j }t|| |t j }t||t j d S N2017rT   rP   )r(   rQ   r   r)   newbyteorderr   viewr   )r,   r   timestimes_swapped	unswappedr0   r0   r1   test_time_byteswapping  s
   
z#TestDateTime.test_time_byteswappingtime1time2)r   r   )r!   rs   c                 C   s   t |}t |}t jddg|d}||}|| |}t|| || }t|| || | }t|| d S r   )r(   r)   rQ   r   r   r   )r,   r  r  dtype1dtype2r   re   resr0   r0   r1   test_time_byteswapped_cast  s   




z'TestDateTime.test_time_byteswapped_cast	str_dtyper   r   c           	      C   s   t jddg|d}t jddg|d}||}||j }||}t|| ||j }t|| ||j }t|| ||j }||}t|| ||j }t|| ||j }t|| d S r   )r(   rQ   r   r)   r   r   )	r,   r  r   r   from_strings
to_stringsr   r  from_strings_swappedr0   r0   r1   $test_datetime_conversions_byteorders  s&   







z1TestDateTime.test_datetime_conversions_byteordersc                 C   sv   t jg ddd}tt|d t jddgdd}tt j|ddd	d
 idd t g dd}tt|d d S )Nr   r   rP   z(['2011-03-16' '1920-01-01' '2013-05-19']z2011-03-16T13:55z1920-01-01T03:12z, r~   c                 S   s   dt j| dd S )Nz'%s'UTCr
   )r(   datetime_as_string)xr0   r0   r1   <lambda>     z6TestDateTime.test_datetime_array_str.<locals>.<lambda>)	separator	formatterz*['2011-03-16T13:55Z', '1920-01-01T03:12Z'])r   rT   2030z['2010'  'NaT' '2030'])r(   rQ   r   r*   array2stringr   r   r0   r0   r1   test_datetime_array_str  s   

z$TestDateTime.test_datetime_array_strc                 C   s   t jg ddd}tt|d t jddgdd}tt|d t jg ddd}tt|d t jg d	dd}tt|d
 t jg d	dd}tt|d
 t jg d	dd}tt|d
 d S )N)r   d   r   rP   z[ -1   0 100]rT   z['NaT' 'NaT'])r  rT   r   z[   -1 'NaT'     0])r  rT   i z[     -1   'NaT' 1234567]z>mz<m)r(   rQ   r   r*   r   r0   r0   r1   test_timedelta_array_str  s   z%TestDateTime.test_timedelta_array_strc                 C   s   t dtjd D ]L}td}tttj||d| td}tttj||d| td}tttj||d| |td }tttj||d| qd}tt|td	 d
}tt|td d}tt|td d S )Nrj   rN   zM8[7D])protocolr   z2016-01-01T00:00:00.000000000z2015-01-01T00:00:00.000000000sh   cnumpy
dtype
p0
(S'M8'
p1
I0
I1
tp2
Rp3
(I4
S'<'
p4
NNNI-1
I-1
I0
((dp5
(S'D'
p6
I7
I1
I1
tp7
tp8
tp9
b.z<M8[7D]sh   cnumpy
dtype
p0
(S'M8'
p1
I0
I1
tp2
Rp3
(I4
S'<'
p4
NNNI-1
I-1
I0
((dp5
(S'W'
p6
I1
I1
I1
tp7
tp8
tp9
b.z<M8[W]si   cnumpy
dtype
p0
(S'M8'
p1
I0
I1
tp2
Rp3
(I4
S'>'
p4
NNNI-1
I-1
I0
((dp5
(S'us'
p6
I1
I1
I1
tp7
tp8
tp9
b.>M8[us])	ranger	   HIGHEST_PROTOCOLr(   r)   r   loadsdumpsr   )r,   protor   scalardeltapklr0   r0   r1   test_pickle.  s&   


zTestDateTime.test_picklec                 C   s   t d}tt|jd t| d t d d k tt|jddddddddi d	ff	 t| d t d d k dS )
z@Verify that datetime dtype __setstate__ can handle bad argumentsr  )	r   >NNNr  r  r   rN   rj   r   r$  Nr  r   xxx)r(   r)   r   r}   __setstate__r   
__reduce__r+   r,   r   r0   r0   r1   test_setstateJ  s
   
"$&zTestDateTime.test_setstatec              	   C   s  dD ]}t tt|d t|d t|d  t tt|d t|d t|d  t tt|d t|d t|d  t tt|d	 t|d
 t|d  t tt|d t|d t|d  t tt|d t|d t|d  qtttjtdtd tttjtdtd tttjdd tttjdd tttjdd tttjdd tttjtdtd tttjtdtd d S )N)r   r   z8[2Y]z8[12Y]z8[15Y]z8[3Y]z8[62M]z8[24M]z8[2M]z8[1W]z8[2D]z8[1D]z8[W]z8[13s]z8[s]z8[13W]z8[49s]z8[7s]r@   r"   r?   zm8[W]float32r    uint64zm8[fs]r!   zm8[as])r   r(   promote_typesr)   r   r+   OverflowError)r,   mMr0   r0   r1   test_dtype_promotionR  sR   z!TestDateTime.test_dtype_promotionc                 C   s(   dd }t t| dd }t t| d S )Nc                   S      t dd d S )Nz#1971-01-01 00:00:00.000000000000000r   numpyr   r   r0   r0   r0   r1   cast{     z-TestDateTime.test_cast_overflow.<locals>.castc                   S   r0  )N2014z<M8[fs]r1  r0   r0   r0   r1   cast2  r4  z.TestDateTime.test_cast_overflow.<locals>.cast2)r   r-  )r,   r3  r6  r0   r0   r1   test_cast_overflowy  s   
zTestDateTime.test_cast_overflowc                 C   s  t jg dt jd}dD ]<}| j|d}d|d< d|d< d|d	< d
|d< d|d< d|d< d|d< d|d< d|d< t|t||d|  qdD ]<}| j|d}d|d< d|d< d|d	< d|d< d|d< d|d< d|d< d|d< d|d< t|t||d|  qKd S ) N)r   r   r   r   r   r   r   r   r   ilk3iBr  r   rN   i=iyGrP   )r   r   r=   r>   z-0001-01-01r   z-0001-12-31rN   z
0000-01-01rj   z
0001-01-01rY   z
1969-12-31r   r   r   z
9999-12-31r   10000-01-01r   rT   r   zError roundtripping unit %s)r   zM8[16fs]r   rG   z	M8[300as]zM8[20us]z-0001-01-01T00z-0001-12-31T00z0000-01-01T00z0001-01-01T00z1969-12-31T23:59:59.999999z1970-01-01T00z9999-12-31T23:59:59.99999910000-01-01T00)r(   rQ   r   copyr   r   r   object)r,   r   r-   r   r0   r0   r1   test_pyobject_roundtrip  s@   
z$TestDateTime.test_pyobject_roundtripc                 C   s   t tjdddtjddd t tjdddtjdddd t tjdddtjd	ddd t tjd
ddtjdddd t tjdddtjdddd d S )Nz
1945-03-01r=   rP   z
1945-03-31z
1969-11-01z1969-11-30T23:59:59.99999r   z
1969-12-01z1969-12-31T23:59:59.99999r   z1970-01-31T23:59:59.99999z
1980-02-01z1980-02-29T23:59:59.99999r   rD   r0   r0   r1   test_month_truncation  s   z"TestDateTime.test_month_truncationc              	   C   s  dD ]}t d| }dD ]y}t d| }tt jd|dt jd|d tt jd|dt jd|d tt jd|dt jd|d tt jd|dt jd|d tt d|t d| tt d|t d| tt d|t d| tt d|t d| qqd	D ]}t d| }d
D ]y}t d| }tt jd|dt jd|d tt jd|dt jd|d tt jd|dt jd|d tt jd|dt jd|d tt d|t d| tt d|t d| tt d|t d| tt d|t d| qqdD ]K}t d| }dD ]>}t d| }tt jt jddd|t jddd|dd tt jt jddd|t jddd|dd qqt jddd}t jddd}tt	t j
||dd d S )N)r   r   r   zM8[%s]1945rP   r   999910000r8  )6hr   r   r   10msr   r   )r   r   r   r   r   z1945-03-12T18z1970-03-12T18z9999-03-12T18r9  )r   12hr   r   r   4sr   r   )r   r   r   r   r   r   z
1932-02-17r   z1932-02-17T00:00:00unsafer4   z10000-04-27z10000-04-27T00:00:00
2012-12-21r   rY   r"   r3   )r(   r)   r   rQ   r   r   equalr   r   r+   less)r,   unit1r.   unit2r/   r   r   r0   r0   r1   test_different_unit_comparison  s   







z+TestDateTime.test_different_unit_comparisonc                 C   s   t jdgdd}t jdgdd}tt |j|j tt |j|j tt |j|j tt |j|j tt |j|j tt |j|j d S )NrY   zm8[4D]rP   rF  r   )r(   rQ   r   	ones_liker)   
zeros_liker   r   r0   r0   r1   test_datetime_like  s   zTestDateTime.test_datetime_likec              	   C   s  t jdgddt jdgddt jdgddt jdgddt jdgddft ddt ddt ddt ddt ddffD ]\}}}}}t| | t| j|j tt || tt |j|j tt || tt |j|j tt || tt |j|j tt || tt |j|j tt || tt || tt || tt |j|j t	 q@d S )	NrY   r"   rP   r   r   rN   r  r   )
r(   rQ   rV   r   r)   negativepositiveabsolutesignr   )r,   tdatdbtdzerotdonetdmoner0   r0   r1   test_datetime_unary  s<   




z TestDateTime.test_datetime_unaryc                 C   s*  t jdgddt jdgddt jdgddt jdgddt jdgd	dt jd
gddt jdgddft ddt ddt ddt ddt ddt d
dt ddffD ]9\}}}}}}}t|| | t|| jt d t|d |d  t|d jt d t|d | t|d jt d td| | td| jt d td| | td| jt d t|d |d  t|d | t|d jt d t|d | t|d | t|d jt d td| | td| | td| jt d td| | td| | td| jt d t|| | t|| | t|| jt d t|| | t|| | t|| jt d tt j||dd| tt j||ddjt d tt j||dd| tt j||ddjt d ttt j|| qXd S )NrF  r   rP   
2012-12-24z2012-12-21T11rA   rT   rY   r"      rB   S   r   [h]TrN   H   FrE  r4   )	r(   rQ   r   rV   r   r)   addr   r+   )r,   dtadtbdtcdtnatrS  rT  tdcr0   r0   r1   test_datetime_add'  sp   






zTestDateTime.test_datetime_addc           
      C   sV  t jdgddt jdgddt jdgddt jdgddt jdgddt jd	gddt jd
gddt jdgddt jdgddf	t ddt ddt ddt ddt ddt d	dt d
dt ddt ddf	fD ]7\	}}}}}}}}}	t|| |	 t|| jt d t|| |	  t|| jt d t|	d |	d  t|	d jt d t|	d |  t|	d jt d td| |  td| jt d td| |	 td| jt d t|d |d  t|d | t|d jt d t|d
 | t|d
 | t|d
 jt d t|| | t|| | t|| jt d tt j||dd| tt j||ddjt d tt j||ddt dd tt j||ddjt d tt j||ddt dd tt j||ddjt d ttt j|| ttt jd| ttt jd
| qpd S )NrF  r   rP   rY  z
1940-12-24z1940-12-24T00rA   z1940-12-23T13rT   rY   r"   rZ  rB   =   r   r\  TrN   r]  FrE  r4   r   r   )	r(   rQ   r   rV   r   r)   subtractr   r+   )
r,   r_  r`  ra  dtddterb  rS  rT  rc  r0   r0   r1   test_datetime_subtractm  s~   











z#TestDateTime.test_datetime_subtractc           
      C   s6  t jdgddt jdgddt jdgddt jdgddft ddt dd	t dd	t dd	ffD ]\}}}}t|d
 | t|d
 jt d td
| | td
| jt d t|d | t|d jt d td| | td| jt d ttt j|| ttt j|| ttt j|| ttt j|d
 ttt jd
| ttt j|d ttt jd| q4t	 R}|
td t d}dd }ttfD ]}|||d
| |||d| qtdtdfD ]}	|t d|	| |t d|	| |||	| qW d    d S 1 sw   Y  d S )NrF  r   rP   r   rB   rk   r   r   r\  rj         ?z%invalid value encountered in multiplyrT   c                 S   s    t | | | t ||  | d S Nr   )r   r   r  r0   r0   r1   check  s   z2TestDateTime.test_datetime_multiply.<locals>.checkr   infr   rN   )r(   rQ   r   rV   r   r)   r   r+   multiplyr   filterRuntimeWarningintfloat)
r,   r_  rS  rT  rc  supr   rm  tpr   r0   r0   r1   test_datetime_multiply  sP   




$z#TestDateTime.test_datetime_multiplyzop1, op2, expr   r   r   rN   rm   r   r   r   ib  <   rj   r   13r   )rN   rj   rY   r    rP   )r   rN   rN   c                 C   s   t || | d S rk  rl  )r,   op1op2expr0   r0   r1   test_timedelta_floor_divide  s   z(TestDateTime.test_timedelta_floor_dividezop1, op2r   r   r   rT   2   r  c                 C   sN   t t || }t|d t|jtj W d    d S 1 s w   Y  d S )Nr   )r   rq  r   r)   r(   r   )r,   rz  r{  r   r0   r0   r1   !test_timedelta_floor_div_warnings  s
   

"z.TestDateTime.test_timedelta_floor_div_warningsz
val1, val2)l         rN   )l         rm   c                 C   s2   t |}t |}|| }|| }t|| d S rk  )r(   rV   r   )r,   val1val2rz  r{  r   re   r0   r0   r1   "test_timedelta_floor_div_precision#  s
   


z/TestDateTime.test_timedelta_floor_div_precisionrY   r   c                 C   s8   t td ||  W d    d S 1 sw   Y  d S Nzcommon metadata divisorr   r+   r,   r  r  r0   r0   r1   test_timedelta_floor_div_error4     	
"z+TestDateTime.test_timedelta_floor_div_errorc                 C   s$   || || f}t t||| d S rk  )r   divmod)r,   rz  r{  re   r0   r0   r1   test_timedelta_divmod@  s   z"TestDateTime.test_timedelta_divmodc                 C   sx   t t || || f}W d    n1 sw   Y  t t t||}W d    n1 s0w   Y  t|| d S rk  )r   rq  r  r   )r,   rz  r{  re   r   r0   r0   r1   test_timedelta_divmod_warnings[  s   

z+TestDateTime.test_timedelta_divmod_warningsc           	   	   C   s   t jdgddt jdgddt jdgddt jdgddt jdgddft dd	t dd
t dd
t dd
t ddffD ]\}}}}}t|d | t|d jt d t|d | t|d jt d t|| d tt ||d tt ||d t|| d t|| jt d t|| d t|| d tt	t jd| tt	t jd| tt	t j|| tt	t j|| tt	t j|d tt	t jd| tt	t j|d tt	t jd| q@t
 }|td t d}ttfD ],}tt d|d | tt d|d | t||d | t||d | qtt dtd t d tt dtd t d t|td | tt dtd | tt dtd | t|td | W d    d S 1 syw   Y  d S )NrF  r   rP   r   rB   rk   r   zm8[m]r   r\  z[m]rj   g      ?gUUUUUU?rj  f8rx  g?z.*encountered in dividerT   rN   r   rn  r   )r(   rQ   r   rV   r   r)   dividetrue_divider   r+   r   rp  rq  rr  rs  )	r,   r_  rS  rT  rc  tddrt  r   ru  r0   r0   r1   test_datetime_divideo  s`   





$z!TestDateTime.test_datetime_dividec                 C   s   t d}t jg ddd}tt ||g d tt ||g d tt ||g d tt ||g d tt ||g d	 tt 	||g d
 d S )N2000-03-12T18:00:00.000000)r  z2000-03-12T17:59:59.999999z2000-03-12T18:00:00.000001z1970-01-11T12:00:00.909090z2016-01-11T12:00:00.909090zdatetime64[us]rP   )rN   r   r   r   r   )r   rN   rN   rN   rN   )r   r   rN   r   rN   )rN   r   rN   r   rN   )r   rN   r   rN   r   )rN   rN   r   rN   r   )
r(   r   rQ   r   rG  	not_equalrH  
less_equalgreatergreater_equalr   r0   r0   r1   test_datetime_compare  s   

z"TestDateTime.test_datetime_comparec                 C   s  t dd}t d}t dd}t dd}t jt jt jt jt jfD ]2}t|||  t|||  t|||  t|||  t|||  t|||  q#tt 	|| tt 	|| tt 	|| tt 	|| tt 	|| tt 	|| d S )NrT   r   r   r   rN   )
r(   r   rV   rG  rH  r  r  r  r   r  )r,   dt_natdt_othertd_nattd_otheropr0   r0   r1   test_datetime_compare_nat  s&   
z&TestDateTime.test_datetime_compare_natc                 C   s  t jddd}t jddd}tt ||| tt ||jt d tt ||| tt ||jt d tt ||| tt ||jt d tt ||| tt ||jt d tt |d|d|d t jddd}t jddd}tt ||| tt ||| tt ||| tt ||| tt ||| tt ||| tt ||| tt ||| t jd	d
d}t jddd}tt ||| tt ||jt d tt ||| tt ||jt d tt ||| tt ||jt d tt ||| tt ||jt d tt |d|d|d t jd	d
d}t jddd}t	t
t j||dd t	t
t j||dd t	t
t j||dd t	t
t j||dd d S )Nz1999-03-12T13zM8[2m]rP   z1999-03-12T12r   r7   rT   rA   rY   rB   i-*  r!   r3   r4   )r(   rQ   r   minimumr)   fminmaximumfmaxr   r   r+   )r,   r   r   rb  r0   r0   r1   test_datetime_minmax  sL   $$z!TestDateTime.test_datetime_minmaxc                 C   s0   t jddd}d|d< t|d  jdk d S )NrY   r   rP   i  r   r   )r(   onesr   itemhourr,   tr0   r0   r1   
test_hours  s   zTestDateTime.test_hoursc                 C   L   t tdtdk t tdtdk t tdtdk d S )NzM8[Y/4]zM8[3M]zM8[Y/13]zM8[4W]z	M8[3Y/73]zM8[15D]r   rD   r0   r0   r1   test_divisor_conversion_year     z)TestDateTime.test_divisor_conversion_yearc                 C   r  )NzM8[M/2]zM8[2W]zM8[M/15]r   z	M8[3M/40]zM8[54h]r   rD   r0   r0   r1   test_divisor_conversion_month  r  z*TestDateTime.test_divisor_conversion_monthc                 C   r  )Nzm8[W/7]r"   z	m8[3W/14]zm8[36h]z
m8[5W/140]zm8[360m]r   rD   r0   r0   r1   test_divisor_conversion_week"  r  z)TestDateTime.test_divisor_conversion_weekc                 C   r  )NzM8[D/12]zM8[2h]z	M8[D/120]zM8[12m]z
M8[3D/960]zM8[270s]r   rD   r0   r0   r1   test_divisor_conversion_day'  r  z(TestDateTime.test_divisor_conversion_dayc                 C   4   t tdtdk t tdtdk d S )Nzm8[h/30]zm8[2m]z
m8[3h/300]zm8[36s]r   rD   r0   r0   r1   test_divisor_conversion_hour,     z)TestDateTime.test_divisor_conversion_hourc                 C   r  )Nzm8[m/30]zm8[2s]z
m8[3m/300]z	m8[600ms]r   rD   r0   r0   r1   test_divisor_conversion_minute0  r  z+TestDateTime.test_divisor_conversion_minutec                 C   r  )Nz	m8[s/100]zm8[10ms]zm8[3s/10000]z	m8[300us]r   rD   r0   r0   r1   test_divisor_conversion_second4  r  z+TestDateTime.test_divisor_conversion_secondc                 C   s*   t tdtdk ttdd  d S )Nz
M8[fs/100]zM8[10as]c                   S   
   t dS )NzM8[3fs/10000]r(   r)   r0   r0   r0   r1   r  :     
 z9TestDateTime.test_divisor_conversion_fs.<locals>.<lambda>)r   r(   r)   r   r}   rD   r0   r0   r1   test_divisor_conversion_fs8  s   z'TestDateTime.test_divisor_conversion_fsc                 C   s   t tdd  d S )Nc                   S   r  )Nz	M8[as/10]r  r0   r0   r0   r1   r  =  r  z9TestDateTime.test_divisor_conversion_as.<locals>.<lambda>)r   r}   rD   r0   r0   r1   test_divisor_conversion_as<  r  z'TestDateTime.test_divisor_conversion_asc              	   C   s`  t tdgtdtdgtd t tdgtdtdgtd t tdgtdtdgtd tt t tdgtdtdgtd W d    n1 scw   Y  tt t tdgtdtd	gtd W d    n1 sw   Y  tt t td
gtdtdgtd W d    n1 sw   Y  tt t tdgtdtdgtd W d    n1 sw   Y  tt t tdgtdtdgtd W d    n	1 sw   Y  tt t tdtd W d    d S 1 s)w   Y  d S )Nz1980-02-29T01:02:03r   z1980-02-29 01:02:03z+1980-02-29T01:02:03z+1980-02-29 01:02:03z-1980-02-29T01:02:03z-1980-02-29 01:02:03z+1980-02-29 01:02:03Zz-1980-02-29 01:02:03Zz1980-02-29T02:02:03z1980-02-29 00:32:03-0130z1980-02-28T22:32:03z1980-02-29 00:02:03+01:30z1980-02-29T02:32:03.506z1980-02-29 00:32:03.506-02z1977-03-02T12:30-0230z1977-03-02T15:00)r   r(   rQ   r)   r   r   r   rD   r0   r0   r1   test_string_parser_variants?  sX   






$z(TestDateTime.test_string_parser_variantsc                 C   s  t ttjdgtd t ttjdgtd t ttjdgtd t ttjdgtd t ttjdgtd t ttjdgtd t ttjdgtd t ttjd	gtd t ttjd
gtd t ttjdgtd t ttjdgtd t ttjdgtd t ttjdgtd t ttjdgtd t ttjdgtd t ttjdgtd t ttjdgtd t ttjdgtd t ttjdgtd t ttjdgtd t ttjdgtd t ttjdgtd t ttjdgtd t ttjdgtd t ttjdgtd t ttjdgtd t ttjdgtd t ttjdgtd t ttjdgtd t ttjdgtd t ttjd gtd t ttjd!gtd t ttjd"gtd t ttjd#gtd t ttjd$gtd t ttjd%gtd t ttjd&gtd tt t ttjd'gtd W d    n	1 sw   Y  tt t ttjd(gtd W d    n	1 sw   Y  tt t ttjd)gtd W d    n	1 sw   Y  tt t ttjd*gtd W d    n	1 s;w   Y  tt t ttjd+gtd W d    d S 1 s]w   Y  d S ),NbadvaluerG   1980Xz1980-z1980-00z1980-13z1980-1z	1980-1-02z1980-Morz1980-01-z	1980-01-0z
1980-01-00z
1980-01-32z
1979-02-29z
1980-02-30z
1980-03-32z
1980-04-31z
1980-05-32z
1980-06-31z
1980-07-32z
1980-08-32z
1980-09-31z
1980-10-32z
1980-11-31z
1980-12-32z1980-02-03%z1980-02-03 qz1980-02-03 25z1980-02-03T25z1980-02-03 24:01z1980-02-03T24:01z1980-02-03 -1z1980-02-03 01:z1980-02-03 01:-1z1980-02-03 01:60z1980-02-03 01:60:z1980-02-03 01:10:-1z1980-02-03 01:01:60z1980-02-03 01:01:00+0661z1980-02-03 01:01:00+2500z1980-02-03 01:01:00-0070z1980-02-03 01:01:00-3000z1980-02-03 01:01:00-25:00)r   r}   r(   rQ   r)   r   r   rD   r0   r0   r1   test_string_parser_error_checkc  s   




$z+TestDateTime.test_string_parser_error_checkc                 C   s   d}t j|gddd t j}dD ]}|d9 }t j|gd| d}t||d t jd| d	 qt|d t jd
 tt t dd W d    n1 sSw   Y  tt t 	dd W d    d S 1 sow   Y  d S )Nz1980-03-23 20:00:00zdatetime64[s]rP   r   )r   r   r   r\   zdatetime64[%s]z%Datetime conversion error for unit %s)err_msgl     m	1#l            r   )
r(   rQ   r   r   r   pytestraisesr-  r   rV   )r,   r   	timestepsr-   r  r0   r0   r1   test_creation_overflow  s   "z#TestDateTime.test_creation_overflowc                 C   s  d}d}t tt|dd t tt|dd t tt|dd t tt|dd	 t tt|d
d t tt|dd t tt|dd dD ]}t tt||d qZd}t tt|dd t tt|dd t tt|dd d}t tt|d| d}t tt|dd t tt|dd t tt|dd d}t tt|d| td d!}t tj|dd"d#d$ t tj|dd"d#d% t tj|d&d"d#d' t tj|dd"d#d' t tj|dd(d) t tj|d
d(d* t tj|dd(d+ t tj|dd(d, t tj|d!d(d  t tj|dd(d- t tj|dd(d. t tj|dd(d/ t tj|dd(d0 t tjtd d!d1d(d  t tjtd2d!d1d(d3 t tjtd+d!d1d(d+ t tjtd4d!d1d(d* t tjtd5d!d1d(d6 t tjtd7d!d1d(d' t tjtd8d!d1d(d9 t tjtd:d!d1d(d; d S )<Nz
1959-10-13z&1959-10-13T12:34:56.789012345678901234r   1959r   z1959-10r   r   z1959-10-13T12r   z1959-10-13T12:34r   z1959-10-13T12:34:56r   z1959-10-13T12:34:56.789)r   r   s   usz1959-10-13T12:34:56.789012z&1969-12-31T23:34:56.789012345678901234r   z1969-12-31T23:34:56.789012345r   z 1969-12-31T23:34:56.789012345678r   z#1969-12-31T23:34:56.789012345678901z&1969-12-31T23:59:57.789012345678901234r   z&1970-01-01T00:34:56.789012345678901234z1970-01-01T00:34:56.789012345z 1970-01-01T00:34:56.789012345678z#1970-01-01T00:34:56.789012345678901z&1970-01-01T00:00:05.789012345678901234z2032-07-18T12:23:34.123456r   rE  )r-   r5   2032z2032-07r   z
2032-07-18)r-   z2032-07-18T12z2032-07-18T12:23z2032-07-18T12:23:34z2032-07-18T12:23:34.123z2032-07-18T12:23:34.123456000z 2032-07-18T12:23:34.123456000000z#2032-07-18T12:23:34.123456000000000z&2032-07-18T12:23:34.123456000000000000autoz2032-07-18T12:23:34.12z2032-07-18T12:23:34.120z2032-07-18T12:23:00z2032-07-18T12:00:00z2032-07-18T12:00z2032-07-18T00:00:00z2032-07-01T00:00:00z
2032-07-01z2032-01-01T00:00:00z
2032-01-01)r   r(   r  r   )r,   r   r~   r   r   r0   r0   r1   test_datetime_as_string  s
  z$TestDateTime.test_datetime_as_stringz!The pytz module is not available.)reasonc                 C   sJ  t dd}tt |d tt j|ddd tt j|ddd tt j|dddk t dd}tt j|td	dd
 tt j|tddd tt j|tddd tt j|td	dd tt j|tddd tt j|tddd ttt j|dtdd tt j|dtdddd tt j|dtd	ddd d S )Nz2010-03-15T06:30r   naiver
   r  z2010-03-15T06:30Zlocalz2010-02-15T06:30z
US/Centralz2010-03-15T01:30-0500z
US/Easternz2010-03-15T02:30-0400z
US/Pacificz2010-03-14T23:30-0700z2010-02-15T00:30-0600z2010-02-15T01:30-0500z2010-02-14T22:30-0800r   )r-   r   rE  )r-   r   r5   z
2010-03-14z
2010-02-15)r(   r   r   r  r   tzr   r+   r   r0   r0   r1    test_datetime_as_string_timezone2  sZ   


z-TestDateTime.test_datetime_as_string_timezonec                 C   s  t jdddd}t|jt d t|t jg ddd t jddddd}t|jt d t|t jg d	dd t jd
dddd}t|jt d t|t d
t jddd  t jddddd}t|jt d t|t dt jddd  t jddt ddd}t|jt d t|t dt jddd  ttt jt dt dd d tt	t jt ddt dd tt	t jt ddt dd d S ) N
2010-01-05z
2010-01-10r   rP   )r  z
2010-01-06z
2010-01-07z
2010-01-08z
2010-01-09
1950-02-10z
1950-02-06r  )r  z
1950-02-09z
1950-02-08z
1950-02-07z1969-05z1970-05rj   r   r=   r   )stepr   r   rY   r>   z
1969-12-19rz   r   r   z
2011-03-01r   r   r   z2012-02-03T14r   r   )
r(   ra   r   r)   rQ   r   rV   r   r}   r+   r   r0   r0   r1   test_datetime_arangeZ  sN   




z!TestDateTime.test_datetime_arangec                 C   s6   t jddd}tt ||d | ttt j| d S )Nz
2010-01-04r   rP   rN   )r(   rQ   r   ra   r   r}   r,   r   r0   r0   r1   test_datetime_arange_no_dtype  s   z*TestDateTime.test_datetime_arange_no_dtypec                 C   s   t jdddd}t|jt d t|t dt dd  t jt dddddd}t|jt d t|t ddt ddd  ttt jt dt d	d ttt jt dd
t d	d ttt jt ddt d	d
 d S )NrY   r   r    rP   r   r   rj   r!   r   r   r   r   )r(   ra   r   r)   rV   r   r}   r+   r   r0   r0   r1   test_timedelta_arange  s    


z"TestDateTime.test_timedelta_arangezval1, val2, expectedr   rv   rz   r   9   i  r   i  c                 C   s   t || | d S rk  rl  )r,   r  r  re   r0   r0   r1   test_timedelta_modulus  s   $z#TestDateTime.test_timedelta_modulusc                 C   8   t td ||  W d    d S 1 sw   Y  d S r  r  r  r0   r0   r1   test_timedelta_modulus_error  r  z)TestDateTime.test_timedelta_modulus_errorc                 C   sV   t t tddtdd }t|td W d    d S 1 s$w   Y  d S )Nr   r   r   rT   )r   rq  r(   rV   r   )r,   r   r0   r0   r1   "test_timedelta_modulus_div_by_zero  s   
"z/TestDateTime.test_timedelta_modulus_div_by_zero   g      @c                 C   r  )Nz*'remainder' cannot use operands with typesr  r  r0   r0   r1   &test_timedelta_modulus_type_resolution  s
   
"z3TestDateTime.test_timedelta_modulus_type_resolutionc                 C   s@   t jddd}tt ||d | tt |t d| d S )Nr   r"   rP   rN   r   )r(   rQ   r   ra   r  r0   r0   r1   test_timedelta_arange_no_dtype  s   z+TestDateTime.test_timedelta_arange_no_dtypec                 C   s   t jg ddd}tt j|jt d tt j|t d t jg ddd}tt j|jt d tt j|t dd d S )	N)
2010-01-02z
1999-03-14z1833-03r   rP   r  )rN   r   r   r   rj   r!   r   r   )r(   rQ   r   r  reducer)   r   rV   r   r0   r0   r1   test_datetime_maximum_reduce  s   
z)TestDateTime.test_datetime_maximum_reducec                 C   s,   t jddd}t| | t|  d S )Nr\   r!   rP   )r(   ra   r   meansumlenr   r0   r0   r1   test_timedelta_correct_mean  s   z(TestDateTime.test_timedelta_correct_meanc                 C   s   t jddgdd}d}tjt|d t j| W d    n1 s#w   Y  tjt|d t j| W d    n1 s@w   Y  tjt|d t j|dg W d    d S 1 s`w   Y  d S )Nz
2021-12-02z
2019-05-12r   rP   z&the resolved dtypes are not compatible)matchr   )	r(   rQ   r  r  r+   rf  r  
accumulatereduceat)r,   rf   msgr0   r0   r1   $test_datetime_no_subtract_reducelike  s   "z1TestDateTime.test_datetime_no_subtract_reducelikec                 C   sp  t tjdddddtd t tjdddddtd	 t tjdddddtd	 t tjd
dddtd t tjd
dddtd t tjd
dddtd t tjd
dddtd t tjd
dddtd t tjd
dddtd t tjddddtd t tjddddtd t tjddddtd t tjddddtd t tjddddtd tttjdd t tddtd t tddtd t tjddd d!td" t tjd"d#d d!td t tjtd$d%d&dtd$ t tjtd$d%ddtd$ t tjtd$d%ddtd$ d S )'Nz2011-06r   forwardMon)rollweekmaskz
2011-06-06z2011-07r  z
2011-06-27z2010-08backward)r  z
2010-07-30	precedingmodifiedprecedingz
2010-08-02modifiedfollowing	followingz
2010-10-30z
2010-11-01z
2010-10-29z
2010-10-16z
2010-10-18z
2010-10-15z
2011-06-04z
2006-02-01rw   z
2006-03-08z
2007-02-25rZ  SatSunr  z
2007-04-07irT   rN   r   )r   r(   busday_offsetr   r   r}   rD   r0   r0   r1   test_datetime_busday_offset  s   z(TestDateTime.test_datetime_busday_offsetc                 C   s  t jg dd}t|jt jg ddd t|jt jg ddd t jdd	}t|jt jg d
dd t jdd	}t|jt jg ddd t jdd	}t|jt jg ddd ttt jg dd	 ttt jdd	 ttt jdd	 ttt jdd	 ttt jdd	 ttt jdd	 d S )N)rT   
2011-01-17z
2011-03-06rT   
2011-12-26
2011-05-30r  holidays)r  r  r  r   rP   )rN   rN   rN   rN   rN   r   r   ?zSun TueWed  Thu	Frir  )r   rN   rN   rN   rN   r   rN   0011001)r   r   rN   rN   r   r   rN   zMon Tue)rN   rN   r   r   r   r   r   )r   r   r   r   r   r   r   satsun z
Mon Tue WeMaxz
Monday Tue)r(   busdaycalendarr   r  rQ   r  r   r}   )r,   bddr0   r0   r1   test_datetime_busdaycalendarB  s&   z)TestDateTime.test_datetime_busdaycalendarc                 C   sN  t tjdddgdtd t tjdddgdtd t tjdddgdtd t tjdd	dgdtd t tjdd
dgdtd t tjdd
dgdtd t tjddddgdtd t tjdd	ddgdtd t tjddddgdtd t tjdd	ddgdtd t tjddddgdtd t tjdd	ddgdtd t tjddddgdtd t tjdd	ddgdtd t tjddg ddtd t tjdd	g ddtd g d}tjd|d}t tjdd|dtdd t tjdd|dtdd t tjdd|dtdd t tjdd|dtdd t tjdd|dtdd t tjdd|dtdd t tjdd|dtdd t tjdd|dtdd t tjdd |dtdd! t tjdd|dtdd" t tjdd|d#tdd" t tjd$d	|dtd$d% t tjd$d&|dtd$d
 t tjd$d
|dtd$d' t tjd$d(|dtd$d) t tjd$d*|dtd$d+ t tjd$d,|dtd$d- t tjd$d.|dtd$d/ t tjd$d0|dtd$d1 t tjd$d2|dtd$d3 t tjd$d2|d#td$d3 tttjd$d4d|d5 tttjd$d4||d6 t tjd7d8d9|d:td; t tjd<d8d9|d:td; t tjd<d8d=|d:td> t tjd?d8d@g dAd:tdB t tjdCd8dDg dEd:tdF d S )GNz
2011-11-10rN   
2011-11-11r  z
2011-11-14z
2011-11-04r   z
2011-11-18r  rT   
2011-11-24
2011-10-10)r  r  r  )r  r  r  
2011-12-25r  
2011-02-21r  
2012-01-021111100r  r  z
2011-10-03r   r      r   r   #   %   ry   '   8   ;   r  re  rx  @   B   	busdaycal
2012-01-03rm   rw  ir  iiiiiiiiiiiir  r  r  r  r  r   r  )r  r  z
2011-12-27r  r  z
2011-12-23
2012-02-27r  )r  z
2012-02-26z
2012-02-28
2012-03-01z
2012-02-29z
2012-02-24
2012-03-06r  )z
2012-03-02z
2012-03-03r  z
2012-03-05z
2012-03-07r  z
2012-03-08)r   r(   r  r   r  r   r}   r,   r  r  r0   r0   r1   $test_datetime_busday_holidays_offsetd  s  




















z1TestDateTime.test_datetime_busday_holidays_offsetc                 C   s  g d}t jd|d}t jdt dd|d}tt jd||dt d tt j|d|dt d  t jd	t d d|d}tt j|d	|dt d tt jd	||dt d  ttt jd
dd|d ttt jd
d||d tt jddddd tt jddddd d S )N)
2011-01-01r  r  r  r  r  r  r  r  r  r  r  
2011-07-01
2011-07-04
2011-09-05r  r  r  r  in  r  )r  r  r  z
2011-12-31r  z
2012-02-03r  r  z2011-03z2011-04r  r  r   rw  )r(   r  r  ra   r   busday_countr   r}   )r,   r  r  datesr0   r0   r1   #test_datetime_busday_holidays_count	  s8   

z0TestDateTime.test_datetime_busday_holidays_countc                 C   sl   g d}t jd|d}tt dd tt dd tt dd tt j||d	t jt|d
d d S )N)r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  rT   r  r  r  Fz
2011-01-02z
2011-01-03Tr  r  rP   )r(   r  r   	is_busdayzerosr  r  r0   r0   r1   test_datetime_is_busday0	  s   z$TestDateTime.test_datetime_is_busdayc                 C   s   t d}t|t jd t d}t|t jd tt t d}t|t jd W d    n1 s9w   Y  tt t d}t|t jd W d    n1 s[w   Y  t d}tt|d d S )N2038-01-19T03:14:07iz2038-01-19T03:14:08l        z2038-01-19T04:14:07+0100z2038-01-19T04:14:08+0100z2038-01-20T13:21:14)r(   r   r   r   r   r   r   r*   r   r0   r0   r1   test_datetime_y2038A	  s   






z TestDateTime.test_datetime_y2038c                 C   s$  t ttdd t ttdd t ttd  t ttdd t ttdd  tg d}dD ]N}tjg dd	| d
}tt|| tjg dd| d
}tt|| tjg dd| d
}tt|| tjg dd| d
}tt|| qAd S )NrT   r   r   r$  "   FFTr   r   r   r   r   r   r   r   r   r   r   r   r   r   irT   <datetime64[%s]rP   >datetime64[%s]<timedelta64[%s]>timedelta64[%s])r   r(   isnatr   rV   rQ   r   )r,   r  r-   rf   r0   r0   r1   
test_isnatU	  s    zTestDateTime.test_isnatc                 C   s:   t jd D ]}|t jd v rqttt jt d| qd S )NAllDatetimer   )r(   	typecodesr   r+   r.  r"  r  r0   r0   r1   test_isnat_errorj	  s
   zTestDateTime.test_isnat_errorc                 C   sv   t ttdd  t ttdd  t ttd t ttdd  t ttdd d S )NrT   r   r   r$  r&  )r   r(   isfiniter   rV   rD   r0   r0   r1   test_isfinite_scalarq	  s
   z!TestDateTime.test_isfinite_scalarr(  dstr)r*  r+  r,  r-  c                 C   sx   g d}t j||| d}t g d}t g d}t g d}tt || tt || tt || dS )zLcheck isfinite, isinf, isnan for all units of <M, >M, <m, >m dtypes
        r)  rP   )TTFr'  )FFFN)r(   rQ   r   r4  isinfisnan)r,   r-   r6  arr_valrf   posnegfalser0   r0   r1   test_isfinite_isinf_isnan_unitsy	  s   z,TestDateTime.test_isfinite_isinf_isnan_unitsc                 C   s   t tttdtd d S )Nr   )r   AssertionErrorr   r(   r   rV   rD   r0   r0   r1   test_assert_equal	  s   zTestDateTime.test_assert_equalc                 C   sR   g g }}| | | | td g}||d< tt|jd tt|jd d S )Nr   r   r    )appendr(   rQ   r   r}   r   )r,   r   r   obj_arrr0   r0   r1   test_corecursive_input	  s   


z#TestDateTime.test_corecursive_inputr   r0   )rN   c                 C   s   t jdtd|}t jddd|}|jt dksJ t|d| t d|d< t|d| |d}t|dd| d S )Nz
2020-10-10rP   r   r   .r   )r(   rQ   r;  reshaper)   r   r   bytes_)r,   r   rf   r  r0   r0   r1    test_discovery_from_object_array	  s   
z-TestDateTime.test_discovery_from_object_array	time_unit)r   r   r   r   r   r   r   r   r   r   r   r   r   10D2Mc                 C   sZ   t d|}t t t jj|}t t t jj |}||  k r(|k s+J  J dS )zY
        Dates should have symmetric limits around the unix epoch at +/-np.int64
        r   N)r(   r   iinfor   max)r,   rF  epochlatestearliestr0   r0   r1   test_limit_symmetry	  s   	 z TestDateTime.test_limit_symmetryr   zgh-13197)marksr   r   r   r   r   rG  zsimilar to gh-13197rR  c                 C   s:   t t t jj| |}t t||}||ksJ dS )z
        Limits should roundtrip when converted to strings.

        This tests the conversion to and from npy_datetimestruct.
        N)r(   r   rI  r   rJ  r*   )r,   rF  rR  limitlimit_via_strr0   r0   r1   test_limit_str_roundtrip	  s   z%TestDateTime.test_limit_str_roundtripN)k__name__
__module____qualname__r2   rE   rM   r  markparametrizerS   rW   rg   ri   ru   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r#  r)  r/  r7  r<  r=  rK  rN  rX  rd  ri  rv  r(   rV   rQ   r   r}  rI  minr  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  skipif	_has_pytzr  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r#  r%  r/  r3  r5  r=  r?  rB  rE  rN  paramxfailrR  r0   r0   r0   r1   r      s(   *I


L	%
	V	
P1'&

'
%?(FK8















	



















A;$Sj
')

























#







=" )$

r   c                   @   s$   e Zd Zdd Zdd Zdd ZdS )TestDateTimeDatac                 C   s(   t jdgt jd}tt |jd d S )Nz
1980-03-23rP   )r   rN   )r(   rQ   r   r   datetime_datar)   r   r0   r0   r1   
test_basic	  s   zTestDateTimeData.test_basicc                 C   D   t dd}t |jdksJ t dd}t |jdks J d S )NrU   )s   msr   )r   r   s   5msr(   r   r^  r)   r(  r0   r0   r1   
test_bytes	     zTestDateTimeData.test_bytesc                 C   r`  )NrU   )r   r   )r   r   u   5μsra  r(  r0   r0   r1   test_non_ascii	  rc  zTestDateTimeData.test_non_asciiN)rS  rT  rU  r_  rb  rd  r0   r0   r0   r1   r]  	  s    r]  )r2  r(   r~   r  numpy.testingr   r   r   r   r   r   r   numpy.compatr	   pytzr   r  rZ  ImportErrorRecursionError	NameErrorRuntimeErrorr   r]  r0   r0   r0   r1   <module>   sL   $                   F