
    ]jqt                        d Z ddlmZ ddlmZ ddlZddlZddlZddl	m
Z
 ddlmZmZ ddlmZ ddlmZ ddlZddlmZ dd	lmZmZ  G d
 d      Z G d d      Z G d d      Zd Zy)z
Tests for DatetimeArray
    )annotations)	timedeltaN)
tz_compare)is_numpy_devnp_version_gt2_5)Pandas4Warning)DatetimeTZDtype)DatetimeArrayTimedeltaArrayc                  &   e Zd Z ej                  g d      d        Zej                  d        Zej                  d        Zej                  d        Zd Z	ej                  j                  dej                  ej                  z         d	        Zd
 Zd Zd Zd Zej                  j)                  d      d        Zd Zd Zd Zej                  j                  dg d      d        Zd Zd Zd Zd Zej                  j                  d ed       ej@                  d       e!jD                  dd       e!jD                  dd      ejF                  jI                  d       ejF                  jK                  d      g      d!        Z&d" Z'd# Z(y$)%TestNonNano)smsus)paramsc                    |j                   S )z)Fixture returning parametrized time units)param)selfrequests     L/root/env/lib/python3.12/site-packages/pandas/tests/arrays/test_datetimes.pyunitzTestNonNano.unit   s     }}    c                V    |}|t        j                  d| d      S t        ||      S )Nzdatetime64[])r   tz)npdtyper	   )r   r   tz_naive_fixturer   s       r   r   zTestNonNano.dtype$   s1    :88k$q122"44r   c                h   t        |dd       }t        j                  ddd|d      }|)t        j                  |      j                  d| d      }nFt        j                  |j                  d	      j                  d             j                  d| d      }t        j                  ||
      }||fS )Nr   
2016-01-017   Dnsperiodsfreqr   r   M8[r   UTCr   )
getattrpd
date_ranger   asarrayastype
tz_converttz_localizer
   _simple_new)r   r   r   r   dtiarrdtas          r   dta_dtizTestNonNano.dta_dti,   s    UD$'mmL"32DQ:**S/((3tfA7C**S^^E2>>tDELLdV1C ''59Cxr   c                    |\  }}|S N )r   r5   r4   r2   s       r   r4   zTestNonNano.dta;   s    S
r   c                l   t        j                  dt         j                        j                  d| d      }t	        j
                  ||      }|j                  |k(  sJ |d   j                  |k(  sJ t        |j                  |d   j                        sJ |d   |d d k(  j                         sJ y )N   r)   r'   r   r      )r   arangeint64viewr
   r1   r   r   r   r   all)r   r   r   r3   r4   s        r   test_non_nanozTestNonNano.test_non_nano@   s    ii*//#dV1>''59yyE!!!1v{{d"""#&&#a&)),,,A#bq'!&&(((r   fieldc                    |\  }}||k(  j                         sJ t        ||      }t        |j                  |      }t        j                  ||       y r7   )r?   r*   _datatmassert_numpy_array_equal)	r   r   rA   r   r5   r4   r2   resexpecteds	            r   test_fieldszTestNonNano.test_fieldsI   sO     Ss
!!!c5!399e,
##C2r   c                   t        j                  ddd      }t        j                  |      j	                  d| d      }t        j                  ||j                        }|j                  rJ t        j                  |j                               j	                  d| d      }t        j                  ||j                        }|j                         }t        j                  ||       y )Nz2016-01-01 06:00:00r!   r"   r%   r&   r'   r   r)   )r+   r,   r   r-   r.   r
   r1   r   is_normalized	normalizerD   assert_extension_array_equal)r   r   r2   r3   r4   exprG   rF   s           r   test_normalizezTestNonNano.test_normalizeU   s    mm12CHjjo$$s4&]3''399=$$$$ jj)003tfA? ,,S		Bmmo
''X6r   c                    t         j                  j                  }t        j                  |gd      }d}t        j                  t        |      5  |j                          d d d        y # 1 sw Y   y xY w)NM8[ns]r)   z3Cannot normalize Timestamp without integer overflowmatch)	r+   	Timestampminr
   _from_sequencepytestraises
