
    4ir                        S r SSKJr  SSKJr  SSKrSSKrSSKrSSK	J
r
  SSKJr  SSKJr  SSKrSSKJr  SSKJrJr   " S	 S
5      r " S S5      r " S S5      rS rg)z
Tests for DatetimeArray
    )annotations)	timedeltaN)
tz_compare)Pandas4Warning)DatetimeTZDtype)DatetimeArrayTimedeltaArrayc                     \ rS rSr\R
                  " / SQS9S 5       r\R
                  S 5       r\R
                  S 5       r\R
                  S 5       r	S r
\R                  R                  S	\R                  \R                  -   5      S
 5       rS rS rS rS r\R                  R+                  S5      S 5       rS rS rS r\R                  R                  S/ SQ5      S 5       rS rS rS rS r\R                  R                  S\" SS9\ RB                  " SS9\"RF                  " SS5      \"RF                  " SS 5      \ RH                  RK                  S!5      \ RH                  RM                  S5      /5      S" 5       r'S# r(S$ r)S%r*g&)'TestNonNano   )smsus)paramsc                    UR                   $ )z)Fixture returning parametrized time units)param)selfrequests     d/var/www/html/dynamic-report/venv/lib/python3.13/site-packages/pandas/tests/arrays/test_datetimes.pyunitTestNonNano.unit   s     }}    c                R    UnUc  [         R                  " SU S35      $ [        XS9$ )Nzdatetime64[])r   tz)npdtyper   )r   r   tz_naive_fixturer   s       r   r   TestNonNano.dtype    s/    :88k$q122"44r   c                b   [        USS 5      n[        R                  " SSSUSS9nUc*  [        R                  " U5      R                  SU S35      nOG[        R                  " UR                  S	5      R                  S 5      5      R                  SU S35      n[        R                  " XRS
9nXd4$ )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_dtiTestNonNano.dta_dti(   s    UD$'mmL"32DQ:**S/((3tfA7C**S^^E2>>tDELLdV1C ''9xr   c                    Uu  p#U$ N )r   r6   r5   r3   s       r   r5   TestNonNano.dta7   s    
r   c                z   [         R                  " S[         R                  S9R                  SU S35      n[        R
                  " X2S9nUR                  U:X  d   eUS   R                  U:X  d   e[        UR                  US   R                  5      (       d   eUS   US S :H  R                  5       (       d   eg )N   r*   r(   r   r      )r   arangeint64viewr   r2   r   r   r   r   all)r   r   r   r4   r5   s        r   test_non_nanoTestNonNano.test_non_nano<   s    ii*//#dV1>''9yyE!!!1v{{d"""#&&#a&)),,,,A#bq'!&&((((r   fieldc                    Uu  pVXe:H  R                  5       (       d   e[        XR5      n[        UR                  U5      n[        R                  " Xx5        g r9   )rB   r+   _datatmassert_numpy_array_equal)	r   r   rE   r   r6   r5   r3   resexpecteds	            r   test_fieldsTestNonNano.test_fieldsE   sJ     
!!!!c!399e,
##C2r   c                   [         R                  " SSSS9n[        R                  " U5      R	                  SU S35      n[
        R                  " X3R                  S9nUR                  (       a   e[        R                  " UR                  5       5      R	                  SU S35      n[
        R                  " XUR                  S9nUR                  5       n[        R                  " Xv5        g )Nz2016-01-01 06:00:00r"   r#   r&   r'   r(   r   r*   )r,   r-   r   r.   r/   r   r2   r   is_normalized	normalizerH   assert_extension_array_equal)r   r   r3   r4   r5   exprK   rJ   s           r   test_normalizeTestNonNano.test_normalizeQ   s    mm12CHjjo$$s4&]3''99=$$$$ jj)003tfA? ,,S		Bmmo
''6r   c                    [         R                  R                  n[        R                  " U/SS9nSn[
        R                  " [        US9   UR                  5         S S S 5        g ! , (       d  f       g = f)NM8[ns]r*   z3Cannot normalize Timestamp without integer overflowmatch)	r,   	Timestampminr   _from_sequencepytestraises
ValueErrorrQ   )r   tsr5   msgs       r   test_normalize_overflow_raises*TestNonNano.test_normalize_overflow_raises`   sM    \\**B4x@C]]:S1MMO 211s   A&&
A4c                z   [         R                  " S[         R                  S9R                  SU S35      n[	        US5      n[
        R                  " X#S9nUR                  U:X  d   e[	        SS5      n[        R                  " [        SS9   [
        R                  " X%S9  S S S 5        g ! , (       d  f       g = f)	Nr=   r*   r(   r   r)   r$   z^$rX   )r   r?   r@   rA   r   r   r2   r   r]   r^   AssertionError)r   r   r4   r   r5   wrongs         r   test_simple_new_requires_match*TestNonNano.test_simple_new_requires_matchi   s    ii*//#dV1>e,''9yyE!!!e,]]>6%%c7 766s   B,,
B:c                `   [         R                  " SSSSS9n[        R                  " U5      R	                  SU S35      n[
        R                  " X3R                  S9nUR                  5       nUR                  UR                  :X  d   eXRR                  5       R                  U5      :X  d   eg )	Nr!   r"   r#   r$   )r&   r'   r   r(   r   r*   )r,   r-   r   r.   r/   r   r2   r   std_cresofloor)r   r   r3   r4   r5   rJ   s         r   test_std_non_nanoTestNonNano.test_std_non_nanot   s    mmL"3TJjjo$$s4&]3''99= ggizzSZZ'''ggiood++++r   z.ignore:Converting to PeriodArray.*:UserWarningc                    Uu  p#UR                  S5      nUR                  R                  S5      n[        R                  " XE5        g )Nr#   )	to_periodrG   rH   rR   r   r6   r5   r3   resultrK   s         r   test_to_periodTestNonNano.test_to_period   s9    s#99&&s+
''9r   c                    [        [        U5      5      nUS   n[        U5      [        R                  L d   eUR
                  UR
                  :X  d   eUR                  UR                  :X  d   eX#:X  d   eg )Nr   )nextitertyper,   rZ   _valuerk   )r   r5   rJ   rK   s       r   	test_iterTestNonNano.test_iter   sd    49oq6CyBLL(((zzX__,,,zzX__,,,r   c           	        ^ TR                  [        5      n[        U4S jU 5       5      (       d   e[        S [        UTSS9 5       5      (       d   eg )Nc              3  T   >#    U  H  oR                   TR                   :H  v   M     g 7fr9   )rk   ).0xr5   s     r   	<genexpr>1TestNonNano.test_astype_object.<locals>.<genexpr>   s     :6a88szz)6s   %(c              3  .   #    U  H  u  pX:H  v   M     g 7fr9   r:   )r~   r   ys      r   r   r      s     D&Cda16&Cs   T)strict)r/   objectrB   zip)r   r5   rr   s    ` r   test_astype_objectTestNonNano.test_astype_object   sH    F#:6:::::Dc&#d&CDDDDDr   c                x    Uu  p#UR                  5       nUR                  5       n[        R                  " XE5        g r9   )to_pydatetimerH   rI   rq   s         r   test_to_pydatetimeTestNonNano.test_to_pydatetime   s3    ""$$$&
##F5r   meth)timetimetzdatec                d    Uu  p4[        X25      n[        XB5      n[        R                  " XV5        g r9   )r+   rH   rI   )r   r6   r   r5   r3   rr   rK   s          r   test_time_dateTestNonNano.test_time_date   s+    #3%
##F5r   c                    Uu  pEUR                  5       nUR                  R                  5       n[        R                  " Xg5        g r9   )_format_native_typesrG   rH   rI   )r   r   r   r6   r5   r3   rJ   rS   s           r   test_format_native_types$TestNonNano.test_format_native_types   s9     &&(ii,,.
##C-r   c                z    Uu  p4[        U5      [        UR                  5      R                  SSU 35      :X  d   eg )Nz[ns[)reprrG   replace)r   r6   r   r5   r3   s        r   	test_reprTestNonNano.test_repr   s6    CyDO33EQtf:FFFFr   c                \   Un[         R                  " [         R                  5      n[         R                  " UR                  UR                  S-   UR
                  /[         R                  S9n[         R                  " U5      R                  S5      nUR                  S5      n[        R                  " XUR                  S9n[        R                  " XfR                  S9nU[        R                  L a  [         R                  " / SQ5      n	OU[        R                  L a  [         R                  " / SQ5      n	OUU[        R                  [        R                  4;   a  [         R                  " / SQ5      n	O[         R                  " / SQ5      n	U" Xx5      n
[        R                   " X5        U" US   U5      n
[        R                   " X5        U[        R                  [        R                  4;  a<  U" UR"                  UR"                  5      n[        R                   " USS  U	SS  ) 5        g g )	Nr>   r*   rW   M8[s])FFF)TTT)FFT)FTF)r   iinfor@   arrayr[   maxrA   r   r2   r   operatoreqneltlerH   rI   _ndarray)r   comparison_opopr   valsr4   arr2leftrightrK   rr   np_ress               r   #test_compare_mismatched_resolutions/TestNonNano.test_compare_mismatched_resolutions   s   "xxEIIM599=RXXN hhtn!!(+xx ((II>))$jjAHKK'xx 56Hhkk)xx 23Hx{{HKK88xx 45Hxx 45HD
##F5DGU#
##F5hkk8;;// u~~6F''qr
Xab\MB	 0r   c                    [         R                  " SS9n[         R                  " SSS9U-
  nUR                  R	                  S5      nX1R	                  S5      -   nUR
                  S:X  d   eg )Nr>   )microsecondsr!      r&   r   )r,   	Timedeltar-   rG   as_unitr   )r   tdr3   r5   rJ   s        r   (test_add_mismatched_reso_doesnt_downcast4TestNonNano.test_add_mismatched_reso_doesnt_downcast   s^    \\q)mmL!4r9ii%JJt$$ xx4r   scalar   )hourshi m r   x   c                   Uu  p4[         R                  " U5      n[        R                  " UR                  UR                  5      nXE-   R
                  R                  U5      nX2-   n[        R                  " X5        X#-   n[        R                  " X5        XE-
  R
                  R                  U5      nX2-
  n[        R                  " X5        g r9   )r,   r   rH   get_finest_unitr   rG   r   rR   )	r   r6   r   r5   r3   r   exp_unitrK   rr   s	            r   -test_add_timedeltalike_scalar_mismatched_reso9TestNonNano.test_add_timedeltalike_scalar_mismatched_reso   s     \\&!%%chh8H##++H5
''9
''9H##++H5
''9r   c                $   [         R                  " SSS9nUR                  R                  S5      nUS   R                  S5      nX#-
  nXS   -
  R                  R                  S5      nUR                  S:X  d   e[
        R                  " XE5        g )Nr!   r   r   r   r   r   zm8[us])r,   r-   rG   r   r   rH   rR   )r   r3   r5   r`   rr   rK   s         r   %test_sub_datetimelike_scalar_mismatch1TestNonNano.test_sub_datetimelike_scalar_mismatch   s{    mmL!4ii%V^^C a&L''//5||x'''
''9r   c                Z   [         R                  " SSS9nUR                  R                  S5      nUR                  S5      nX#-
  n[        R
                  " / SQSS9n[        R                  " UUR                  S9n[        R                  " XF5        X2-
  n[        R                  " Xv5        g )	Nr!   r   r   r   r   )r   r   r   zm8[ms]r*   )r,   r-   rG   r   r   r   r	   r2   r   rH   rR   )r   r3   r   r   rr   
exp_valuesrK   result2s           r   !test_sub_datetime64_reso_mismatch-TestNonNano.test_sub_datetime64_reso_mismatch  s    mmL!4yy  %T"XXix8
!--""
 	''9,
'':r   r:   N)+__name__
__module____qualname____firstlineno__r]   fixturer   r   r6   r5   rC   markparametrizer   
_field_ops	_bool_opsrL   rT   rb   rg   rm   filterwarningsrs   rz   r   r   r   r   r   r   r   r   r,   r   r   timedelta64offsetsMinuteHourr   r   r   __static_attributes__r:   r   r   r   r      s   ^^,- . ^^5 5 ^^  ^^ ) [[))M,C,CC337	8	, [[ PQ: R:E
6 [[V%?@6 A6.G!CF	  [[ALLq!NN1c"NN?D1JJc"JJOOA	

:
:"	:;r   r   c                      \ rS rSrS rSrg)TestDatetimeArrayComparisonsi  c                n   Un[         R                  " SSSS S9nUR                  nUR                  UR                  :X  d   eUR                  UR                  :X  d   eUn[
        R                  " [        U5      [        S9nUR                  S;   a  U) nU" XD5      n[        R                  " Xv5        U[
        R                  " U5      [        U5      [        U5      UR                  [         5      4 H?  nU" XH5      n[        R                  " Xv5        U" X5      n[        R                  " Xv5        MA     g )Nz	2016-01-1MS	   )r'   r&   r   r*   )r   gtr   )r,   r-   rG   r'   r   r   oneslenboolr   rH   rI   r   listtupler/   r   )	r   r   r   r3   r4   r   rK   rr   others	            r   test_cmp_dt64_arraylike_tznaive<TestDatetimeArrayComparisons.test_cmp_dt64_arraylike_tznaive  s    mmKdA$Giixx388###vv773s840!!%77 yHC
##F5HHUOK%LLL 
E ^F''9^F''9
r   r:   N)r   r   r   r   r   r   r:   r   r   r   r     s    :r   r   c                     \ rS rSrS rS rS rS r\R                  R                  SSS/5      \R                  R                  S	/ S
Q5      S 5       5       r\R                  R                  S\\R                  \R                  SS/5      S 5       rS rS rS rS rS r\R                  R                  S\R.                  " S5      \R.                  " S5      R1                  5       \R.                  " S5      R3                  5       /5      S 5       rS rS r\R                  R                  SSS/5      S 5       rS rS rS r \R                  R                  S S!S"/5      S# 5       r!\R                  R                  S S!S"/5      S$ 5       r"\R                  R                  S	S%\R                  " S%5      S&\RF                  " S'5      \RH                  " S(S)9S*\RJ                  " S+S,S-9S.-  S/-  S0-  \RJ                  " S+5      RM                  S15      S.-  S/-  S0-  \R.                  " S5      RO                  S25      /	5      \R                  R                  S S!S"/5      S3 5       5       r(S4 r)S5 r*S6 r+S7 r,\R                  R                  S8/ S9Q5      S: 5       r-\R                  R                  S;/ S<Q5      S= 5       r.\R                  R                  S>/ S?Q5      S@ 5       r/\R                  R                  S;/ SAQ5      SB 5       r0SC r1\R                  R                  S;/ SDQ5      SE 5       r2\R                  R                  S;/ SFQ5      SG 5       r3SHr4gI)JTestDatetimeArrayi<  c                   [         R                  " S5      nUR                  S5      n[        R                  " U/SS9nUR                  S5      UR                  S5      R                  :H  R                  5       (       d   eUR                  S5      nUS   U:X  d   e[        R                  " U/SS9nUR                  S5      UR                  :H  R                  5       (       d   e[        R                  " XE5        g )	Nz1677-09-21 00:12:43.145225r   rW   r*   i8r$   zM8[ms]r   )r,   rZ   r   r   r\   rA   valuerB   r/   ry   rH   assert_datetime_array_equal)r   r`   targetr5   rr   rK   s         r    test_astype_ns_to_ms_near_bounds2TestDatetimeArray.test_astype_ns_to_ms_near_bounds=  s    \\67D!**B4x@"**T"2"8"88==????H%ayF""" //HEd#v}}499;;;;
&&v8r   c                <   [         R                  " SSS9nUR                  S5      nUR                  S:X  d   eUR                  nUR                  S5      nUR                  S:X  d   e[        U[         R                  R                  R                  5      (       d   eg )Nr!   r   r   r   )	r,   r-   r/   r   rG   
isinstancecorearraysr   )r   r3   rJ   r5   s       r   test_astype_non_nano_tznaive.TestDatetimeArray.test_astype_non_nano_tznaiveM  s|    mmL!4jj!yyG###iijj!yyG####rww~~;;<<<<r   c                   [         R                  " SSSS9nUR                  S5      nUR                  S:X  d   eUR                  nUR                  S5      nUR                  S:X  d   eUR                  S5      nUR                  S:X  d   e[
        R                  " XB5      (       a   eUR                  SSS9nUR                  S:X  d   e[
        R                  " XR5      (       d   eg )	Nr!   r   r)   r&   r   zM8[s, US/Pacific]z
M8[s, UTC]Fcopy)r,   r-   r/   r   rG   rH   shares_memory)r   r3   rJ   r5   res2res3s         r   test_astype_non_nano_tzaware.TestDatetimeArray.test_astype_non_nano_tzawareX  s    mmL!>jj,-yy////iijj,-yy//// zz,'zz\)))##D....zz,Uz3zz\)))****r   c                x    [         R                  " S/[        SS9S9nUR                  [        SS9SS9nX!L d   eg )N2000
US/Centralr   r*   Fr   )r   r\   r   r/   )r   r4   rr   s      r   test_astype_to_same%TestDatetimeArray.test_astype_to_samek  sA    **HO|<
 O|<5I}}r   r   datetime64[ns]datetime64[ns, UTC]r   )r  r	  zdatetime64[ns, CET]c                   [         R                  " SS/US9nUR                  5       nSnUS:H  US:H  -  (       a  SnU(       a?  US:X  a  SnOSn[        R                  " [
        US	9   UR                  U5        S S S 5        g UR                  U5      n[         R                  US S & [        R                  " X45        g ! , (       d  f       g = f)
Nr>   r   r*   Fr  Tz<Use obj.tz_localize instead or series.dt.tz_localize insteadz1from timezone-aware dtype to timezone-naive dtyperX   )
r,   Seriesr   r]   r^   	TypeErrorr/   NaTrH   assert_series_equal)r   r   r   serorigerrra   ts           r   test_astype_copies$TestDatetimeArray.test_astype_copiesr  s     iiAe,xxz%%%3C*CDC((TIy4

5! 54 

5!A66AaD""3- 54s   'B==
Cuint32uint64c                   [         R                  " [        R                  " S5      [        R                  " S5      /SS9n[        R
                  " U5      [        R                  :w  a4  [        R                  " [        SS9   UR                  U5        S S S 5        g UR                  U5      nUR                  R                  S5      n[        R                  " X45        g ! , (       d  f       g = f)Nr  2001rW   r*   zDo obj.astype\('int64'\)rX   r   )r   r\   r,   rZ   r   r   r@   r]   r^   r  r/   r   rA   rH   rI   )r   r   r4   rr   rK   s        r   test_astype_int!TestDatetimeArray.test_astype_int  s    **\\&!2<<#78
 88E?bhh&y0KL

5! ME"<<$$T*
##F5 MLs   C
C-c                    [         R                  " SSS9nUR                  nUR                  S5      nUR                  S:X  d   eX2:H  R                  5       (       d   eg )Nr!      r   zSparse[datetime64[ns]])r,   r-   rG   r/   r   rB   )r   r3   r5   rr   s       r   test_astype_to_sparse_dt64,TestDatetimeArray.test_astype_to_sparse_dt64  sT    mmL!4ii45||7777""$$$$r   c                    [         R                  " S/[        SS9S9n[        R                  " [
        SS9   SUl        S S S 5        g ! , (       d  f       g = f)Nr  r  r  r*   r1   rX   r)   )r   r\   r   r]   r^   AttributeErrorr   )r   r4   s     r   test_tz_setter_raises'TestDatetimeArray.test_tz_setter_raises  sB    **HO|<
 ]]>?CF @??s   A
Ac                   Un[         R                  " / SQSS9nUc  UR                  O[        US9n[        R
                  " X4S9nUR                  5       n[        R                  " S5      R                  U5      n[        UR                  S 5      5      nXvS'   XS'   [        R                  " XV5        XvS'   X/US S& [        R                  " XV5        g )	Nr>   r   r   rW   r*   r  z2020-09-08 16:50r   r>   r   )r   r   r   r   r   r\   r   r,   rZ   r1   strrH   assert_equal)	r   r   r   datar   r4   rK   r`   setters	            r   test_setitem_str_impute_tz,TestDatetimeArray.test_setitem_str_impute_tz  s     xx	2 j

o.D**4=88:\\,-99"=R^^D)* A
& "BQ
&r   c                j   [         R                  " / SQSS9n[        R                  " US[	        SS9S9n[
        R                  " [        SS	9   [        R                  " S
5      US'   S S S 5        [        R                  " S
SS9nX2S'   US   UR                  S5      :X  d   eg ! , (       d  f       NB= f)Nr$  rW   r*   Fr  r  )r   r   z$Cannot compare tz-naive and tz-awarerX   r  r   
US/Eastern)r   r   r   r\   r   r]   r^   r  r,   rZ   r0   )r   r'  r4   r`   s       r    test_setitem_different_tz_raises2TestDatetimeArray.test_setitem_different_tz_raises  s     xx	2**uO|$D
 ]]9,RS\\&)CF T \\&\2A1v|4444 TSs   B$$
B2c                    [         R                  " SSSSS9R                  n[         R                  " SSS9US'   UR                  b   eg )Nr  r   r#   r  r&   r'   r   r  r   )r,   r-   rG   rZ   r'   )r   as     r   test_setitem_clears_freq*TestDatetimeArray.test_setitem_clears_freq  s>    MM&!#,GMM||F|4!vv~~r   objz
2021-01-01c                f    [         R                  " SSSS9nUR                  nXS'   US   U:X  d   eg )Nr  r   r#   rO   r   )r,   r-   rG   )r   r4  r3   r4   s       r   test_setitem_objects&TestDatetimeArray.test_setitem_objects  s6     mmFAC8iiA1v}}r   c                    [         R                  " SSSSS9nUR                  nUR                  SS/5      n[        R
                  " UR                  UR                  S9n[        R                  " X45        g )Nr  r   r#   r  r0  r>   r*   )
r,   r-   rG   repeatr   r\   asi8r   rH   r&  )r   r3   r4   repeatedrK   s        r   test_repeat_preserves_tz*TestDatetimeArray.test_repeat_preserves_tz  sY    mmFACLIii::q!f% !//		J
+r   c                   [         R                  " SSSSS9nUR                  R                  SS/5      nUR	                  5       nUR
                  R                  U5      (       d   e[         R                  US'   UR	                  S	S
9n[         R                  " / SQUS   US   [         R                  /SS9n[        R                  " X45        g )Nr  r   r#   r  r0  r  r   F)dropna)r  r   r>   r   r>   count)indexname)r,   r-   rG   r9  value_countsrB  equalsr  r  rH   r  )r   r3   r4   rr   rK   s        r   test_value_counts_preserves_tz0TestDatetimeArray.test_value_counts_preserves_tz  s    mmFACLIii1v&!!# ||""3''''&&B!!!/99Ys1vs1vrvv.FWU
v0r   methodpadbackfillc                   [         R                  " SSSSSS9n[        R                  " X"R                  SS9n[         R
                  US	'   US
:X  a  US   OUS   n[        R                  " US   US   XBS   US   /[        SS9S9nUR                  US9n[        R                  " Xe5        US	   [         R
                  L d   eUS	   [         R                  " SSS9:X  d   eg )Nz
2000-01-01r=   r#   r  r$   r%   T)r   r   r   rI  r>   r   r   r  r  r*   rH  z
2000-01-03)r,   r-   r   r\   r   r  r   _pad_or_backfillrH   rR   rZ   )r   rH  r3   r4   fill_valrK   rr   s          r   test_fillna_preserves_tz*TestDatetimeArray.test_fillna_preserves_tz  s    mm!#,T
 **3iidKA#u_3q6#a& //VSVX1vs1v6!\2

 %%V%4
''9 1v1vl|DDDDr   c                   [         R                  " SSSS9nUR                  R                  SS5      R	                  5       n[         R
                  US'   [         R
                  US'   UR                  S	S
9nUR	                  5       nUS   US'   [        R                  " X45        UR                  SS
9nUR	                  5       nUR	                  5       nUS   US'   US   US'   [        R                  " XV5        UR                  UR                  R	                  SS95      nUR                  R                  S   (       d   eUR                  R                  S   (       a   e[        R                  " X'5        UR                  S	S
9n[        R                  " X5        UR                  SS
9n	[        R                  " X5        [         R                  " U5      n
U
R                  5       n[         R                  " U5      n[        R                  " X5        U
R                  5       n[         R                  " U5      n[        R                  " X5        g )Nr!      
US/Pacificr   r   r   )r   r>   )r>   r   rI  rL  )r   r   rJ  )r   r   )r>   r>   F)orderF_CONTIGUOUSC_CONTIGUOUS)r,   r-   rG   reshaper   r  rM  rH   rR   _from_backing_datar   flags	DataFrameffillassert_frame_equalbfill)r   r3   r5   res1	expected1r   	expected2dta2r   res4dfrJ   rK   s                r   test_fillna_2d TestDatetimeArray.test_fillna_2d  s   mmL!Eii1%**,FFD	FFD	##5#1HHJ	d)	$
''8##:#6HHJ	HHJ	d)	$d)	$
''8 %%cll&7&7c&7&BC}}"">222==&&~666
''2$$E$2
''8$$J$7
''8 \\#hhj<<	*
c,hhj<<	*
c,r   c                   Sn[         R                  " SSUSS9R                  n[        R                  " U5      n[        R
                  " [         R                  " SUS9[         R                  " SUS9/[        S	9n[        R                  " X45        [        R                  " U[        S	9n[        R                  " X45        [        R                  " US
S	9n[        R
                  " SS/S
S	9n[        R                  " X45        g )Nr  2017r   r$   )r&   r   r   2017-01-01T00:00:00r  2017-01-02T00:00:00r*   rW   z2017-01-01T06:00:00z2017-01-02T06:00:00)
r,   r-   rG   r   r.   r   rZ   r   rH   rI   )r   r   r'  rr   rK   s        r   test_array_interface_tz)TestDatetimeArray.test_array_interface_tz;  s    }}VQ2DAGGD!882r:2r: 
 	##F5D/
##F5D188"$9:(
 	##F5r   c                   [         R                  " SSSS9R                  n[        R                  " SS/SS9n[        R
                  " U5      n[        R                  " X25        [        R
                  " U[        S9n[        R                  " [         R                  " S5      [         R                  " S5      /[        S9n[        R                  " X25        g )	Nrh  r   r$   )r&   r   ri  rj  r  r*   )
r,   r-   rG   r   r   r.   rH   rI   r   rZ   )r   r'  rK   rr   s       r   test_array_interface&TestDatetimeArray.test_array_interfaceS  s    }}VQT:@@88"$9:BR
 D!
##F5D/88\\/0",,?T2UV
 	##F5r   rB  TFc                   [         R                  " SSS9S-  S-  S-  n[        R                  " USS9R                  R                  S	5      nU(       a  [        R                  " U5      nUR                  US
   5      nUR                  US
   R                  S5      5      nXT:X  d   eUR                  US
S 5      nUR                  US
S R                  S5      5      n[        R                  " XT5        g )N
   r   r*         ʚ;r#   r'   
Asia/Tokyor   r)   rR  )r   r?   r,   DatetimeIndexrG   r1   Indexsearchsortedr0   rH   r&  )r   rB  r'  r4   rK   rr   s         r   test_searchsorted_different_tz0TestDatetimeArray.test_searchsorted_different_tzc  s    yy4(2-4u<t#.44@@N((3-C##CF+!!#a&"3"3E":;!!!##C!H-!!#a("5"5e"<=
)r   c                
   [         R                  " SSS9S-  S-  S-  n[        R                  " USS9R                  nU(       a  [        R
                  " U5      nUR                  S	5      nS
n[        R                  " [        US9   UR                  US   5        S S S 5        [        R                  " [        US9   UR                  U5        S S S 5        [        R                  " [        US9   UR                  US   5        S S S 5        [        R                  " [        US9   UR                  U5        S S S 5        g ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       Nd= f! , (       d  f       g = f)Nrq  r   r*   rr  rs  rt  r#   ru  rv  z:Cannot compare tz-naive and tz-aware datetime-like objectsrX   r   )r   r?   r,   rw  rG   rx  r1   r]   r^   r  ry  )r   rB  r'  r4   mismatchra   s         r   $test_searchsorted_tzawareness_compat6TestDatetimeArray.test_searchsorted_tzawareness_compatr  s   yy4(2-4u<t#.44((3-C??<0J]]9C0Xa[) 1]]9C0X& 1 ]]9C0!!#a&) 1]]9C0!!#& 10 1000 1000s0   E=E0E#&E4
E
E #
E14
Fr>   g      ?r  r   )daysinvalidrq  r   r*   rr  rs  rt  ztimedelta64[ns]r#   c                f   [         R                  " SSS9S-  S-  S-  n[        R                  " USS9R                  nU(       a  [        R
                  " U5      nS	R                  S
S/5      n[        R                  " [        US9   UR                  U5        S S S 5        g ! , (       d  f       g = f)Nrq  r   r*   rr  rs  rt  r#   ru  |z0searchsorted requires compatible dtype or scalarz<value should be a 'Timestamp', 'NaT', or array of those. GotrX   )r   r?   r,   rw  rG   rx  joinr]   r^   r  ry  )r   r   rB  r'  r4   ra   s         r   test_searchsorted_invalid_types1TestDatetimeArray.test_searchsorted_invalid_types  s      yy4(2-4u<t#.44((3-ChhBN
 ]]9C0U# 100s   B""
B0c                0   [         R                  " SSS9nUR                  n[        R                  " [
        R                  " UR                  S5      UR                  S9nUS   nXDR                  5       UR                  5       4 H)  nUR                  SUS9n[        R                  " Xc5        M+     UR                  S5      nUR                  S5      nUS   nXDR                  5       4 H)  nUR                  SUS9n[        R                  " Xc5        M+     g )	Nr!   r   r   r>   r*   
fill_valuer)   )r,   r-   rG   r   r\   r   rollr   r   r   to_datetime64shiftrH   r   r1   )r   r3   r5   rK   fvr  rr   s          r   test_shift_fill_value'TestDatetimeArray.test_shift_fill_value  s    mmL!4ii //GGCLL!$CII
 W//123C3C3EFJYYqZY8F**6< G ooe$''.W//12JYYqZY8F**6< 3r   c                F   [         R                  " SSS9nUR                  nUS   R                  S5      nX3R	                  5       4 H5  n[
        R                  " [        SS9   UR                  SUS	9  S S S 5        M7     UR                  S5      nUS   R                  S 5      nX3R	                  5       UR                  5       4 H5  n[
        R                  " [        SS9   UR                  SUS	9  S S S 5        M7     g ! , (       d  f       M  = f! , (       d  f       M[  = f)
Nr!   r   r   r  r)   zCannot comparerX   r>   r  )
r,   r-   rG   r1   r   r]   r^   r  r  r  )r   r3   r5   r  r  s        r   %test_shift_value_tzawareness_mismatch7TestDatetimeArray.test_shift_value_tzawareness_mismatch  s    mmL!4iiW  ',,./Gy0@A		!	0 BA 0 ooe$W  &,,.0@0@0BCGy0@A		!	0 BA D BA BAs   #C?!D?
D	
D 	c                    [         R                  " SSSS9nUR                  n[         R                  " SSS9nUR	                  SUS	9nUR	                  SUR                  S5      S	9n[        R                  " XE5        g )
Nr!   r   r)   r   z2020-10-18 18:44rS  r  r>   r  )r,   r-   rG   rZ   r  r0   rH   r&  )r   r3   r5   r  rr   rK   s         r   test_shift_requires_tzmatch-TestDatetimeArray.test_shift_requires_tzmatch  sk     mmL!>ii\\"4F
1499Q:+@+@+G9H
)r   c                t   [         R                  " SSSS9nUR                  R                  SS5      nUR	                  S 5      nUR                  5       R	                  S 5      R                  UR                  5      n[        R                  " X45        UR	                  S5      n[        R                  " XR5        g )Nz
1994-05-12   rS  r   r   r  )	r,   r-   rG   rX  r1   ravelshaperH   r   )r   r3   r5   rr   rK   	roundtrips         r   test_tz_localize_t2d&TestDatetimeArray.test_tz_localize_t2d  s    mmL"Fii1%&99;**4088C
&&v8((6	
&&y6r   r   )r,  zdateutil/US/Easternzpytz/US/Easternc                   UR                  S5      (       a6  [        R                  " S5      nUR                  UR	                  S5      5      n[
        R                  " / SQ[
        R                  S9nUS-  n[        R                  " U[
        R                  " S5      S9R                  S5      R                  U5      nUS   n[        U5      S   n[        U5      [        U5      :X  d   eUR                  5       UR                  5       :X  d   eUR!                  ["        5      S   n[        U5      [        U5      :X  d   eUR                  5       UR                  5       :X  d   eg )	Nzpytz/pytz)i@NiPNi`"Nip0Nr*   rt  rW   r)   r   )
startswithr]   importorskiptimezoneremoveprefixr   r   r@   r   r\   r   r1   r0   r   r%  	utcoffsetr/   r   )r   r   r  utc_valsr5   r   r   right2s           r   test_iter_zoneinfo_fold)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                    SU 3n[         R                  " [        US9   [        R                  " SSUS9  S S S 5        g ! , (       d  f       g = fNzInvalid frequency: rX   1/1/2000r  rO   r]   r^   r_   r,   r-   r   r'   ra   s      r   &test_date_range_frequency_M_Q_Y_raises8TestDatetimeArray.test_date_range_frequency_M_Q_Y_raises  s:    
 $D6*]]:S1MM*ad; 211	   ?
A	freq_depr)2MIN2nS2Usc                F   SUSS   SUR                  5       SS   S3n[        R                  " SSUR                  5       S9n[        R                  " [
        US9   [        R                  " SSUS9nS S S 5        [        R                  " WU5        g ! , (       d  f       N&= f)	N'r>   zE' is deprecated and will be removed in a future version, please use 'z
' instead.r  r  rO   rX   )lowerr,   r-   rH   assert_produces_warningr   assert_index_equal)r   r  depr_msgrK   rr   s        r   .test_date_range_uppercase_frequency_deprecated@TestDatetimeArray.test_date_range_uppercase_frequency_deprecated  s     	!" ++4??+<QR+@*AM 	
 ==QY__=NO''hG]]:qyIF H
fh/ HGs   B
B )	z2ye-mar2ys2qez2qs-feb2bqs2sms2bms2cbme2mec                    SU 3n[         R                  " [        US9   [        R                  " SSUS9  S S S 5        g ! , (       d  f       g = fr  r  r  s      r   *test_date_range_lowercase_frequency_raises<TestDatetimeArray.test_date_range_lowercase_frequency_raises  s:     $D6*]]:S1MM*ad; 211r  c                    Sn[         R                  " SSSS9n[        R                  " [        US9   [         R                  " SSSS9nS S S 5        [        R
                  " WU5        g ! , (       d  f       N&= f)Nz9'w' is deprecated and will be removed in a future versionr  r  2WrO   rX   2w)r,   r-   rH   r  r   r  )r   r  rK   rr   s       r   .test_date_range_lowercase_frequency_deprecated@TestDatetimeArray.test_date_range_lowercase_frequency_deprecated.  s[    N==QTB''hG]]:qtDF H
fh/ HGs   A))
A7)1Az2A-MARz2a-marc                    SU 3n[         R                  " [        US9   [        R                  " SSUS9  S S S 5        g ! , (       d  f       g = fr  r  r  s      r   "test_date_range_frequency_A_raises4TestDatetimeArray.test_date_range_frequency_A_raises7  8    #D6*]]:S1MM*ad; 211r  )2H2CBH2Sc                    SU 3n[         R                  " [        US9   [        R                  " SSUS9  S S S 5        g ! , (       d  f       g = fr  r  r  s      r   *test_date_range_uppercase_frequency_raises<TestDatetimeArray.test_date_range_uppercase_frequency_raises>  r  r  r:   N)5r   r   r   r   r   r   r   r  r]   r   r   r  intr   int32r@   r  r  r!  r)  r-  r2  r,   rZ   r  r   r6  r<  rF  rO  re  rk  rn  rz  r~  r   r   r?   rA   rp   r  r  r  r  r  r  r  r  r  r  r  r  r   r:   r   r   r   r   <  s   9 	=+& [[W'79N&OP[[Q. Q., [[WsBHHbhh(&ST6 U6%'.5
 [[LL&LL&446LL&446	
,1 [[Xz':;E <E('-R606  [[WtUm4* 5* [[WtUm4' 5'& [[HHQKNN5!LLa IIb%*T1E9IIbM01B6=ELL&005
	
 [[WtUm4$ 5$=(1 
*	7 [[F66B [[R<	< [[[*@A
0 B
0 [[
	
<<0 [[V%?@< A< [[V%9:< ;<r   r   c                 L   [         R                  " / SQSS9n Sn[        R                  " [        US9   U R                  SS9  S S S 5        X S   -
  n[        R                  " [        US9   UR                  SS9  S S S 5        g ! , (       d  f       NG= f! , (       d  f       g = f)	N)r   r   r>   rW   r*   z+call pd.factorize\(obj, sort=True\) insteadrX   T)sortr   )r   r\   r]   r^   NotImplementedError	factorize)r5   ra   tdas      r    test_factorize_sort_without_freqr  F  s    

&
&y
AC
8C	*#	64  
7 A,C	*#	64  
7	6 
7	6
 
7	6s   B+B
B
B#)__doc__
__future__r   datetimer   r   numpyr   r]   pandas._libs.tslibsr   pandas.errorsr   pandas.core.dtypes.dtypesr   pandasr,   pandas._testing_testingrH   pandas.core.arraysr   r	   r   r   r   r  r:   r   r   <module>r     sY    #     * ( 5  {; {;|!: !:HG< G<T
!r   