ValueErrorrL   )r   tsr4   msgs       r   test_normalize_overflow_raisesz*TestNonNano.test_normalize_overflow_raisesd   sV    \\**B4x@C]]:S1 	MMO	 	 	s   A**A3c                   t        j                  dt         j                        j                  d| d      }t	        |d      }t        j                  ||      }|j                  |k(  sJ t	        dd      }t        j                  t        d      5  t        j                  ||       d d d        y # 1 sw Y   y xY w)	Nr:   r)   r'   r   r(   r#   z^$rR   )r   r<   r=   r>   r	   r
   r1   r   rW   rX   AssertionError)r   r   r3   r   r4   wrongs         r   test_simple_new_requires_matchz*TestNonNano.test_simple_new_requires_matchm   s    ii*//#dV1>e,''59yyE!!!e,]]>6 	8%%c7	8 	8 	8s   B55B>c                f   t        j                  dddd      }t        j                  |      j	                  d| d      }t        j                  ||j                        }|j                         }|j                  |j                  k(  sJ ||j                         j                  |      k(  sJ y )	Nr    r!   r"   r#   )r%   r&   r   r'   r   r)   )r+   r,   r   r-   r.   r
   r1   r   std_cresofloor)r   r   r2   r3   r4   rF   s         r   test_std_non_nanozTestNonNano.test_std_non_nanox   s    mmL"3TJjjo$$s4&]3''399= ggizzSZZ'''cggiood++++r   z.ignore:Converting to PeriodArray.*:UserWarningc                    |\  }}|j                  d      }|j                  j                  d      }t        j                  ||       y )Nr"   )	to_periodrC   rD   rM   r   r5   r4   r2   resultrG   s         r   test_to_periodzTestNonNano.test_to_period   s=    Ss#99&&s+
''9r   c                    t        t        |            }|d   }t        |      t        j                  u sJ |j
                  |j
                  k(  sJ |j                  |j                  k(  sJ ||k(  sJ y )Nr   )nextitertyper+   rT   _valuerc   )r   r4   rF   rG   s       r   	test_iterzTestNonNano.test_iter   sf    49oq6CyBLL(((zzX__,,,zzX__,,,hr   c                    j                  t              }t        fd|D              sJ t        d t        |d      D              sJ y )Nc              3  P   K   | ]  }|j                   j                   k(    y wr7   )rc   ).0xr4   s     r   	<genexpr>z1TestNonNano.test_astype_object.<locals>.<genexpr>   s     :a188szz):s   #&c              3  ,   K   | ]  \  }}||k(    y wr7   r8   )rs   rt   ys      r   ru   z1TestNonNano.test_astype_object.<locals>.<genexpr>   s     Dda16Ds   T)strict)r.   objectr?   zip)r   r4   ri   s    ` r   test_astype_objectzTestNonNano.test_astype_object   sB    F#:6::::Dc&#d&CDDDDr   c                z    |\  }}|j                         }|j                         }t        j                  ||       y r7   )to_pydatetimerD   rE   rh   s         r   test_to_pydatetimezTestNonNano.test_to_pydatetime   s7    S""$$$&
##FH5r   meth)timetimetzdatec                j    |\  }}t        ||      }t        ||      }t        j                  ||       y r7   )r*   rD   rE   )r   r5   r   r4   r2   ri   rG   s          r   test_time_datezTestNonNano.test_time_date   s3    Sd#3%
##FH5r   c                    |\  }}|j                         }|j                  j                         }t        j                  ||       y r7   )_format_native_typesrC   rD   rE   )r   r   r   r5   r4   r2   rF   rN   s           r   test_format_native_typesz$TestNonNano.test_format_native_types   s=     S&&(ii,,.
##C-r   c                z    |\  }}t        |      t        |j                        j                  dd|       k(  sJ y )Nz[ns[)reprrC   replace)r   r5   r   r4   r2   s        r   	test_reprzTestNonNano.test_repr   s8    SCyDO33EQtf:FFFFr   c                   |}t        j                  t         j                        }t        j                  |j                  |j                  dz   |j
                  gt         j                        }t        j                  |      j                  d      }|j                  d      }t        j                  ||j                        }t        j                  ||j                        }|t        j                  u rt        j                  g d      }	n{|t        j                  u rt        j                  g d      }	nQ|t        j                  t        j                  fv rt        j                  g d      }	nt        j                  g d      }	 |||      }
t        j                   |
|	        ||d   |      }
t        j                   |
|	       |t        j                  t        j                  fvrt"        st$        rBt'        j(                  t*        d	
      5   ||j,                  |j,                         d d d        y  ||j,                  |j,                        }t        j                   |dd  |	dd          y y # 1 sw Y   y xY w)Nr;   r)   rQ   M8[s])FFF)TTT)FFT)FTFOverflowrR   )r   iinfor=   arrayrU   maxr>   r
   r1   r   operatoreqneltlerD   rE   r   r   rW   rX   OverflowError_ndarray)r   comparison_opopr   valsr3   arr2leftrightrG   ri   np_ress               r   #test_compare_mismatched_resolutionsz/TestNonNano.test_compare_mismatched_resolutions   s   "xxEIIM599=RXXN hhtn!!(+xx ((CII>))$djjAHKK'xx 56Hhkk)xx 23Hx{{HKK88xx 45Hxx 45HD%
##FH5DGU#
##FH5hkk8;;/// ]]=
C 6t}}enn56 6
 DMM5>>:++F12J!"F 06 6s   I88Jc                    t        j                  d      }t        j                  dd      |z
  }|j                  j	                  d      }||j	                  d      z   }|j
                  dk(  sJ y )Nr;   )microsecondsr       r%   r   )r+   	Timedeltar,   rC   as_unitr   )r   tdr2   r4   rF   s        r   (test_add_mismatched_reso_doesnt_downcastz4TestNonNano.test_add_mismatched_reso_doesnt_downcast   s`    \\q)mmL!4r9ii%BJJt$$ xx4r   scalar   )hourshi m r   x   c                   |\  }}t        j                  |      }t        j                  |j                  |j                        }||z   j
                  j                  |      }||z   }t        j                  ||       ||z   }t        j                  ||       ||z
  j
                  j                  |      }||z
  }t        j                  ||       y r7   )r+   r   rD   get_finest_unitr   rC   r   rM   )	r   r5   r   r4   r2   r   exp_unitrG   ri   s	            r   -test_add_timedeltalike_scalar_mismatched_resoz9TestNonNano.test_add_timedeltalike_scalar_mismatched_reso   s     S\\&!%%chh8"H##++H5v
''9#
''9"H##++H5v
''9r   c                *   t        j                  dd      }|j                  j                  d      }|d   j                  d      }||z
  }||d   z
  j                  j                  d      }|j                  dk(  sJ t        j                  ||       y )Nr    r   r   r   r   r   zm8[us])r+   r,   rC   r   r   rD   rM   )r   r2   r4   rZ   ri   rG   s         r   %test_sub_datetimelike_scalar_mismatchz1TestNonNano.test_sub_datetimelike_scalar_mismatch  s    mmL!4ii%V^^C r#a&L''//5||x'''
''9r   c                j   t        j                  dd      }|j                  j                  d      }|j                  d      }||z
  }t	        j
                  g dd      }t        j                  ||j                        }t        j                  ||       ||z
  }t        j                  ||       y )	Nr    r   r   r   r   )r   r   r   zm8[ms]r)   )r+   r,   rC   r   r   r   r   r1   r   rD   rM   )r   r2   r   r   ri   
exp_valuesrG   result2s           r   !test_sub_datetime64_reso_mismatchz-TestNonNano.test_sub_datetime64_reso_mismatch  s    mmL!4yy  %T"XXix8
!--""
 	''9$,
'':r   N))__name__
__module____qualname__rW   fixturer   r   r5   r4   r@   markparametrizer
   
_field_ops	_bool_opsrH   rO   r\   r`   re   filterwarningsrj   rp   r{   r~   r   r   r   r   r   r   r+   r   r   timedelta64offsetsMinuteHourr   r   r   r8   r   r   r   r      s   V^^,- . ^^5 5 ^^  ^^ ) [[))M,C,CC337	8	, [[ PQ: R:E
6 [[V%?@6 A6.G'GR	  [[ABLLq!BNN1c"BNN?D1JJc"JJOOA	

:
:"	:;r   r   c                      e Zd Zd Zy)TestDatetimeArrayComparisonsc                n   |}t        j                  dddd       }|j                  }|j                  |j                  k(  sJ |j                  |j                  k(  sJ |}t        j                  t        |      t              }|j                  dv r| } |||      }t        j                  ||       |t        j                  |      t        |      t        |      |j                  t               fD ]@  } |||      }t        j                  ||        |||      }t        j                  ||       B y )Nz	2016-01-1MS	   )r&   r%   r   r)   )r   gtr   )r+   r,   rC   r&   r   r   oneslenboolr   rD   rE   r   listtupler.   ry   )	r   r   r   r2   r3   r   rG   ri   others	            r   test_cmp_dt64_arraylike_tznaivez<TestDatetimeArrayComparisons.test_cmp_dt64_arraylike_tznaive&  s   mmKdA$Giixx388###vv773s840!!%77 yHC
##FH5HHUOK%LLL 
 	:E U^F''9s^F''9	:r   N)r   r   r   r   r8   r   r   r   r   "  s    :r   r   c                     e Zd Zd Zd Zd Zd Zej                  j                  dddg      ej                  j                  dg d	      d
               Z
ej                  j                  deej                  ej                  ddg      d        Zd Zd Zd Zd Zd Zej                  j                  d ej,                  d       ej,                  d      j/                          ej,                  d      j1                         g      d        Zd Zd Zej                  j                  dddg      d        Zd Zd Zd Zej                  j                  dd d!g      d"        Z ej                  j                  dd d!g      d#        Z!ej                  j                  dd$ ej                  d$      d% ejD                  d&d'       ejF                  d()      d* ejH                  d+d,-      d.z  d/z  d0z   ejH                  d+      jK                  d1      d.z  d/z  d0z   ej,                  d      jM                  d2      g	      ej                  j                  dd d!g      d3               Z'd4 Z(d5 Z)d6 Z*d7 Z+ej                  j                  d8g d9      d:        Z,ej                  j                  d;g d<      d=        Z-ej                  j                  d>g d?      d@        Z.ej                  j                  d;g dA      dB        Z/dC Z0ej                  j                  d;g dD      dE        Z1ej                  j                  d;g dF      dG        Z2yH)ITestDatetimeArrayc                   t        j                  d      }|j                  d      }t        j                  |gd      }|j                  d      |j                  d      j                  k(  j                         sJ |j                  d      }|d   |k(  sJ t        j                  |gd      }|j                  d      |j                  k(  j                         sJ t        j                  ||       y )	Nz1677-09-21 00:12:43.145225r   rQ   r)   i8r#   zM8[ms]r   )r+   rT   r   r
   rV   r>   valuer?   r.   ro   rD   assert_datetime_array_equal)r   rZ   targetr4   ri   rG   s         r    test_astype_ns_to_ms_near_boundsz2TestDatetimeArray.test_astype_ns_to_ms_near_boundsG  s    \\67D!**B4x@"**T"2"8"88==???H%ayF""" //HEd#v}}499;;;
&&vx8r   c                2   t        j                  dd      }|j                  d      }|j                  dk(  sJ |j                  }|j                  d      }|j                  dk(  sJ t        |t         j                  j                  j                        sJ y )Nr    r   r   r   )	r+   r,   r.   r   rC   
isinstancecorearraysr
   )r   r2   rF   r4   s       r   test_astype_non_nano_tznaivez.TestDatetimeArray.test_astype_non_nano_tznaiveW  sy    mmL!4jj!yyG###iijj!yyG####rww~~;;<<<r   c                   t        j                  ddd      }|j                  d      }|j                  dk(  sJ |j                  }|j                  d      }|j                  dk(  sJ |j                  d      }|j                  dk(  sJ t        j                  ||      rJ |j                  dd      }|j                  dk(  sJ t        j                  ||      sJ y )	Nr    r   r(   r%   r   zM8[s, US/Pacific]z
M8[s, UTC]Fcopy)r+   r,   r.   r   rC   rD   shares_memory)r   r2   rF   r4   res2res3s         r   test_astype_non_nano_tzawarez.TestDatetimeArray.test_astype_non_nano_tzawareb  s    mmL!>jj,-yy////iijj,-yy//// zz,'zz\)))##D#...zz,Uz3zz\)))c***r   c                    t        j                  dgt        d            }|j                  t        d      d      }||u sJ y )N2000
US/Centralr   r)   Fr   )r
   rV   r	   r.   )r   r3   ri   s      r   test_astype_to_samez%TestDatetimeArray.test_astype_to_sameu  sC    **HO|<
 O|<5I}}r   r   datetime64[ns]datetime64[ns, UTC]r   )r   r   zdatetime64[ns, CET]c                   t        j                  ddg|      }|j                         }d}|dk(  |dk(  z  rd}|r@|dk(  rd}nd}t        j                  t
        |	      5  |j                  |       d d d        y |j                  |      }t         j                  |d d  t        j                  ||       y # 1 sw Y   y xY w)
Nr;   r   r)   Fr   Tz<Use obj.tz_localize instead or series.dt.tz_localize insteadz1from timezone-aware dtype to timezone-naive dtyperR   )
r+   Seriesr   rW   rX   	TypeErrorr.   NaTrD   assert_series_equal)r   r   r   serorigerrr[   ts           r   test_astype_copiesz$TestDatetimeArray.test_astype_copies|  s     iiAe,xxz%%%3C*CDC((TIy4 "

5!" " 

5!A66AaD""3-" "s    B66B?uint32uint64c                   t        j                  t        j                  d      t        j                  d      gd      }t	        j
                  |      t        j                  k7  r6t        j                  t        d      5  |j                  |       d d d        y |j                  |      }|j                  j                  d      }t        j                  ||       y # 1 sw Y   y xY w)Nr   2001rQ   r)   zDo obj.astype\('int64'\)rR   r   )r
   rV   r+   rT   r   r   r=   rW   rX   r   r.   r   r>   rD   rE   )r   r   r3   ri   rG   s        r   test_astype_intz!TestDatetimeArray.test_astype_int  s    **\\&!2<<#78
 88E?bhh&y0KL "

5!"E"<<$$T*
##FH5"s   CC(c                    t        j                  dd      }|j                  }|j                  d      }|j                  dk(  sJ ||k(  j                         sJ y )Nr       r   zSparse[datetime64[ns]])r+   r,   rC   r.   r   r?   )r   r2   r4   ri   s       r   test_astype_to_sparse_dt64z,TestDatetimeArray.test_astype_to_sparse_dt64  sS    mmL!4ii45||7777#""$$$r   c                    t        j                  dgt        d            }t        j                  t
        d      5  d|_        d d d        y # 1 sw Y   y xY w)Nr   r   r   r)   r0   rR   r(   )r
   rV   r	   rW   rX   AttributeErrorr   )r   r3   s     r   test_tz_setter_raisesz'TestDatetimeArray.test_tz_setter_raises  sJ    **HO|<
 ]]>? 	CF	 	 	s   AAc                   |}t        j                  g dd      }||j                  nt        |      }t	        j
                  ||      }|j                         }t        j                  d      j                  |      }t        |j                  d             }||d<   ||d<   t        j                  ||       ||d<   ||g|d d t        j                  ||       y )	Nr;   r   r   rQ   r)   r   z2020-09-08 16:50r   r;   r   )r   r   r   r	   r
   rV   r   r+   rT   r0   strrD   assert_equal)	r   r   r   datar   r3   rG   rZ   setters	            r   test_setitem_str_impute_tzz,TestDatetimeArray.test_setitem_str_impute_tz  s     xx	2 j

o.D**4u=88:\\,-99"=R^^D)* A
X& 6"BQ
X&r   c                t   t        j                  g dd      }t        j                  |dt	        d            }t        j                  t        d	      5  t        j                  d
      |d<   d d d        t        j                  d
d      }||d<   |d   |j                  d      k(  sJ y # 1 sw Y   ?xY w)Nr  rQ   r)   Fr   r   )r   r   z$Cannot compare tz-naive and tz-awarerR   r   r   
US/Eastern)r   r   r
   rV   r	   rW   rX   r   r+   rT   r/   )r   r  r3   rZ   s       r    test_setitem_different_tz_raisesz2TestDatetimeArray.test_setitem_different_tz_raises  s     xx	2**uO|$D
 ]]9,RS 	*\\&)CF	* \\&\2A1v|4444	* 	*s   B..B7c                    t        j                  dddd      j                  }t        j                  dd      |d<   |j                  J y )Nr   r   r"   r   r%   r&   r   r   r   )r+   r,   rC   rT   r&   )r   as     r   test_setitem_clears_freqz*TestDatetimeArray.test_setitem_clears_freq  s>    MM&!#,GMM||F|4!vv~~r   objz
2021-01-01c                j    t        j                  ddd      }|j                  }||d<   |d   |k(  sJ y )Nr   r   r"   rJ   r   )r+   r,   rC   )r   r  r2   r3   s       r   test_setitem_objectsz&TestDatetimeArray.test_setitem_objects  s8     mmFAC8iiA1v}}r   c                    t        j                  dddd      }|j                  }|j                  ddg      }t	        j
                  |j                  |j                        }t        j                  ||       y )Nr   r   r"   r   r  r;   r)   )
r+   r,   rC   repeatr
   rV   asi8r   rD   r  )r   r2   r3   repeatedrG   s        r   test_repeat_preserves_tzz*TestDatetimeArray.test_repeat_preserves_tz  s[    mmFACLIii::q!f% !//		J
(+r   c                   t        j                  dddd      }|j                  j                  ddg      }|j	                         }|j
                  j                  |      sJ t         j                  |d<   |j	                  d	
      }t        j                  g d|d   |d   t         j                  gd      }t        j                  ||       y )Nr   r   r"   r   r  r   r   F)dropna)r   r   r;   r   r;   count)indexname)r+   r,   rC   r  value_countsr  equalsr   r   rD   r   )r   r2   r3   ri   rG   s        r   test_value_counts_preserves_tzz0TestDatetimeArray.test_value_counts_preserves_tz  s    mmFACLIii1v&!!# ||""3'''&&B!!!/99Ys1vs1vrvv.FWU
vx0r   methodpadbackfillc                   t        j                  ddddd      }t        j                  ||j                  d      }t         j
                  |d	<   |d
k(  r|d   n|d   }t        j                  |d   |d   ||d   |d   gt        d            }|j                  |      }t        j                  ||       |d	   t         j
                  u sJ |d	   t        j                  dd      k(  sJ y )Nz
2000-01-01r:   r"   r   r#   r$   T)r   r   r   r$  r;   r   r   r   r   r)   r#  z
2000-01-03)r+   r,   r
   rV   r   r   r	   _pad_or_backfillrD   rM   rT   )r   r#  r2   r3   fill_valrG   ri   s          r   test_fillna_preserves_tzz*TestDatetimeArray.test_fillna_preserves_tz  s    mm!#,T
 **3ciidKA#u_3q6#a& //VSVXs1vs1v6!\2

 %%V%4
''9 1v1vl|DDDDr   c                   t        j                  ddd      }|j                  j                  dd      j	                         }t         j
                  |d<   t         j
                  |d<   |j                  d	
      }|j	                         }|d   |d<   t        j                  ||       |j                  d
      }|j	                         }|j	                         }|d   |d<   |d   |d<   t        j                  ||       |j                  |j                  j	                  d            }|j                  j                  d   sJ |j                  j                  d   rJ t        j                  ||       |j                  d	
      }t        j                  ||       |j                  d
      }	t        j                  |	|       t        j                  |      }
|
j                         }t        j                  |      }t        j                  ||       |
j                         }t        j                  |      }t        j                  ||       y )Nr       
US/Pacificr   r   r   )r   r;   )r;   r   r$  r'  )r   r   r%  )r   r   )r;   r;   F)orderF_CONTIGUOUSC_CONTIGUOUS)r+   r,   rC   reshaper   r   r(  rD   rM   _from_backing_datar   flags	DataFrameffillassert_frame_equalbfill)r   r2   r4   res1	expected1r   	expected2dta2r   res4dfrF   rG   s                r   test_fillna_2dz TestDatetimeArray.test_fillna_2d  s   mmL!Eii1%**,FFD	FFD	##5#1HHJ	d)	$
''i8##:#6HHJ	HHJ	d)	$d)	$
''i8 %%cll&7&7c&7&BC}}"">222==&&~666
''T2$$E$2
''i8$$J$7
''i8 \\#hhj<<	*
c8,hhj<<	*
c8,r   c                    d}t        j                  dd|d      j                  }t        j                  |      }t        j
                  t        j                  d|      t        j                  d|      gt        	      }t        j                  ||       t        j                  |t        	      }t        j                  ||       t        j                  |d
	      }t        j
                  ddgd
	      }t        j                  ||       y )Nr   2017r   r#   )r%   r   r   2017-01-01T00:00:00r   2017-01-02T00:00:00r)   rQ   z2017-01-01T06:00:00z2017-01-02T06:00:00)
r+   r,   rC   r   r-   r   rT   ry   rD   rE   )r   r   r  ri   rG   s        r   test_array_interface_tzz)TestDatetimeArray.test_array_interface_tzE  s    }}VQ2DAGGD!882r:2r: 
 	##FH5D/
##FH5D188"$9:(
 	##FH5r   c                   t        j                  ddd      j                  }t        j                  ddgd      }t        j
                  |      }t        j                  ||       t        j
                  |t              }t        j                  t        j                  d      t        j                  d      gt              }t        j                  ||       y )	NrA  r   r#   )r%   r   rB  rC  r   r)   )
r+   r,   rC   r   r   r-   rD   rE   ry   rT   )r   r  rG   ri   s       r   test_array_interfacez&TestDatetimeArray.test_array_interface]  s    }}VQT:@@88"$9:BR
 D!
##FH5D/88\\/0",,?T2UV
 	##FH5r   r  TFc                   t        j                  dd      dz  dz  dz  }t        j                  |d      j                  j                  d	      }|rt        j                  |      }|j                  |d
         }|j                  |d
   j                  d            }||k(  sJ |j                  |d
d       }|j                  |d
d j                  d            }t        j                  ||       y )N
   r   r)         ʚ;r"   r&   
Asia/Tokyor   r(   r,  )r   r<   r+   DatetimeIndexrC   r0   Indexsearchsortedr/   rD   r  )r   r  r  r3   rG   ri   s         r   test_searchsorted_different_tzz0TestDatetimeArray.test_searchsorted_different_tzm  s    yy4(2-4u<t#.44@@N((3-C##CF+!!#a&"3"3E":;!!!##C!H-!!#a("5"5e"<=
)r   c                   t        j                  dd      dz  dz  dz  }t        j                  |d      j                  }|rt        j
                  |      }|j                  d	      }d
}t        j                  t        |      5  |j                  |d          d d d        t        j                  t        |      5  |j                  |       d d d        t        j                  t        |      5  |j                  |d          d d d        t        j                  t        |      5  |j                  |       d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   WxY w# 1 sw Y   y xY w)NrH  r   r)   rI  rJ  rK  r"   rL  rM  z:Cannot compare tz-naive and tz-aware datetime-like objectsrR   r   )r   r<   r+   rN  rC   rO  r0   rW   rX   r   rP  )r   r  r  r3   mismatchr[   s         r   $test_searchsorted_tzawareness_compatz6TestDatetimeArray.test_searchsorted_tzawareness_compat|  s/   yy4(2-4u<t#.44((3-C??<0J]]9C0 	*Xa[)	*]]9C0 	'X&	' ]]9C0 	*!!#a&)	*]]9C0 	'!!#&	' 	'	* 	*	' 	'	* 	*	' 	's0   E?E4E,E+EEE(+E4r;   g      ?r   r#   r   )daysinvalidrH  r   r)   rI  rJ  rK  ztimedelta64[ns]r"   c                \   t        j                  dd      dz  dz  dz  }t        j                  |d      j                  }|rt        j
                  |      }d	j                  d
dg      }t        j                  t        |      5  |j                  |       d d d        y # 1 sw Y   y xY w)NrH  r   r)   rI  rJ  rK  r"   rL  |z0searchsorted requires compatible dtype or scalarz<value should be a 'Timestamp', 'NaT', or array of those. GotrR   )r   r<   r+   rN  rC   rO  joinrW   rX   r   rP  )r   r   r  r  r3   r[   s         r   test_searchsorted_invalid_typesz1TestDatetimeArray.test_searchsorted_invalid_types  s      yy4(2-4u<t#.44((3-ChhBN
 ]]9C0 	$U#	$ 	$ 	$s   B""B+c                >   t        j                  dd      }|j                  }t        j                  t        j                  |j                  d      |j                        }|d   }||j                         |j                         fD ]+  }|j                  d|      }t        j                  ||       - |j                  d      }|j                  d      }|d   }||j                         fD ]+  }|j                  d|      }t        j                  ||       - y )	Nr    r   r   r;   r)   
fill_valuer(   )r+   r,   rC   r
   rV   r   rollr   r   r}   to_datetime64shiftrD   r   r0   )r   r2   r4   rG   fvr^  ri   s          r   test_shift_fill_valuez'TestDatetimeArray.test_shift_fill_value  s    mmL!4ii //GGCLL!$CII
 Wr//123C3C3EF 	=JYYqZY8F**68<	= ooe$''.Wr//12 	=JYYqZY8F**68<	=r   c                B   t        j                  dd      }|j                  }|d   j                  d      }||j	                         fD ]9  }t        j                  t        d      5  |j                  d|	       d d d        ; |j                  d      }|d   j                  d       }||j	                         |j                         fD ]9  }t        j                  t        d      5  |j                  d|	       d d d        ; y # 1 sw Y   xY w# 1 sw Y   RxY w)
Nr    r   r   r\  r(   zCannot comparerR   r;   r]  )
r+   r,   rC   r0   r}   rW   rX   r   ra  r`  )r   r2   r4   rb  rV  s        r   %test_shift_value_tzawareness_mismatchz7TestDatetimeArray.test_shift_value_tzawareness_mismatch  s
   mmL!4iiW  'B,,./ 	1Gy0@A 1		!	01 1	1 ooe$W  &B,,.0@0@0BC 	1Gy0@A 1		!	01 1	11 11 1s   (D	*D	D	D	c                   t        j                  ddd      }|j                  }t        j                  dd      }|j	                  d|	      }|j	                  d|j                  d      	      }t        j                  ||       y )
Nr    r   r(   r   z2020-10-18 18:44r-  r   r;   r]  )r+   r,   rC   rT   ra  r/   rD   r  )r   r2   r4   r^  ri   rG   s         r   test_shift_requires_tzmatchz-TestDatetimeArray.test_shift_requires_tzmatch  sm     mmL!>ii\\"4F
1499Q:+@+@+G9H
)r   c                x   t        j                  ddd      }|j                  j                  dd      }|j	                  d       }|j                         j	                  d       j                  |j                        }t        j                  ||       |j	                  d      }t        j                  ||       y )Nz
1994-05-12   r-  r   r   r   )	r+   r,   rC   r2  r0   ravelshaperD   r   )r   r2   r4   ri   rG   	roundtrips         r   test_tz_localize_t2dz&TestDatetimeArray.test_tz_localize_t2d  s    mmL"Fii1%&99;**4088C
&&vx8((6	
&&y#6r   r   )r  zdateutil/US/Easternzpytz/US/Easternc                   |j                  d      r5t        j                  d      }|j                  |j	                  d            }t        j                  g dt
        j                        }|dz  }t        j                  |t        j                  d            j                  d      j                  |      }|d   }t        |      d   }t        |      t        |      k(  sJ |j                         |j                         k(  sJ |j!                  t"              d   }t        |      t        |      k(  sJ |j                         |j                         k(  sJ y )	Nzpytz/pytz)i@NiPNi`"Nip0Nr)   rK  rQ   r(   r   )
startswithrW   importorskiptimezoneremoveprefixr   r   r=   r
   rV   r   r0   r/   r   r  	utcoffsetr.   ry   )r   r   ro  utc_valsr4   r   r   right2s           r   test_iter_zoneinfo_foldz)TestDatetimeArray.test_iter_zoneinfo_fold  s"   
 ==!&&v.Drw78B88<BHH
 	M! (((9KL[Z^ 	 1vS	!4yCJ&&& ~~5??#4444 F#A&4yCK'''~~6#3#3#5555r   r&   )
2M2SM2sm2Qz2Q-SEP1Yz2Y-MAR2mz2q-sep2yc                    d| }t        j                  t        |      5  t        j                  dd|       d d d        y # 1 sw Y   y xY wNzInvalid frequency: rR   1/1/2000r   rJ   rW   rX   rY   r+   r,   r   r&   r[   s      r   &test_date_range_frequency_M_Q_Y_raisesz8TestDatetimeArray.test_date_range_frequency_M_Q_Y_raises  sC    
 $D6*]]:S1 	<MM*ad;	< 	< 	<   AA	freq_depr)2MIN2nS2Usc                F   d|dd   d|j                         dd   d}t        j                  dd|j                               }t        j                  t
        |      5  t        j                  dd|      }d d d        t        j                  |       y # 1 sw Y    xY w)	N'r;   zE' is deprecated and will be removed in a future version, please use 'z
' instead.r  r   rJ   rR   )lowerr+   r,   rD   assert_produces_warningr   assert_index_equal)r   r  depr_msgrG   ri   s        r   .test_date_range_uppercase_frequency_deprecatedz@TestDatetimeArray.test_date_range_uppercase_frequency_deprecated  s     	!" ++4??+<QR+@*AM 	
 ==QY__=NO''hG 	J]]:qyIF	J
fh/	J 	Js   BB )	z2ye-mar2ys2qez2qs-feb2bqs2sms2bms2cbme2mec                    d| }t        j                  t        |      5  t        j                  dd|       d d d        y # 1 sw Y   y xY wr  r  r  s      r   *test_date_range_lowercase_frequency_raisesz<TestDatetimeArray.test_date_range_lowercase_frequency_raises$  sC     $D6*]]:S1 	<MM*ad;	< 	< 	<r  c                    d}t        j                  ddd      }t        j                  t        |      5  t        j                  ddd      }d d d        t        j
                  |       y # 1 sw Y    xY w)Nz9'w' is deprecated and will be removed in a future versionr  r   2WrJ   rR   2w)r+   r,   rD   r  r   r  )r   r  rG   ri   s       r   .test_date_range_lowercase_frequency_deprecatedz@TestDatetimeArray.test_date_range_lowercase_frequency_deprecated8  sd    N==QTB''hG 	E]]:qtDF	E
fh/	E 	Es   A..A7)1Az2A-MARz2a-marc                    d| }t        j                  t        |      5  t        j                  dd|       d d d        y # 1 sw Y   y xY wr  r  r  s      r   "test_date_range_frequency_A_raisesz4TestDatetimeArray.test_date_range_frequency_A_raisesA  A    #D6*]]:S1 	<MM*ad;	< 	< 	<r  )2H2CBH2Sc                    d| }t        j                  t        |      5  t        j                  dd|       d d d        y # 1 sw Y   y xY wr  r  r  s      r   *test_date_range_uppercase_frequency_raisesz<TestDatetimeArray.test_date_range_uppercase_frequency_raisesH  r  r  N)3r   r   r   r   r   r   r   rW   r   r   r   intr   int32r=   r   r   r  r
  r  r  r+   rT   r`  r}   r  r  r"  r*  r?  rD  rF  rQ  rT  r   r   r<   r>   rg   rZ  rc  re  rg  rm  rw  r  r  r  r  r  r  r8   r   r   r   r   F  s   9 	=+& [[W'79N&OP[[Q. Q., [[WsBHHbhh(&ST6 U6%'.5
 [[BLL&BLL&446BLL&446	
,1 [[Xz':;E <E('-R606  [[WtUm4* 5* [[WtUm4' 5'& [[BHHQKBNN5$'BLLa BIIb%*T1E9BIIbM01B6=EBLL&005
	
 [[WtUm4$ 5$=(1 
*	7 [[F66B [[R<	< [[[*@A
0 B
0 [[
	
<<0 [[V%?@< A< [[V%9:< ;<r   r   c                 R   t        j                  g dd      } d}t        j                  t        |      5  | j                  d       d d d        | | d   z
  }t        j                  t        |      5  |j                  d       d d d        y # 1 sw Y   HxY w# 1 sw Y   y xY w)	N)r   r   r;   rQ   r)   z+call pd.factorize\(obj, sort=True\) insteadrR   T)sortr   )r
   rV   rW   rX   NotImplementedError	factorize)r4   r[   tdas      r    test_factorize_sort_without_freqr  P  s    

&
&y
AC
8C	*#	6 !4 ! A,C	*#	6 !4 ! !! !
! !s   B5BBB&)__doc__
__future__r   datetimer   r   numpyr   rW   pandas._libs.tslibsr   pandas.compat.numpyr   r   pandas.errorsr   pandas.core.dtypes.dtypesr	   pandasr+   pandas._testing_testingrD   pandas.core.arraysr
   r   r   r   r   r  r8   r   r   <module>r     s`    #     * ) 5  A; A;H!: !:HG< G<T
!r   