
    Mh`                    T   S SK J r JrJr  S SKJrJr  S SK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JrJrJrJrJrJrJrJr  S SKJr  S SKJ r   S S	K!J"r"J#r#J$r$J%r%   " S
 S5      r& " S S5      r' " S S5      r( " S S5      r) " S S5      r* " S S5      r+ " S S5      r, " S S5      r-\	R\                  R_                  S/ SQ5      \	R\                  R_                  S/ SQ5      \	R\                  R_                  S/ SQ5      S  5       5       5       r0S! r1S" r2S# r3S$ r4g)%    )datetimetime	timedelta)productstarmapN)localize_pydatetime)shift_months)PerformanceWarning)	
DateOffsetDatetimeIndexNaTPeriodSeries	TimedeltaTimedeltaIndex	Timestamp
date_range)	roperator)assert_cannot_addassert_invalid_addsub_typeassert_invalid_comparisonget_upcast_boxc                   6   \ rS rSrS r\R                  R                  SSSSS\" 5       \	" SS	9\
" S
SS5      R                  5       S\R                  /	5      S 5       r\R                  R                  S\" \" S5      5      \R"                  " S5      \R"                  " S5      R%                  \R&                  5      \R"                  " S5      R%                  \5      \R*                  " SSS9R,                  \R,                  " \R*                  " SSS95      \" \R*                  " SSS95      \R*                  " SSS9R%                  \5      \R.                  " SSSS9R,                  \R.                  " SSSS9R%                  \5      /
5      S 5       rS rS rSrg)"TestDatetime64ArrayLikeComparisons0   c                 D   UnUn[        SSUS9n[        R                  " UR                  5       S   5      n[        R
                  " XT5      n[        XvS5      nXv:*  n	[        R                  " / SQ5      n
[        R
                  " X5      n
[        R                  " X5        g )N20130101   periodstzr   TTFF)r   nparrayto_numpytmbox_expectedr   assert_equal)selftz_naive_fixturebox_with_arrayr!   boxdtiotherdtarrxboxresultexpecteds              Y/var/www/html/env/lib/python3.13/site-packages/pandas/tests/arithmetic/test_datetime64.pytest_compare_zerodim7TestDatetime64ArrayLikeComparisons.test_compare_zerodim5   s}    Q26*+)eD18801??82
)    r.   fooc   g      @   daysi     Nc                 b    Un[        SSUS9n[        R                  " XS5      n[        XaU5        g )N1/1/2000
   r   )r   r&   r'   r   )r)   r.   r*   r+   r!   rngr/   s          r3   test_dt64arr_cmp_scalar_invalidBTestDatetime64ArrayLikeComparisons.test_dt64arr_cmp_scalar_invalidD   s/    ( RB74!%?r6   r@   1nsr    1 Dayz
1971-01-01Dfreqr    c                 x    Un[        SSSUS9R                  n[        R                  " XS5      n[	        XaU5        g )N
1970-01-01nsr@   rI   r    r!   )r   _datar&   r'   r   )r)   r.   r*   r+   r!   dtaobjs          r3   "test_dt64arr_cmp_arraylike_invalidETestDatetime64ArrayLikeComparisons.test_dt64arr_cmp_arraylike_invalid^   s7    & D"DJJooc2!#n=r6   c           
         Un[        SSSUS9R                  n[        R                  " SSSUS   [	        SS	9/5      nX4:H  n[        R                  " / S
Q5      n[
        R                  " XV5        X4:g  n[
        R                  " XV) 5        Sn[        R                  " [        US9   X4:    S S S 5        [        R                  " [        US9   X4:    S S S 5        [        R                  " [        US9   X4:*    S S S 5        [        R                  " [        US9   X4:    S S S 5        g ! , (       d  f       N= f! , (       d  f       Nl= f! , (       d  f       NW= f! , (       d  f       g = f)NrK   h   rM   r   r=   r:   r   r;   )FFFTFzDInvalid comparison between|Cannot compare type|not supported betweenmatch)
r   rN   r#   r$   r   r&   assert_numpy_array_equalpytestraises	TypeError)r)   r*   r!   rO   r.   r1   r2   msgs           r3   test_dt64arr_cmp_mixed_invalidATestDatetime64ArrayLikeComparisons.test_dt64arr_cmp_mixed_invalidw   s    CrBHH!Q3q69!+<=>88>?
##F5
##FI6T]]9C0K 1]]9C0K 1]]9C0L 1]]9C0L 10 10000000s0   &D&D72EE&
D47
E
E
E'c                    UnUn[        SUS9n[        U[        /5      n[        R                  " Xd5      n[        XuS5      n[        SS/[        R                  S9n	[        R                  " X5      n	Xu:H  n
[        R                  " X5        g )Nz
2021-01-01r!   TFdtype)	r   r   r   r&   r'   r   r#   bool_r(   )r)   r*   r+   r!   r,   tsserrP   r0   r2   r1   s              r3   test_dt64arr_nat_comparison>TestDatetime64ArrayLikeComparisons.test_dt64arr_nat_comparison   su    |+b#Yooc'ct,4-rxx8??82
)r6    )__name__
__module____qualname____firstlineno__r4   rY   markparametrizeobjectr   r   dater#   nanrB   listrangearangeastypefloat32pdtimedelta_ranger$   period_rangerQ   r]   rf   __static_attributes__rh   r6   r3   r   r   0   s{   
* [[H1 T1a %%'FF	
$@%$@ [[ rOIIbMIIbM  ,IIbM  (ub177HHR''r:;##E267w3::6BOOLsB?EEOOLsB?FFvN	
 >! >.*r6   r   c                      \ rS rSr\R
                  R                  S\" S5      \\" S5      /\\\" S5      /4\	" S5      \\	" S5      /\\\	" S5      /4\
" SSS	9\\
" S
SS	9/\\\
" S
SS	9/4/5      \R
                  R                  SSS/5      \R
                  R                  SS\/5      \R
                  R                  S\R                  \" / SQ5      4\R                  \" / SQ5      4\R                   \" / SQ5      4\R"                  \" / SQ5      4\R$                  \" / SQ5      4\R&                  \" / SQ5      4/5      S 5       5       5       5       r\R
                  R                  S\" S5      \\" S5      /\	" S5      \\	" S5      /\
" SSS	9\\
" S
SS	9//5      \R
                  R                  SS\/5      S 5       5       r\R
                  R                  S\" SSS5      \" SSS5      /5      S 5       r\R
                  R                  S/ SQ5      S 5       rS  r\R
                  R                  S!\" S"5      \" S#SS5      \R6                  " S$S%5      /5      \R
                  R                  S&\R                   / S'Q4\R&                  / S(Q4\R                  / S)Q4\R"                  / S*Q4/5      S+ 5       5       rS,rg)-TestDatetime64SeriesComparison   pair
2011-01-01
2011-01-031 daysz3 daysz2011-01MrI   z2011-03reverseTFrb   Nzop, expectedFFTTTFFFFc                 |    UnUu  pU(       a  Xp[        XS9n
U" XS9nU" X5      n[        R                  " X5        g )Nra   )r   r&   assert_series_equal)r)   rb   index_or_seriesr   r~   opr2   r,   lhsrhsleftrightr1   s                r3   test_nat_comparisons3TestDatetime64SeriesComparison.test_nat_comparisons   sD    N c'C%D
v0r6   datac                    Un[        X!S9n[        R                  " XT5      n[        U[        S5      n/ SQn[        R                  " Xv5      nU[
        R                  L a  U[        L a  [
        R                  " USS9n[        R                  " U[        :H  U5        [        R                  " [        U:H  U5        / SQn[        R                  " Xv5      nU[
        R                  L a  U[        L a  [
        R                  " USS9n[        R                  " U[        :g  U5        [        R                  " [        U:g  U5        / SQn[        R                  " Xv5      nU[
        R                  L a  U[        L a  [
        R                  " USS9n[        R                  " U[        :  U5        [        R                  " [        U:  U5        [        R                  " U[        :*  U5        [        R                  " [        U:  U5        [        R                  " U[        :  U5        [        R                  " [        U:  U5        [        R                  " U[        :  U5        [        R                  " [        U:*  U5        g )Nra   Tr   boolTTT)	r   r&   r'   r   r   rw   r$   ro   r(   )r)   rb   r   r+   r,   r   r0   r2   s           r3   test_nat_comparisons_scalar:TestDatetime64SeriesComparison.test_nat_comparisons_scalar   s    d(t)dC.(??82"((?uxx7H
X.
tX.%??82"((?uxx7H
X.
tX.(??82"((?uxx7H
s
H-
d
H-
X.
tX.
s
H-
d
H-
X.
tX.r6   vali  r=      rU   c                     [        [        SSS95      nX!:  n[        U Vs/ s H  oDU:  PM	     sn5      n[        R                  " X55        g s  snf Nr?   r@   rE   )r   r   r&   r   )r)   r   seriesr1   xr2   s         r3   test_series_comparison_scalars=TestDatetime64SeriesComparison.test_series_comparison_scalars  sH    
:r:;F3Fqs7F34
v0 4s   Az
left,right))ltgt)lege)eqr   )ner   c                 z   [        [        SSS9SS9nUR                  SS9n[        S5      US	'   [        S5      US
'   [	        [
        U5      n[	        [
        U5      nU" U[        S5      5      nU" [        S5      U5      n[        R                  " X5        U" U[        S5      5      nU" [        S5      U5      n[        R                  " X5        U" U[        S5      5      nU" [        S5      U5      n[        R                  " X5        U" U[        5      nU" [        U5      n[        R                  " X5        g )N20010101r@   rE   datesnameT)deepnatr   r   20010109)	r   r   copyr   getattroperatorr&   r   r   )	r)   r   r   re   s_natleft_fright_fr2   r1   s	            r3   test_timestamp_compare_series<TestDatetime64SeriesComparison.test_timestamp_compare_series  s    Z
B7gFd#5!A5!A4((E* #y45:.4
v0 #y/05)3/
v0 %:!67:.6
v0 %%e$
v0r6   c                    Un[        [        S5      [        S5      [        /5      n[        R                  " X25      n[        X3S5      nX3:g  n[        R                  " / SQU5      n[        R                  " XV5        U[        R                  L a*  [        R                  " [        SS9   X3S   :g    S S S 5        O6X3S   :g  n[        R                  " / SQU5      n[        R                  " XV5        U[        R                  L a*  [        R                  " [        SS9   X3S	   :g    S S S 5        O6X3S	   :g  n[        R                  " / S
QU5      n[        R                  " XV5        X3:H  n[        R                  " / SQU5      n[        R                  " XV5        U[        R                  L a*  [        R                  " [        SS9   X3S   :H    S S S 5        O6X3S   :H  n[        R                  " / SQU5      n[        R                  " XV5        U[        R                  L a*  [        R                  " [        SS9   X3S	   :H    S S S 5        g X3S	   :H  n[        R                  " / SQU5      n[        R                  " XV5        g ! , (       d  f       GN= f! , (       d  f       GN;= f! , (       d  f       N= f! , (       d  f       g = f)Nz2000-01-29 01:59:00z
2000-01-30Tr   znot alignedrV   r   )FTTr:   r   r   r"   r   )r   r   r   r&   r'   r   r(   rw   	DataFramerY   rZ   
ValueError)r)   r+   r,   re   r0   r1   r2   s          r3   test_dt64arr_timestamp_equality>TestDatetime64SeriesComparison.test_dt64arr_timestamp_equality/  s   i 56	,8OQTUVooc'c-??#7>
)",, z?1v @? F]F':DAHOOF-",, z?1v @? F]F'94@HOOF-??#6=
)",, z?1v @? F]F';TBHOOF-",, z?1v @? F]F'<dCHOOF-Q @? @? @? @?s0   (I<JJ 4J1<
J
J 
J.1
J?datetimeliker   i  z2013-01-01T00:00rL   zop,expected)TFFF)TTFF)FTFF)FFFTc                     [        [        S5      [        S5      [        R                  [        S5      /SS9nU" XA5      n[        USS9n[        R
                  " XS5        g )N20120101r   20130103Ar   )r   r   r#   rq   r&   r   )r)   r   r   r2   re   r1   s         r3   !test_dt64_compare_datetime_scalar@TestDatetime64SeriesComparison.test_dt64_compare_datetime_scalarh  s]    ( *%*%*%	 
 C&(-
v0r6   rh   )ri   rj   rk   rl   rY   rm   rn   r   r   r   r   ro   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r#   
datetime64r   rz   rh   r6   r3   r|   r|      s    [[ <(#y/FGc9\23
 8$c9X+>?c9X./
 	,c6)#3NOc6)#67	
" [[Yu6[[WtVn5[[[[&!567[[&!456[[&!678[[&!678[[&!567[[&!567	

1
 6 7#<1, [[|$c9\+BCx #y':;IC(#vic/JK	
 [[WtVn5"/ 6"/H [[UXdAq%98D!Q;O$PQ1 R1 [[N11@7.r [[j!T1a MM,d3	
 [[[[56[[45[[56[[56		
1"1r6   r|   c            
          \ rS rSrS r\R                  R                  S\" SSS5      \	" S5      \
R                  " S5      /5      S 5       r\R                  R                  SS	\/5      S
 5       rS rS rS r\R                  R                  S\" SSS5      \	" S5      \
R                  " S5      /5      \R                  R%                  S5      S 5       5       rS rS rS r\R                  R                  S\R0                  " SSS9\R0                  " SSS9R3                  5       \R0                  " SSS9R4                  R7                  S5      /S S9S 5       rS rSrg	)TestDatetimeIndexComparisonsi  c                 &   [        SSS9nU[        U5      S-     n[        U5      R                  5       n[        R
                  " U5      nU" XC5      nU" X#5      n[        U[        R                  5      (       d   e[        R                  " XV5        g )Nz
2020-01-01r@   rE   r:   )
r   lenr   to_datetime64r#   r$   
isinstancendarrayr&   rX   )r)   comparison_opindexelementarr
arr_resultindex_results          r3   test_comparators-TestDatetimeIndexComparisons.test_comparators  sy    <4E
a(G$224hhuo"30
$U4,

3333
##J=r6   r.     r=   
2016-01-01c                    Un[        SSUS9nUb`  [        U[        R                  5      (       a,  [        R
                  " [        U5      R                   S35        [        XR                  5      nXA:H  n[        R                  " SS/5      n[        R                  " XV5        XA:  n[        R                  " SS/5      n[        R                  " XV5        XA:  n[        R                  " SS/5      n[        R                  " XV5        XA:  n[        R                  " SS/5      n[        R                  " XV5        XA:*  n[        R                  " SS/5      n[        R                  " XV5        g )Nr   r:   r   z is not tz awareTF)r   r   r#   r   rY   skiptyperi   r   tzinfor$   r&   rX   )r)   r.   r*   r!   r-   r1   r2   s          r3   test_dti_cmp_datetimelike6TestDatetimeIndexComparisons.test_dti_cmp_datetimelike  s   
 qR8>%//tE{3344DEF'zz:E88T5M*
##F588UDM*
##F588T4L)
##F588UEN+
##F588T5M*
##F5r6   rb   Nc                    [        [        S5      [        [        S5      /5      n[        [        [        [        S5      /5      n[        R                  " X25      n[        R                  " XB5      n[        X4S5      nX4pvU[        L a)  UR                  [        5      UR                  [        5      pvXv:H  n[        R                  " / SQ5      n	[        R                  " X5      n	[        R                  " X5        Xg:g  n[        R                  " / SQ5      n	[        R                  " X5      n	[        R                  " X5        [        R                  " / SQ5      n	[        R                  " X5      n	[        R                  " U[        :H  U	5        [        R                  " [        U:H  U	5        [        R                  " / SQ5      n	[        R                  " X5      n	[        R                  " U[        :g  U	5        [        R                  " [        U:g  U	5        [        R                  " / SQ5      n	[        R                  " X5      n	[        R                  " U[        :  U	5        [        R                  " [        U:  U	5        g )Nr   r   Tr   r   r   r   )r   r   r   r&   r'   r   ro   ru   r#   r$   r(   )
r)   rb   r+   r   r   r0   r   r   r1   r2   s
             r3   test_dti_cmp_nat-TestDatetimeIndexComparisons.test_dti_cmp_nat  s   i5sIl<STUsC<)@ABt46d40SF?{{6*ELL,@8801??82
)88/0??82
)8812??82
s
H-
s
H-88./??82
s
H-
s
H-8812??82
c	8,
c	8,r6   c           
      
   [         R                  " S[        R                  S[        R                  SS/5      n[         R                  " SS[        R                  [        R                  SS/5      n[	        S[
        S[
        S	S
/5      n[	        SS[
        [
        SS
/5      n[        R                  " [        R                  " S5      [        R                  " S5      [        R                  " S5      [        R                  " S5      [        R                  " S5      [        R                  " S5      /5      nX4X44X54/n[        R                  " S 5         U GH2  u  pxXx:  n	[        R                  " / SQ5      n
[        R                  " X5        X:  n	[        R                  " / SQ5      n
[        R                  " X5        Xx:*  n	[        R                  " / SQ5      n
[        R                  " X5        X:  n	[        R                  " / SQ5      n
[        R                  " X5        Xx:H  n	[        R                  " / SQ5      n
[        R                  " X5        Xx:g  n	[        R                  " / SQ5      n
[        R                  " X5        GM5     S S S 5        [        R                  " S 5         U[        R                  4U[
        44 H  u  p{X{:  n	[        R                  " / SQ5      n
[        R                  " X5        X{:  n	[        R                  " X5        X{:*  n	[        R                  " X5        X{:  n	[        R                  " X5        X{:H  n	[        R                  " X5        X{:g  n	[        R                  " / SQ5      n
[        R                  " X5        M     S S S 5        [        R                  " S 5         US4U[        SSS5      44 GH2  u  p{X{:  n	[        R                  " / SQ5      n
[        R                  " X5        X{:  n	[        R                  " / SQ5      n
[        R                  " X5        X{:*  n	[        R                  " / SQ5      n
[        R                  " X5        X{:  n	[        R                  " / SQ5      n
[        R                  " X5        X{:H  n	[        R                  " / SQ5      n
[        R                  " X5        X{:g  n	[        R                  " / S Q5      n
[        R                  " X5        GM5     S S S 5        g ! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       g = f)!N      ?      @g      @g      @       @g      @
2014-01-01
2014-03-01
2014-05-01
2014-07-01z
2014-02-01z
2014-06-01z2014-02-01 00:00z2014-03-01 00:00r   z2014-06-01 00:00z2014-07-01 00:00)TFFFTF)TFFFTT)FFFFFT)TTTTTF)FFFFFF)TTTTTTr   i  r=   )TFFFFF)FFFFTT)TFTFFF)FFTFTT)FFTFFF)TTFTTT)rw   Indexr#   rq   r   r   r$   r   r&   assert_produces_warningrX   r   )r)   fidx1fidx2didx1didx2darrcasesidx1idx2r1   r2   r   s               r3   +test_dti_cmp_nat_behaves_like_float_cmp_nanHTestDatetimeIndexComparisons.test_dti_cmp_nat_behaves_like_float_cmp_nan  s   #rvvsBFFC=>#sBFFBFFC=>3c<N
 <c<N
 xx0101e$e$0101	
 %%? ''-#
88$LM++F=88$LM++F=88$KL++F=88$KL++F=88$MN++F=88$IJ++F=/ $ .4 ''-$bffos|<	88$NO++F=++F=++F=++F=++F=88$HI++F=# = .* ''-$aj5(4A2F*GH	88$MN++F=88$LM++F=88$LM++F=88$KL++F=88$MN++F=88$IJ++F=+ I .-_ .-4 .-* .-s'   D:T-C0T!;ET3
T!
T03
Uc           	         UnUn[        SSS9nUR                  S5      n[        R                  " XT5      n[        R                  " Xd5      nU[        R
                  L a  S nO[        nU[        R                  [        R                  4;  GaF  Sn[        R                  " [        US9   U" XV5        S S S 5        [        R                  " [        US9   U" XW" U5      5        S S S 5        [        R                  " [        US9   U" U[        R                  " U" U5      [        S95        S S S 5        [        R                  " [        US9   U" Xe5        S S S 5        [        R                  " [        US9   U" Xg" U5      5        S S S 5        [        R                  " [        US9   U" U[        R                  " U" U5      [        S95        S S S 5        [        R                   " XU:H  5      (       d   e[        R                   " XW" U5      :H  5      (       d   e[        R                   " U" U5      U:H  5      (       d   e[        R                   " [        R                  " U" U5      [        S9U:H  5      (       d   e[        R                   " U[        R                  " U" U5      [        S9:H  5      (       d   e[        R                   " Xf:H  5      (       d   e[        R                   " Xg" U5      :H  5      (       d   e[        R                   " U" U5      U:H  5      (       d   e[        R                   " [        R                  " U" U5      [        S9U:H  5      (       d   e[        R                   " U[        R                  " U" U5      [        S9:H  5      (       d   eg ! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GNh= f! , (       d  f       GN2= f)	Nr      rE   
US/Pacificc                 b    U R                  [        5      R                  R                  5       S   $ )Nr   )ru   ro   valuestolistr   s    r3   <lambda>QTestDatetimeIndexComparisons.test_comparison_tzawareness_compat.<locals>.<lambda>I  s!    qxx/66==?Br6   z^Invalid comparison between dtype=datetime64\[ns.*\] and (Timestamp|DatetimeArray|list|ndarray)rV   ra   )r   tz_localizer&   r'   rw   r   rr   r   r   r   rY   rZ   r[   r#   r$   ro   all)	r)   r   r+   r   r,   drdzr   r\   s	            r3   "test_comparison_tzawareness_compat?TestDatetimeIndexComparisons.test_comparison_tzawareness_compat=  s   a0^^L)__R%__R%",,BFFhkk8;;//=  y42
 5 y42vbz" 5y42rxxr
&9: 5y42
 5 y42vbz" 5y42rxxr
&9: 5 vvbhvvbF2J&''''vvfRjB&''''vvbhhvbz8B>????vvbBHHVBZv>>????vvbhvvbF2J&''''vvfRjB&''''vvbhhvbz8B>????vvbBHHVBZv>>????5 54 544444 5444sH   )	NN/'O	O5O%%'O7
N,/
N>
O
O"%
O47
Pc                 |   Un[        SSS9nUR                  S5      n[        R                  " XB5      n[        R                  " XR5      n[	        S5      n[	        SSS9n[
        R                  " XF:  5      (       d   eSnU[        R                  [        R                  4;  a*  [        R                  " [        US	9   U" XG5        S S S 5        [
        R                  " XW:  5      (       d   eU[        R                  [        R                  4;  a*  [        R                  " [        US	9   U" XV5        S S S 5        U[        R                  [        R                  4;  a+  [        R                  " [        US	9   U" Xe5        S S S 5        g g ! , (       d  f       N= f! , (       d  f       No= f! , (       d  f       g = f)
Nr   r   rE   r   z2000-03-14 01:59zEurope/Amsterdamr`   zAInvalid comparison between dtype=datetime64\[ns.*\] and TimestamprV   )r   r   r&   r'   r   r#   r   r   r   r   rY   rZ   r[   )	r)   r   r+   r   r   r   rd   ts_tzr\   s	            r3   *test_comparison_tzawareness_compat_scalarsGTestDatetimeIndexComparisons.test_comparison_tzawareness_compat_scalarsn  s<   a0^^L)__R0__R0 )*,1CDvvbgRhkk8;;//y42 5 vvbj!!!!hkk8;;//y42
 5 hkk8;;//y42
 54 0 54
 54
 54s$   =	F*	F8	F-
F
F*-
F;z*ignore:elementwise comp:DeprecationWarningc                    UnUn[        SSUS9n[        R                  " Xt5      n[        XS5      n	U[        R
                  [        R                  4;   a  U[        R                  L n
[        R                  " X/[        S9n[        R                  " X5      nU" X5      n[        R                  " X5        U" X(5      n[        R                  " X5        g S[        U5      R                   3n[        R                  " [        US9   U" X5        S S S 5        [        R                  " [        US9   U" X(5        S S S 5        g ! , (       d  f       N9= f! , (       d  f       g = f)Nr   r:   r   Tra   z:Invalid comparison between dtype=datetime64\[ns, .*\] and rV   )r   r&   r'   r   r   r   r   r#   r$   r   r(   r   ri   rY   rZ   r[   )r)   r   r.   tz_aware_fixturer+   r   r!   r-   r/   r0   exboolr2   r1   r\   s                 r3   "test_scalar_comparison_tzawareness?TestDatetimeIndexComparisons.test_scalar_comparison_tzawareness  s    qR84eD1(++x{{++8;;&Fxx 0=Hx6H%FOOF-%FOOF-E{++,.  y45  5y45  54 5444s   	E0	E
E
E!c                 L   Un[        S[        S[        SS/5      n[        R                  " U[        R
                  :H  /[        U5      -  5      nU" U[        5      n[        R                  " XT5        U" UR                  S5      [        5      n[        R                  " XT5        g )Nr   r   r   r   r   )
r   r   r#   r$   r   r   r   r&   rX   r   )r)   r   r   r-   r2   r1   s         r3   test_nat_comparison_tzawareness<TestDatetimeIndexComparisons.test_nat_comparison_tzawareness  s     3c<N
 88R8;;./#c(:;C
##F5COOL137
##F5r6   c                    Un[        SSUS9nSnX4:H  n[        R                  " S/S/S-  -   5      n[        R                  " XV5        X4:g  n[        R                  " S/S/S-  -   5      n[        R                  " XV5        X4:  n[        R                  " S/S-  5      n[        R                  " XV5        X4:*  n[        R                  " S/S/S-  -   5      n[        R                  " XV5        X4:  n[        R                  " S/S/S-  -   5      n[        R                  " XV5        X4:  n[        R                  " S/S-  5      n[        R                  " XV5        g )Nr?   r@   r   TF	   )r   r#   r$   r&   rX   )r)   r*   r!   rA   r.   r1   r2   s          r3   test_dti_cmp_str-TestDatetimeIndexComparisons.test_dti_cmp_str  s.    RB788TFeWq[01
##F588UGtfqj01
##F588UGbL)
##F588TFeWq[01
##F588UGtfqj01
##F588TFRK(
##F5r6   c                 h    [        SSS9nU[        U5      :H  nX:H  n[        R                  " X#5        g r   )r   rr   r&   rX   )r)   rA   r1   r2   s       r3   test_dti_cmp_list.TestDatetimeIndexComparisons.test_dti_cmp_list  s1    R0S	!:
##F5r6   1Dr@   rE   m8[ns]c                 ,    [        U 5      R                  $ N)r   ri   r   s    r3   r   %TestDatetimeIndexComparisons.<lambda>  s    d1g&&r6   )idsc                    [        SSSS9nX!:H  n[        R                  " S/S-  5      n[        R                  " X45        X!:g  n[        R                  " S/S-  5      n[        R                  " X45        Sn[
        R                  " [        US9   X!:    S S S 5        [
        R                  " [        US9   X!:*    S S S 5        [
        R                  " [        US9   X!:    S S S 5        [
        R                  " [        US9   X!:    S S S 5        g ! , (       d  f       N= f! , (       d  f       Nl= f! , (       d  f       NW= f! , (       d  f       g = f)	N
2000-01-01r@   
Asia/Tokyor   FTzInvalid comparison betweenrV   )r   r#   r$   r&   rX   rY   rZ   r[   )r)   r.   r-   r1   r2   r\   s         r3   test_dti_cmp_tdi_tzawareness9TestDatetimeIndexComparisons.test_dti_cmp_tdi_tzawareness  s     rlC88UGbL)
##F588TFRK(
##F5*]]9C0K 1]]9C0L 1]]9C0K 1]]9C0L 10 10000000s0   D5D D1E
D 
D.1
D?
Ec                 B   [        SSSS9nUR                  S5      nX:H  n[        R                  " S/S-  5      n[        R
                  " X45        UR                  S 5      nX:g  n[        R
                  " X45        [        R                  " [        US S 5      [        SS	9/S-  -   5      nX:H  n[        R                  " S/S-  S
/S-  -   5      n[        R
                  " X45        Sn[        R                  " [        US9   X:    S S S 5        g ! , (       d  f       g = f)Nr  r@   r  r   OTrU   r=   r;   FzB>=' not supported between instances of 'Timestamp' and 'Timedelta'rV   )r   ru   r#   r$   r&   rX   r   rr   r   rY   rZ   r[   )r)   r-   r.   r1   r2   r\   s         r3   test_dti_cmp_object_dtype6TestDatetimeIndexComparisons.test_dti_cmp_object_dtype  s    rlC

388TFRK(
##F5%
##F5c"1g)*;)<q)@@A88TFQJ%145
##F5R]]9C0L 100s   D
Drh   )ri   rj   rk   rl   r   rY   rm   rn   r   r   r#   r   r   ro   r   r   r   r  filterwarningsr  r
  r  r  rw   rx   	to_seriesasi8viewr  r   rz   rh   r6   r3   r   r     s   
> [[	$1	y6l8ST6	68 [[WtVn5#- 6#-J]>~/@b< [[	$1	y6l8ST [[ LM! N!:66>6 [[tR0tR0::<tR055::8D	

 '  .r6   r   c                   z   \ rS rSr\R
                  R                  S 5       rS rS r	S r
S rS r\R
                  R                  S\" S	5      \" S	5      R                  5       \" S	5      R!                  5       \R$                  " S	S
5      /5      S 5       rS rS rS rS rS rS r\R
                  R                  S/ SQ5      \R
                  R                  SSS/5      S 5       5       r\R
                  R                  SS\R6                  " SS/5      \" SS
S9\" SSS 5      /5      \R
                  R                  S!SS
/5      S" 5       5       r\R
                  R                  S#/ S$Q5      \R
                  R                  S!SS
/5      S% 5       5       r\R
                  RA                  S&5      S' 5       r!\R
                  R                  S(\"" \" S)5      \" S)5      /5      \"" \#\" S)5      /5      \"" \#\#/S*S+9/5      \R
                  R                  S,SS-\R6                  " S5      /5      S. 5       5       r$S/r%g)0TestDatetime64Arithmetici!  c                 (   Un[        SSUS9n[        SSUS9n[        R                  " XS5      n[        R                  " Xc5      nXR-   n[        R                  " Xv5        X%-   n[        R                  " Xv5        XR-  n[        R                  " XV5        g )Nr  
2000-02-01r`   z2000-01-01 02:00z2000-02-01 02:00r   r&   r'   r(   r)   r*   	two_hoursr+   r!   rA   r2   r1   s           r3   %test_dt64arr_add_timedeltalike_scalar>TestDatetime64Arithmetic.test_dt64arr_add_timedeltalike_scalar(  s}    
 |;02DLooc2??8<
)
)
&r6   c                     Un[        SSUS9n[        SSUS9n[        R                  " XS5      n[        R                  " Xc5      nXR-
  n[        R                  " Xv5        XR-  n[        R                  " XV5        g )Nr  r)  r`   z1999-12-31 22:00z2000-01-31 22:00r*  r+  s           r3   %test_dt64arr_sub_timedeltalike_scalar>TestDatetime64Arithmetic.test_dt64arr_sub_timedeltalike_scalar>  sj     |;02DLooc2??8<
)
&r6   c                    [        SSS9R                  S5      n[        R                  " X!5      n[	        S5      R                  S5      n[	        S5      nX#-
  n[        / SQ5      n[        R                  " Xa5      n[        R                  " XV5        X2-
  n[        / SQ5      n[        R                  " Xa5      n[        R                  " XV5        S	n[        R                  " [        US
9   X$-
    S S S 5        [        R                  " [        US
9   XB-
    S S S 5        g ! , (       d  f       N5= f! , (       d  f       g = f)Nr   r   rE   
US/EasternCETi5)3)0 days 06:00:00z1 days 06:00:00z2 days 06:00:00)-1 days +18:00:00z-2 days +18:00:00z-3 days +18:00:00;Cannot subtract tz-naive and tz-aware datetime-like objectsrV   )
r   r   r&   r'   r   r   r(   rY   rZ   r[   r)   r+   t1t2tnaiver1   r2   r\   s           r3   .test_dt64_array_sub_dt_with_different_timezoneGTestDatetime64Arithmetic.test_dt64_array_sub_dt_with_different_timezoneO  s    
A.::<H__R0z"..u58$!E
 ??8<
)!K
 ??8<
)K]]9C0K 1 ]]9C0K 10 10 10s   *DD/
D,/
D=c                    [        SSS9R                  S5      n[        R                  " X!5      n[        SSS9R                  S5      n[        R                  " X15      n[        SSS9nX#-
  n[	        / SQ5      n[        R                  " Xa5      n[        R
                  " XV5        X2-
  n[	        / SQ5      n[        R                  " Xa5      n[        R
                  " XV5        Sn[        R                  " [        US	9   X$-
    S S S 5        [        R                  " [        US	9   XB-
    S S S 5        g ! , (       d  f       N5= f! , (       d  f       g = f)
Nr   r   rE   r3  r4  )r5  r5  r5  )r6  r6  r6  r7  rV   )	r   r   r&   r'   r   r(   rY   rZ   r[   r8  s           r3   6test_dt64_array_sub_dt64_array_with_different_timezoneOTestDatetime64Arithmetic.test_dt64_array_sub_dt64_array_with_different_timezonej  s   
A.::<H__R0
A.::5A__R0J2!E
 ??8<
)!K
 ??8<
)K]]9C0K 1 ]]9C0K 10 10 10s   >D2$E2
E 
Ec                    Un[        SSUSS9n[        R                  " S5      n[        S/S-  US9R	                  S5      n[
        R                  " XA5      n[
        R                  " Xa5      nXu-   n[
        R                  " X5        XW-   n[
        R                  " X5        Xu-
  n[
        R                  " X5        Sn	[        R                  " [        U	S	9   XW-
    S S S 5        g ! , (       d  f       g = f)
Nz
1994-04-01r  QSr    r!   rI   r   r`   rL   cannot subtractrV   )r   r#   timedelta64r   as_unitr&   r'   r(   rY   rZ   r[   )
r)   r+   r*   r!   r-   r.   r2   rP   r1   r\   s
             r3   test_dt64arr_add_sub_td64_nat6TestDatetime64Arithmetic.test_dt64arr_add_sub_td64_nat  s    qRdCu% %14<<TBooc2??8<
)
)
)]]9C0K 100s   C%%
C3c                    Un[        SSUS9n[        / SQ5      nUR                  n[        SSSUS9n[        R                  " XB5      n[        R                  " Xr5      nX-   n	[        R
                  " X5        Xh-   n	[        R
                  " X5        [        SSSUS9n[        R                  " Xr5      nX-
  n	[        R
                  " X5        Sn
[        R                  " [        U
S	9   Xh-
    S S S 5        g ! , (       d  f       g = f)
Nr   r   r   )-1 DayrJ  rJ  z
2015-12-31z
2016-01-02z
2016-01-04z8cannot subtract|(bad|unsupported) operand type for unaryrV   )	r   r   r   r&   r'   r(   rY   rZ   r[   )r)   r*   r+   r!   r-   tditdarrr2   r/   r1   r\   s              r3    test_dt64arr_add_sub_td64ndarray9TestDatetime64Arithmetic.test_dt64arr_add_sub_td64ndarray  s    qR8;<

lL!K4??8<
)
)lL!K??8<
)H]]9C0M 100s   *C88
Drd   
2013-01-01rG   c                 @   [        SSS9R                  S 5      n[        R                  " X15      n[	        / SQ5      n[        R                  " XA5      nX2-
  n[        R
                  " XT5        X#-
  n[        R
                  " XT* 5        [        R
                  " XT* 5        g )NrO  r   rE   )z0 DaysrF   z2 Days)r   
_with_freqr&   r'   r   r(   )r)   r+   rd   idxr2   r1   s         r3   test_dt64arr_sub_dtscalar2TestDatetime64Arithmetic.test_dt64arr_sub_dtscalar  sx     q1<<TBooc2!"?@??8<
)
	*
	*r6   c                 t   [        SSSSS9nUR                  S 5      nUS   n[        R                  " X!5      n[	        [
        R                  " SS5      [
        R                  " SS5      /5      n[        R                  " XA5      n[        R                  " X#-
  U5        [        R                  " X2-
  U* 5        g )Nz
2014-03-17r:   rG   r3  r    rI   r!   r   r=   )r   rQ  r&   r'   r   r#   rE  r(   )r)   r+   re   rd   delta_seriesr2   s         r3   "test_dt64arr_sub_timestamp_tzaware;TestDatetime64Arithmetic.test_dt64arr_sub_timestamp_tzaware  s    qs|LnnT"Vooc2r~~a5r~~a7MNO??<@
(+
8),r6   c                    [        [        [        S5      /5      R                  U5      n[        R
                  " X15      nU[        -
  n[        [        [        /SU S3S9n[        R
                  " Xa5      n[        R                  " XV5        UR                  S5      n[        R
                  " Xq5      nU[        -
  n[        [        [        /SU S3S9n[        R
                  " Xa5      n[        R                  " XV5        g )N19900315timedelta64[]ra   r  )	r   r   r   rF  r&   r'   r   r(   r   )	r)   r+   unitr-   re   r1   r2   dti_tzser_tzs	            r3   test_dt64arr_sub_NaT-TestDatetime64Arithmetic.test_dt64arr_sub_NaT  s    S)J"789AA$Gooc2s3*l4&,BC??8<
).8#3*l4&,BC??8<
)r6   c                 d   [        SSUS9nX3-
  n[        R                  " X15      n[        R                  " XA5      R                  [        5      n[        R
                  " [        5         XUR                  [        5      -
  nS S S 5        [        R                  " WU5        g ! , (       d  f       N&= fNr   r   r   )r   r&   r'   ru   ro   r   r
   r(   )r)   r+   r*   r-   r2   rP   r1   s          r3   !test_dt64arr_sub_dt64object_array:TestDatetime64Arithmetic.test_dt64arr_sub_dt64object_array  s{    q5EF9ooc2??8<CCFK''(:;::f--F <
) <;s   )B!!
B/c                     [        SSS S9nUR                  n[        R                  " X!5      nXD-
  nXC-
  n[        R                  " Xe5        X4-
  n[        R                  " Xe5        g rd  )r   r   r&   r'   r(   )r)   r+   r-   dt64valsr/   r2   r1   s          r3   "test_dt64arr_naive_sub_dt64ndarray;TestDatetime64Arithmetic.test_dt64arr_naive_sub_dt64ndarray  sV    qT:::4=!
)!
)r6   c                 B   Un[        SSUS9nUR                  n[        R                  " XB5      nSn[        R
                  " [        US9   Xe-
    S S S 5        [        R
                  " [        US9   XV-
    S S S 5        g ! , (       d  f       N5= f! , (       d  f       g = f)Nr   r   r   z.Cannot subtract tz-naive and tz-aware datetimerV   )r   r   r&   r'   rY   rZ   r[   )r)   r  r+   r!   r-   rh  r/   r\   s           r3   )test_dt64arr_aware_sub_dt64ndarray_raisesBTestDatetime64Arithmetic.test_dt64arr_aware_sub_dt64ndarray_raises
  sx     qR8::4>]]9C0 1]]9C0 10 1000s   A?1B?
B
Bc                    Un[        SSUS9nUc  UR                  S5      nOUR                  S 5      n[        R                  " XB5      n[	        XdR
                  5        [	        Xd5        [	        Xf5        [	        XdS   5        [	        XdS   R                  5       5        [	        XdS   R                  5       5        [	        XeS   5        [	        XeS   R                  5       5        [	        U[        R                  " SS5      5        g )Nr   r   r   r3  r   r   rG   )
r   r   r&   r'   r   r   to_pydatetimer   r#   r   )r)   r*   r+   r!   r-   dti2r/   s          r3   test_dt64arr_add_dtlike_raises7TestDatetime64Arithmetic.test_dt64arr_add_dtlike_raises  s     qR8:??<0D??4(D4%,%%%'%Q(%Q!5!5!78%Q!5!5!78%a)%a!6!6!89%|S!ABr6   rI   )rT   rG   W2MEMSQEBNrb   Nuint8c                    UnUc  [        SS/US9nO[        SSXFS9nU" U5      n[        R                  " SS/5      n	Ub  U	R	                  U5      n	S	R                  / S
Q5      n
[        USU
5        [        U[        R                  " S5      U
5        [        U[        R                  " S[        R                  S9U
5        [        XU
5        [        U[        R                  " U	5      U
5        [        U[        R                  " U	5      U
5        [        U[        R                  " U	5      U
5        [        U[        R                  " U	5      U
5        [        U[        U	5      U
5        g )Nr   z2017-04-05 06:07:08r`   r   r:   rV  r   r8   |)z Addition/subtraction of integersz"cannot subtract DatetimeArray fromz(can only perform ops with numeric valuesz%unsupported operand type.*Categoricalz:unsupported operand type\(s\) for -: 'int' and 'Timestamp'r=   r   ra   )r   r   r#   r$   ru   joinr   int64rw   Categoricalr   r   )r)   requestrb   index_or_series_or_arrayrI   r*   r!   r-   rP   r.   r\   s              r3   test_dt64arr_addsub_intlike4TestDatetime64Arithmetic.test_dt64arr_addsub_intlike7  s    <(= >2FC\14GC&s+!R!LL'Ehh	
 	#33/"3S9"3"(((CSI"3s3"3="3="3u(=sC"3="3us;r6   r.   gQ	@r   r   r   r   r=   r:   r   dti_freqc                     [        SS/US9n[        R                  " XC5      nSR                  / SQ5      n[	        XRU5        g )Nr   
2011-01-02r   rz  )zunsupported operand typecannot (add|subtract)zcannot use operands with typesz7ufunc '?(add|subtract)'? cannot use operands with typesz;Concatenation operation is not implemented for NumPy arrays)r   r&   r'   r{  r   )r)   r  r.   r+   r-   r/   r\   s          r3   test_dt64arr_add_sub_invalid5TestDatetime64Arithmetic.test_dt64arr_add_sub_invalid_  sB     \<8xH4hh
 	#55r6   pi_freq)rG   rs  QrT   c                     [        SS/US9nUR                  U5      n[        R                  " XS5      n[        R                  " Xd5      nSR	                  / SQ5      n	[        XxU	5        g )Nr   r  r   rz  )r  unsupported operandzdescriptor.*requireszufunc.*cannot use operands)r   	to_periodr&   r'   r{  r   )
r)   r  r  r+   box_with_array2r-   pir/   parrr\   s
             r3   test_dt64arr_add_sub_parr2TestDatetime64Arithmetic.test_dt64arr_add_sub_parry  s^     \<8xH]]7#4r3hh
 	#54r6   (ignore::pandas.errors.PerformanceWarningc                    Un[        SSUS9n[        S5       Vs/ s H  n[        XUU5      PM     nn[        R                  " XA5      n[        R                  " Xa5      nSR                  SS/5      n[        XFUS9  g s  snf )N
2012-01-01r   r   rz  r  z*cannot subtract DatetimeArray from ndarray)r\   )r   rs   r   r&   r'   r{  r   )r)   r+   r*   r!   obj1iobj2r\   s           r3   'test_dt64arr_addsub_time_objects_raises@TestDatetime64Arithmetic.test_dt64arr_addsub_time_objects_raises  s{     ,b9',Qx0x!Q1x0t4t4hh%<
 	#437 1s   A=dt64_seriesr[  datetime64[ns]ra   oner   c                    [         R                  " X#5      nSn[        R                  " [        US9   XA-    S S S 5        [        R                  " [        US9   X-    S S S 5        [        R                  " [        US9   XA-    S S S 5        [        R                  " [        US9   X-    S S S 5        g ! , (       d  f       N= f! , (       d  f       Nl= f! , (       d  f       NW= f! , (       d  f       g = f)Nz&cannot perform .* with this index typerV   )r&   r'   rY   rZ   r[   )r)   r  r  r+   rP   r\   s         r3   !test_dt64_mul_div_numeric_invalid:TestDatetime64Arithmetic.test_dt64_mul_div_numeric_invalid  s     ook:6 ]]9C0I 1]]9C0I 1 ]]9C0I 1]]9C0I 10 1000 1000s/   B2C>C$C%2
C 
C
C"%
C3rh   )&ri   rj   rk   rl   rY   rm   arm_slowr-  r0  r<  r?  rG  rM  rn   r   ro  r   r#   r   rS  rX  ra  re  ri  rl  rq  r  r$   r   r   r  r  r"  r  r   r   r  rz   rh   r6   r3   r'  r'  !  si    [[' '*'"68*8 [[l#l#113l#113 MM,,	

+
+-**	*
*"C8 [[V%RS[[WtWo6$< 7 T$<L [[HHc3Z <c*AqM	

 [[Z$56 6
6 [[Y(<=[[Z$55 6 >5& [[ JK8 L82 [[Ij)9Z+@ABC:./0C:%56	
 [[UQRXXa[$9: ;r6   r'  c                   $   \ rS rSr\R
                  R                  S/ SQ5      S 5       rS r\R
                  R                  S/ SQ5      S 5       r	S	 r
\R
                  R                  S/ SQ5      S
 5       r\R
                  R                  S5      \R
                  R                  S/ SPSSS04PSPSSS04PSPSPSPSPSPSSS04PSPSSS04PSPSPSPSPSPSPSPS PS!PS"PS#PS$PS%PS&PS'SS(04PS)S*S*S(S+S,.4PS-S.S(S+S/.4PS0S(S(S1.4PS2PS3S4S504PS3SS04P5      \R
                  R                  S6S7S8/5      \R
                  R                  S9S.S/5      \R
                  R                  S/ SQ5      \R
                  R                  S:S;S</5      S= 5       5       5       5       5       5       r\R
                  R                  S>\R                  " \R"                  R%                  5       \R"                  R'                  S(S?9/5      \R                  " \R"                  R)                  S*S@9\R"                  R%                  5       /5      \R                  " \R"                  R)                  S*S@9\R"                  R)                  S*S@9/5      /5      \R
                  R                  SA\R,                  \R0                  \R2                  /5      SB 5       5       r\R
                  R                  SCSD\" SSESF9\" SG5      \" SH5      \" SI5      \" SJ5      /S;4SD\" SSK9\" SL5      \" SM5      \" SN5      \" SO5      /SP4SQ\" SSESF9\" SR5      \" SS5      \" ST5      \" SU5      /S;4SQ\" SSK9\" SV5      \" SW5      \" SX5      \" SY5      /SZ4/5      S[ 5       rS\ rS]rg;)^"TestDatetime64DateOffsetArithmetici  r^  smsusrL   c                    [        [        S5      [        S5      /5      R                  R                  U5      n[        [        S5      [        S5      /5      R                  R                  U5      n[        R
                  " X15      n[        R
                  " XA5      nU[        R                  R                  S5      -   n[        R                  " XT5        [        R                  R                  S5      U-   n[        R                  " Xd5        g )N20130101 9:0120130101 9:02z20130101 9:01:05z20130101 9:02:05rU   )
r   r   dtrF  r&   r'   rw   offsetsSecondr(   )r)   r+   r^  re   r2   r1   result2s          r3   'test_dt64arr_series_add_tick_DateOffsetJTestDatetime64DateOffsetArithmetic.test_dt64arr_series_add_tick_DateOffset  s     '?)CD

"WWT] 	 )*I6H,IJ

"WWT] 	 ooc2??8<rzz((++
)**##A&,
*r6   c                 h   [        [        S5      [        S5      /5      n[        [        S5      [        S5      /5      n[        R                  " X!5      n[        R                  " X15      nU[        R
                  R                  S5      -
  n[        R                  " XC5        [        R
                  R                  S5      * U-   n[        R                  " XS5        Sn[        R                  " [        US9   [        R
                  R                  S5      U-
    S S S 5        g ! , (       d  f       g = f)Nr  r  z20130101 9:00:55z20130101 9:01:55rU   ((bad|unsupported) operand type for unaryrV   )r   r   r&   r'   rw   r  r  r(   rY   rZ   r[   )r)   r+   re   r2   r1   r  r\   s          r3   'test_dt64arr_series_sub_tick_DateOffsetJTestDatetime64DateOffsetArithmetic.test_dt64arr_series_sub_tick_DateOffset  s     i0)O2LMN)*I6H,IJ
 ooc2??8<rzz((++
)::$$Q''#-
*8]]9C0JJa 3& 100s   7#D##
D1cls_name)DayHourMinuter  MilliMicroNanoc                     [        [        S5      [        S5      /5      n[        R                  " X25      n[	        [
        R                  U5      nX4" S5      -     U" S5      U-     X4" S5      -
    g )Nr  r  rU   )r   r   r&   r'   r   rw   r  )r)   r  r+   re   
offset_clss        r3   *test_dt64arr_add_sub_tick_DateOffset_smokeMTestDatetime64DateOffsetArithmetic.test_dt64arr_add_sub_tick_DateOffset_smoke  s_     i0)O2LMNooc2RZZ2
jm1jmr6   c                 .   UnUS:X  a[  [        SSUS9nU[        R                  R                  S5      -   nUS   [        R                  R                  S5      -   US   :X  d   e[        SSUSS	9n[	        / S
QSUS9R                  S5      n[        R                  " XB5      n[        R                  " Xb5      n[        R                  R                  S5      [        R                  " SS5      [        SS94 H  nXG-   n[        R                  " XV5        Xt-   n[        R                  " XV5        XW-
  n[        R                  " X5        SR                  SS/5      n	[        R                  " [        U	S9   Xt-
    S S S 5        M     g ! , (       d  f       M  = f)Nr   z
2012-11-01r   r   rU   r   z2010-11-01 00:00rT   rC  )z2010-11-01 05:00z2010-11-01 06:00z2010-11-01 07:00)rI   r!   rL   )hoursrz  zbad operand type for unary -zcannot subtract DatetimeArrayrV   )r   rw   r  r  r   rF  r&   r'   r#   rE  r   r(   r{  rY   rZ   r[   )
r)   r  r+   r!   r   offsetr2   scalar	roundtripr\   s
             r3   test_dti_add_tick_tzaware<TestDatetime64DateOffsetArithmetic.test_dti_add_tick_tzaware  sR   |Q2>ERZZ__Q//F8bjjooa00F1I===-qRcJ H
 '$-	 	 6??8<zzq)2>>!S+A9STCUVF^FOOF-^FOOF-IOOI-((/1PQC y4 54 W 54s   3F
F	c                 p   [        [        S5      [        S5      [        S5      [        S5      [        S5      [        S5      [        S5      [        S5      /5      R                  U5      n[        R                  " X15      nU[
        R                  L a  UR                  S	   OUn/ S
Qn[        U5       GH  u  nu  px[        S0 Xx0D6n	Un
US:X  a  US:w  a  Sn
[        U Vs/ s H  oU	-   PM	     sn5      R                  U
5      n[        R                  " X5      n[        R                  " XU	-   5        [        U Vs/ s H  oU	-
  PM	     sn5      R                  U
5      n[        R                  " X5      n[        R                  " XU	-
  5        [        S0 [        US US-    5      D6n	[        U Vs/ s H  oU	-   PM	     sn5      R                  U
5      n[        R                  " X5      n[        R                  " XU	-   5        [        U Vs/ s H  oU	-
  PM	     sn5      R                  U
5      n[        R                  " X5      n[        R                  " XU	-
  5        Sn[        R                  " [        US9   X-
    S S S 5        GM     g s  snf s  snf s  snf s  snf ! , (       d  f       GM  = f)N2000-01-05 00:15:002000-01-31 00:23:00r  
2000-03-31
2000-02-29
2000-12-31
2000-05-15
2001-06-15r   ))yearsr:   )monthsrU   )r<   r   )r  rU   )minutesr@   )secondsr:   )microsecondsrU   r  rL   r  r=   r  rV   rh   )r   r   rF  r&   r'   rw   r   iloc	enumerater   r(   dictrY   rZ   r[   )r)   r+   r^  vec	vec_itemsrelative_kwargsr  offset_unitvalueoffexp_unitr   r2   r\   s                 r3   *test_dt64arr_add_sub_relativedelta_offsetsMTestDatetime64DateOffsetArithmetic.test_dt64arr_add_sub_relativedelta_offsets"  sF    /0/0,',',',',','	
 '$- 	 ooc2#1R\\#ACHHQKs	
 (1'A#A#434CHn, %y%Ay!#gy%ABJJ8THx@HOOHCi0$y%Ay!#gy%ABJJ8THx@HOOHCi0>tOGa!e$<=>C$y%Ay!#gy%ABJJ8THx@HOOHCi0$y%Ay!#gy%ABJJ8THx@HOOHCi0<Cy4	 545 (B &B &B &B &B 54s$   "J
>J
4J
J 
>J%%
J5	r  cls_and_kwargs	YearBeginmonthrU   YearEnd
MonthBeginMonthEndSemiMonthEndSemiMonthBeginWeekweekdayr   r   BusinessDayBDay
QuarterEndQuarterBeginCustomBusinessDayCDay
CBMonthEndCBMonthBeginBMonthBegin	BMonthEndBusinessHour
BYearBeginBYearEndBQuarterBeginLastWeekOfMonthr:   FY5253Quarterr=   nearest)qtr_with_extra_weekstartingMonthr  	variationFY5253r   )r  r  r  WeekOfMonth)r  weekEasterr   dayr   	normalizeTFnr!   Nz
US/Centralc                    [        U[        5      (       a  Uu  pxOUn0 nUS:X  a  US;   a  g [        [        S5      [        S5      [        S5      [        S5      [        S5      [        S5      [        S	5      [        S
5      /5      R	                  U5      R                  U5      n	[        R                  " X5      n	U[        R                  L a  U	R                  S   OU	n
[        [        R                  U5      nU" U4SU0UD6n[        U
 Vs/ s H  oU-   PM	     sn5      R	                  U5      n[        R                  " X5      n[        R                  " XU-   5        [        R                  " XU	-   5        [        U
 Vs/ s H  oU-
  PM	     sn5      R	                  U5      n[        R                  " X5      n[        R                  " XU-
  5        [        U
 Vs/ s H  oU-   PM	     sn5      R	                  U5      n[        R                  " X5      n[        R                  " XU	-   5        Sn[        R                  " [         US9   X-
    S S S 5        g s  snf s  snf s  snf ! , (       d  f       g = f)Nr   )r  r  r  r  r  r  r  r  r  r  r  r  r  r  rV   )r   tupler   r   rF  r   r&   r'   rw   r   r  r   r  r(   rY   rZ   r[   )r)   r+   r  r  r  r^  r!   r  kwargsr  r  r  r  r   r2   r\   s                   r3    test_dt64arr_add_sub_DateOffsetsCTestDatetime64DateOffsetArithmetic.test_dt64arr_add_sub_DateOffsets`  s   r ne,,  .Hf%HF6h #
 
  3434l+l+l+l+l+l+	 WT][_ 	  ooc2#1R\\#ACHHQKs	RZZ2
A==f= !i!@if*i!@AII$O??8<
,/
3,/ i!@if*i!@AII$O??8<
,/ i!@i1*i!@AII$O??8<
3,/8]]9C0L 10 "A
 "A "A 10s   III$I))
I7r.   r  )r  r   c           
      
   Un[        SSUS9n[        R                  " Xb5      n[        [	        [        U5      5       Vs/ s H  o" Xh   XH   5      PM     sn5      n	[        R                  " X5      R                  [        5      n	[        R                  " [        5         U" Xt5      n
S S S 5        [        R                  " W
U	5        [        R                  " XB5      nU[        R                  L a,  U[        R                  L a  [        R                  " U	[        S9n	[        R                  " [        5         U" Xt5      n
S S S 5        [        R                  " X5        g s  snf ! , (       d  f       N= f! , (       d  f       N;= f)N
2017-01-01r:   r   ra   )r   r&   r'   r   rs   r   ru   ro   r   r
   r(   rw   r$   r   radd)r)   r*   r+   r   r.   r!   r-   r/   r  r2   ress              r3   !test_dt64arr_add_sub_offset_arrayDTestDatetime64DateOffsetArithmetic.test_dt64arr_add_sub_offset_array  s   " qR84 c#h!P1"SVUX"6!PQ??8<CCFK''(:;U"C <
X& 6RXX%"	*>xx7H''(:;U"C <
& "Q <; <;s   E	E#6	E4#
E14
Fzop, offset, exp, exp_freq__add__r@   )r  r<   z
2014-04-11z
2015-04-11z
2016-04-11z
2017-04-11)r  z
2014-04-01z
2015-04-01z
2016-04-01z
2017-04-01zYS-APR__sub__z
2013-09-21z
2014-09-21z
2015-09-21z
2016-09-21z
2013-10-01z
2014-10-01z
2015-10-01z
2016-10-01zYS-OCTc                     Un[        SSSUS9n[        R                  " XS5      n[        X5      n	U	" U5      n
[	        X7S9R                  S5      n[        R                  " XS5      n[        R                  " X5        g )Nz01 Jan 2014z01 Jan 2017YS)startendrI   r!   Fr`   rL   )r   r&   r'   r   r   rF  r(   )r)   r   r  expexp_freqr  r+   r!   rp   mthr1   r2   s               r3   #test_dti_add_sub_nonzero_mth_offsetFTestDatetime64DateOffsetArithmetic.test_dti_add_sub_nonzero_mth_offset  so    j =tPRStU;dV ,44T:??8UC
)r6   c                     [        / SQSS9nU[        SS9-   n[        / SQSS9n[        R                  " X#5        U[        SSS9-   n[        / S	QSS9n[        R                  " X#5        g )
N)z2000-01-01 00:00:00.012345678z2000-01-31 00:00:00.012345678z2000-02-29 00:00:00.012345678r  ra   r   )milliseconds)z2000-01-01 00:00:00.016345678z2000-01-31 00:00:00.016345678z2000-02-29 00:00:00.016345678r=   )r<   r  )z2000-01-02 00:00:00.016345678z2000-02-01 00:00:00.016345678z2000-03-01 00:00:00.016345678)r   r   r&   assert_index_equal)r)   r-   r1   r2   s       r3   -test_dt64arr_series_add_DateOffset_with_milliPTestDatetime64DateOffsetArithmetic.test_dt64arr_series_add_DateOffset_with_milli5  s    
 #
 zq11 
 #
 	f/zqq99 
 #
 	f/r6   rh   )ri   rj   rk   rl   rY   rm   rn   r  r  r  r  r  r"  r  r#   r$   rw   r  r  r  r   r   addr   r  subr  r   r  r  rz   rh   r6   r3   r  r    s   
 [[V%<=+ >+&'( [[Q		H [[V%<=6 >6z [[ JK[[*	
*	
7A,'*	
 *	
 !%	*	

 *	
 *	
 *	
 *	
 *	
 i^$*	
 *	
 i^$*	
 *	
 *	
 *	
  !*	
"  #*	
$ %*	
& '*	
( )*	
* +*	
, -*	
. /*	
0 1*	
2 3*	
4 5*	
6 A/7*	
:  +,%& !*	9*	
J 1qyQRK*	
L 156M*	
N O*	
P E1:&Q*	
R GQ<(S*	
-\ [[[4-8[[S1a&)[[V%<=[[TD,#78< 9 > * 9]- Lf<| [[HHbjj))+RZZ^^a^-@ABHHbjj++!+4bjj6I6I6KLMHH&&Q&/1F1FQ1F1OP	
	 [[THLL)..(,,#OP' Q	'4 [[# !"-l+l+l+l+	 
 !$l+l+l+l+	 
 !"-l+l+l+l+	 
 !$l+l+l+l+	 
E-	
0b*c0b*0r6   r  c                   ,    \ rS rSrS rS rS rS rSrg)TestDatetime64OverflowHandlingiV  c                 "   [        [        S5      /SS9n[        [        /5      n[        R                  " X!5      n[        R                  " X15      n[        [        /SS9n[        R                  " XA5      nX#-
  n[        R                  " XT5        g )Nz
1969-12-31M8[ns]ra   r  )r   r   r   r&   r'   r   r(   )r)   r+   r   r   r2   r1   s         r3   test_dt64_overflow_masking9TestDatetime64OverflowHandling.test_dt64_overflow_maskingY  sl    y./x@ut46!3%x8??8<
)r6   c                 l   [        S5      n[        S5      n[        SSSS9n[        U5      nSn[        R
                  " [        US9   XA-
    S S S 5        [        R
                  " [        US9   X-
    S S S 5        [        R
                  " [        US9   XB-     S S S 5        [        R
                  " [        US9   X$-     S S S 5        [        UR                  S	'   [        / S
QSS9nXB-   n[        R                  " Xv5        X$-   n[        R                  " Xv5        [        UR                  SS & [        / SQSS9nXA-
  n[        R                  " Xv5        X-
  n[        R                  " Xv* 5        g ! , (       d  f       GN)= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       N= f)Nz
1700-01-31z
20000 Daysz
1949-09-30100YEr   rH   Overflow in int64 additionrV   r8   )z
2004-10-03z
2104-10-04z
2204-10-04r   r  ra   r=   )z
91279 Daysr   r   r   timedelta64[ns])r   r   r   r   rY   rZ   OverflowErrorr   r  r&   r   )r)   r  tdr-   re   r\   r2   r  s           r3   test_dt64_series_arith_overflow>TestDatetime64OverflowHandling.test_dt64_series_arith_overflowg  sD   |$|$GQ?Sk*]]=4H 5]]=4H 5]]=4H 5]]=4H 5 =EU
 h
s-h
s-=EVWh
s-h
sI./ 54444444s0   E/.FF:F%/
E>
F
F"%
F3c                    [         R                  " S[        R                  /5      R	                  S5      n[         R                  " S[        R
                  /5      R	                  S5      n[        S5      R	                  S5      nUUR                  5       UR                  5       R                  S5      UR                  5       R                  S5      /n[        S5      R	                  S5      nUUR                  5       UR                  5       R                  S5      UR                  5       R                  S5      /nSnU H)  n[        R                  " [        US9   X-
    S S S 5        M+     [        R                  R                  UR                  -
  n	U H  nX-
  n
U
S	   R                  U	:X  a  M   e   [        R
                  R                  UR                  -
  n	U H  nX(-
  n
U
S	   R                  U	:X  a  M   e   U H)  n[        R                  " [        US9   X(-
    S S S 5        M+     g ! , (       d  f       M  = f! , (       d  f       MO  = f)
N2021-12-28 17:19rL   
1950-01-01r  zdatetime64[D]
1980-01-01r*  rV   r=   )rw   to_datetimer   maxrF  minro  r   ru   rY   rZ   r,  _value)r)   dtimaxdtimintsnegts_neg_variantstsposts_pos_variantsr\   variantr2   r  s              r3   )test_datetimeindex_sub_timestamp_overflowHTestDatetime64OverflowHandling.test_datetimeindex_sub_timestamp_overflow  s   !3Y]] CDLLTR!3Y]] CDLLTR,'//5!!(()9:!((9	
 ,'//5!!(()9:!((9	
 +&G}C8  98 ' ==''%,,6&G"Cq6==H,,, ' ==''%,,6&G"Cq6==H,,, ' 'G}C8  98 ' 98 98s   H.I .
H=	 
I	c                 N   [         R                  " S[        R                  /5      R	                  S5      n[         R                  " S[        R
                  /5      R	                  S5      n[         R                  " SS/5      R	                  S5      n[         R                  " SS/5      R	                  S5      n[        R                  R                  US   R                  -
  nX-
  nUS   R                  U:X  d   e[        R
                  R                  US   R                  -
  nX#-
  nUS   R                  U:X  d   eSn[        R                  " [        US9   X-
    S S S 5        [        R                  " [        US9   X$-
    S S S 5        [         R                  " [        R
                  /5      nU[        R                  -   [        S5      -   n	[        R                  " [        US9   X-
    S S S 5        [         R                  " [        R                  /5      n
U
[        R
                  -   [        S5      -
  n[        R                  " [        US9   X-
    S S S 5        g ! , (       d  f       GN
= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       g = f)	Nr1  rL   r2  r3  r=   r*  rV   1us)rw   r4  r   r5  rF  r6  r7  rY   rZ   r,  r   )r)   r8  r9  ts_negts_posr2   r1   r\   tminr9  tmaxr:  s               r3   -test_datetimeindex_sub_datetimeindex_overflowLTestDatetime64OverflowHandling.test_datetimeindex_sub_datetimeindex_overflow  s   !3Y]] CDLLTR!3Y]] CDLLTR| <=EEdK| <=EEdK ==''&)*:*::ay8+++==''&)*:*::ay8+++*]]=4O 5 ]]=4O 5 ~~y}}o.IMM!Ie$44]]=4I 5 ~~y}}o.IMM!Ie$44]]=4I 54 54 54 54
 54s0   I" I4*JJ"
I14
J
J
J$rh   N)	ri   rj   rk   rl   r&  r.  r?  rG  rz   rh   r6   r3   r#  r#  V  s    */@$!L r6   r#  c                   f   \ rS rSrS rS rS r\R                  R                  S\
" S5      \
" S5      \/\
" S5      \
" S	5      \
" S
5      /SS//\
" S5      \
" S5      \/\" SSS9\" SSS9\// SQ/\
" SSS9\
" SSS9\/\" SSS9\\" SSS9// SQ//5      S 5       rS rS rS rS rS rS rSrg)TestTimestampSeriesArithmetici  c                 P   [        SS9n[        SS9nU" U5      nU" U5      n[        R                  " X"U-   5        [        R                  " X"U-
  5        [        R                  " X#U-   5        Sn[        R                  " [
        US9   X2-
    S S S 5        g ! , (       d  f       g = f)Nr%  ra   r  rD  rV   )r   r&   r(   rY   rZ   r[   )r)   r+   abr\   s        r3   test_empty_series_add_sub7TestTimestampSeriesArithmetic.test_empty_series_add_sub  s~    ""11
q5!
q5!
q5!]]9C0E 100s   	B
B%c                    [        [        SSS9/S-  5      n[        R                  UR                  S'   [        [        S5      [        S5      [        S5      /5      n[        R                  UR                  S'   [        [        S5      [        S	5      [        S
5      /5      nX#-
    X2-
    X!-     X-     X!-
    X-     X!-     g )NrU   r   r  r  r:   20111230r   20120103201112312012010220120104)r   r   r#   rq   r  r   )r)   td1dt1dt2s       r3   test_operators_datetimelike9TestTimestampSeriesArithmetic.test_operators_datetimelike  s    i156:;ff *%*%*%
 ff*%*%*%
 			 				 			r6   c           
          [        [        SSSSSS5      5      n[        SSSSS5      n[        U/S	U S
3S9nXC-
  n[        R                  " US5      nUR
                  SU S
3:X  d   eg )Ni  r=            r   r      M8[r]  ra   r  r\  )r   r   r   r&   get_finest_unitrb   )r)   r^  rd   r  re   r1   r  s          r3   test_dt64ser_sub_datetime_dtype=TestTimestampSeriesArithmetic.test_dt64ser_sub_datetime_dtype  sy    xaBB78dAr2r*bT3tfA/ %%dD1||hZq9999r6   zleft, right, op_failrR  r   rT  rU  rV  r  __rsub__rU   r   rQ  )r  __radd__r  r3  r`   c                     Un[        U5      n[        U5      n[        XeS 5      nXS;  a+  [        R                  " [        SS9   U" U5        S S S 5        g U" U5        g ! , (       d  f       g = f)Nz%operate|[cC]annot|unsupported operandrV   )r   r   rY   rZ   r[   )	r)   r   r   op_failall_arithmetic_operatorsop_strarg1arg2r   s	            r3   #test_operators_datetimelike_invalidATestTimestampSeriesArithmetic.test_operators_datetimelike_invalid  sj    8 *d|e} T4(  !H 4  tH s   	A
A,c                    [        [        SSS9/5      R                  R                  U5      n[        [        SSS9/5      R                  R                  U5      nX#-
  n[        [	        S5      /5      R                  R                  U5      n[
        R                  " XE5        X2-
  n[        [	        S5      /5      R                  R                  U5      n[
        R                  " XE5        g )Nz
2016-02-10zAmerica/Sao_Paulor`   z
2016-02-082daysz-2days)r   r   r  rF  r   r&   r   )r)   r^  s1s2r1   r2   s         r3   test_sub_single_tz0TestTimestampSeriesArithmetic.test_sub_single_tz<  s    Y|0CDEFIIQQRVWY|0CDEFIIQQRVW9W-./22::4@
v09X./033;;DA
v0r6   c                     [        SSSS9n[        U5      n[        [        S/S-  5      5      nX-
  n[        R                  " XC5        X!-
  n[        R                  " XC5        g )Nz
1999-09-30r@   r   r   0days)r   r   r   r&   r   )r)   r-   re   r2   r  s        r3   test_dt64tz_series_sub_dtitz:TestTimestampSeriesArithmetic.test_dt64tz_series_sub_dtitzG  sZ     rlCSk.'R89i
s-i
s-r6   c           
         [        [        SSSS[        R                  S9[        /5      R
                  R                  U5      n[        SSSS[        R                  S9n[        R                  " US5      n[        [        S5      [        /5      R
                  R                  U5      nX#-
  n[        R                  " Xe5        U[        U5      -
  n[        R                  " Xu5        g )	Nr            )r   r`  r  r   )r   r   pytzutcr   r  rF  r&   rb  r   r   r   )r)   r^  re   r  r  r  r1   r  s           r3   test_sub_datetime_compat6TestTimestampSeriesArithmetic.test_sub_datetime_compatS  s    htQBtxx@#FGJJRRSWXdAr2dhh7%%dD1i)3/033;;HE
v+	"%
w,r6   c                 N   [        [        S5      [        S5      /5      nU[        R                  R	                  S5      -   n[        R                  R	                  S5      U-   n[        [        S5      [        S5      /5      n[
        R                  " X$5        [
        R                  " X45        U[        R                  R                  S5      -   [        R                  R	                  S5      -   n[        [        S5      [        S5      /5      n[
        R                  " X$5        g )Nr  r  rU   z20130101 9:01:00.005z20130101 9:02:00.005z20130101 9:06:00.005z20130101 9:07:00.005)r   r   rw   r  r  r&   r   r  )r)   r  r1   r  r2   s        r3   *test_dt64_series_add_mixed_tick_DateOffsetHTestTimestampSeriesArithmetic.test_dt64_series_add_mixed_tick_DateOffset_  s     Io.	/0JKLRZZ%%a((**""1%)-.	:P0QR
 	v0
w1RZZ&&q))BJJ,<,<Q,??-.	:P0QR
 	v0r6   c                    [        [        [        S5      /5      R                  R	                  U5      n[        [        [        /SU S3S9n[        [        /SU S3S9n[
        R                  " [        * U-   U5        Sn[        R                  " [        US9   U* U-     S S S 5        [
        R                  " [        * U-   U5        [        R                  " [        US9   U* U-     S S S 5        [
        R                  " U[        -   U5        [
        R                  " [        U-   U5        [
        R                  " U[        -   U5        [
        R                  " [        U-   U5        g ! , (       d  f       N= f! , (       d  f       N= f)Nr[  zdatetime64[r]  ra   z-bad operand type for unary -: 'DatetimeArray'rV   )
r   r   r   r  rF  r&   r   rY   rZ   r[   )r)   r^  datetime_seriesnat_series_dtype_timestampsingle_nat_dtype_datetimer\   s         r3   test_datetime64_ops_nat5TestTimestampSeriesArithmetic.test_datetime64_ops_natr  sV    #y'<!=>AAII$O%+S#JD6QR>S%T"$*C5+dV18M$N! 	to57QR=]]9C0&&8 1 	D--/I	
 ]]9C0&&)CC 1 	&,.H	
 	,,.H	
 	&,.H	
 	,,.H	
) 10 10s   E( E9(
E69
Fc                 	   Sn[        [        SSUS9SS9nUR                  5       n[        R                  UR
                  S'   [        [        R                  " SSS	S
95      nUR                  5       n[        R                  UR
                  S'   UR                  R                  b   eX$S   -   nUR                  R                  S 5      US   -   R                  R                  U5      n[        R                  " Xg5        X5S   -   nUR                  R                  S 5      US   -   R                  R                  U5      n[        R                  " Xg5        US   U-   nUR                  R                  S 5      US   -   R                  R                  U5      n[        R                  " Xg5        US   U-   nUR                  R                  S 5      US   -   R                  R                  U5      n[        R                  " Xg5        X$S   -
  nUR                  R                  S 5      US   -
  R                  R                  U5      n[        R                  " Xg5        Sn[        R                  " [         US9   US   U-
    S S S 5        X5S   -
  nUR                  R                  S 5      US   -
  R                  R                  U5      n[        R                  " Xg5        [        R                  " [         US9   US   U-
    S S S 5        X$-   nUR                  R                  S 5      U-   R                  R                  U5      n[        R                  " Xg5        X5-   nUR                  R                  S 5      U-   R                  R                  U5      n[        R                  " Xg5        X$-
  nUR                  R                  S 5      U-
  R                  R                  U5      n[        R                  " Xg5        X5-
  nUR                  R                  S 5      U-
  R                  R                  U5      n[        R                  " Xg5        Sn[        R                  " [         US9   XB-
    S S S 5        [        R                  " [         US9   XS-
    S S S 5        g ! , (       d  f       GN#= f! , (       d  f       GN= f! , (       d  f       NY= f! , (       d  f       g = f)Nr3  z2000-01-01 09:00:00rU   r   r7   r   r:   z1 days 1 minrT   )r    rI   r=   r   r  rV   r  )r   r   r   r#   rq   r  rw   rx   _valuesrI   r  r   r&   r   rY   rZ   r[   )	r)   r!   rX  rY  rW  td2r1   r  r\   s	            r3   *test_operators_datetimelike_with_timezonesHTestTimestampSeriesArithmetic.test_operators_datetimelike_with_timezones  s   Z 5qRHuUhhjffR''LMhhjff{{'''1vvv!!$'#a&044@@D
v+1vvv!!$'#a&044@@D
v+ Q#vv!!$'#a&044@@D
v+Q#vv!!$'#a&044@@D
v+1vvv!!$'#a&044@@D
v+8]]9C0FSL 1 1vvv!!$'#a&044@@D
v+]]9C0FSL 1 vv!!$'#-11==bA
v+vv!!$'#-11==bA
v+vv!!$'#-11==bA
v+vv!!$'#-11==bA
v+%]]9C0I 1]]9C0I 107 10 10& 1000s0   8	R9	R/)SS
R,/
R>
S
S rh   N)ri   rj   rk   rl   rN  rZ  rc  rY   rm   rn   r   r   r   rm  rs  rw  r  r  r  r  rz   rh   r6   r3   rJ  rJ    s   B	: [[ :&	*(=sC:&	*(=y?TUJ' :&	*(=sC1a0)Aq2QSVW2 j\:j\:
 1a0#yTU7VW2	
010,	1
.
-1&
H<r6   rJ  c                      \ rS rSrS rS rS rS rS rS r	\
R                  R                  S\R                  \R                  /5      S	 5       rS
 rS rS r\
R                  R                  S\R                  \R*                  \R                  /5      S 5       r\
R                  R                  S\R0                  \R4                  /5      S 5       rSrg)TestDatetimeIndexArithmetici  c                    Un[        [        SUS9/S-  5      n[        R                  " SSS9n[	        SSUS9nUR                  S 5      nX4-   n[        R                  " Xe5        XC-   n[        R                  " Xe5        X4R                  -   n[        R                  " Xe5        UR                  U-   n[        R                  " Xe5        g Nr  r`   r@   0 daysrE   r   	r   r   rw   rx   r   rQ  r&   r  r   r)   r*   r!   r-   rK  r2   r1   s          r3   test_dti_add_tdi,TestDatetimeIndexArithmetic.test_dti_add_tdi  s    Y|;<rAB  26lB2>&&t, 
f/
f/ zz!
f/c!
f/r6   c                 ,   Un[        [        SUS9/S-  5      n[        R                  " SSS9n[	        SSUS9nUR                  S 5      n[        [        SUS9/S-  5      nXd-  n[        R                  " Xe5        [        R                  " SSS9nXc-  n[        R                  " Xe5        [        [        SUS9/S-  5      nXdR                  -  n[        R                  " Xe5        [        R                  " SSS9nXc-  n[        R                  " Xe5        g r  r  r  s          r3   test_dti_iadd_tdi-TestDatetimeIndexArithmetic.test_dti_iadd_tdi  s   Y|;<rAB  26lB2>&&t, 	,2 >?"DE
f/##Hb9
f/ 	,2 >?"DE**
f/##Hb9
f/r6   c                    Un[        [        SUS9/S-  5      n[        R                  " SSS9n[	        SSUSS9nUR                  S 5      nX4-
  n[        R                  " Xe5        Sn[        R                  " [        US	9   XC-
    S S S 5        X4R                  -
  n[        R                  " Xe5        S
n[        R                  " [        US	9   UR                  U-
    S S S 5        g ! , (       d  f       Nf= f! , (       d  f       g = f)Nr  r`   r@   r  rE   -1DrC  z cannot subtract .*TimedeltaArrayrV   0cannot subtract a datelike from a TimedeltaArray)r   r   rw   rx   r   rQ  r&   r  rY   rZ   r[   r   )r)   r*   r!   r-   rK  r2   r1   r\   s           r3   test_dti_sub_tdi,TestDatetimeIndexArithmetic.test_dti_sub_tdi	  s    Y|;<rAB  26lB2EJ&&t, 
f/0]]9C0I 1 zz!
f/@]]9C0JJ 10 10 10s   C&C7&
C47
Dc                 |   Un[        [        SUS9/S-  5      R                  U5      n[        R                  " SSUS9n[        SSUSUS9nUR                  S 5      n[        [        SUS9/S-  5      R                  U5      nXu-  n[        R                  " Xv5        UR                  R                  5       nX-  n[        R                  " XR                  5        UR                  R                  5       n	[        R                  " XU	S9  [        R                  " XR                  5        S	n
[        R                  " [         U
S
9   XT-  nS S S 5        [        [        SUS9/S-  5      R                  U5      nXuR"                  -  n[        R                  " Xv5        [        R                  " [         U
S
9   U=R"                  U-  sl        S S S 5        [        R                  " [         U
S
9   U=R$                  U-  sl        S S S 5        g ! , (       d  f       N= f! , (       d  f       NW= f! , (       d  f       g = f)Nr  r`   r@   r  r    r^  r  )r    r!   rI   r^  )outr  rV   )r   r   rF  rw   rx   r   rQ  r&   r  rN   r   assert_datetime_array_equalr#   subtractrY   rZ   r[   r   r  )r)   r*   r^  r!   r-   rK  r2   r1   rO   r  r\   s              r3   test_dti_isub_tdi-TestDatetimeIndexArithmetic.test_dti_isub_tdi!  s   Y|;<rABJJ4P  2DAlB2EPTU&&t, 	,2 >?"DEMMdS
f/ iinn

&&sNN;iinn
C#&
&&sNN;@]]9C0JC 1 	,2 >?"DEMMdS**
f/]]9C0JJ#J 1 ]]9C0KK3K 10 10 10 10s$   H5H,H-
H
H*-
H;c                     [        SSUS9nUR                  nX2-
  nX"-
  n[        R                  " XE5        UnX6-   nX&-   n[        R                  " XE5        X6-
  nX&-
  n[        R                  " XE5        g )Nr   r   r   )r   r$   r&   r  )r)   r*   r-   rO   r1   r2   rK  s          r3   test_dta_add_sub_index2TestDatetimeIndexArithmetic.test_dta_add_sub_indexM  ss    Q3CDii9
f/9
f/9
f/r6   c                    [        SSUS9n[        SSUS9R                  S5      n[        / SQ5      R                  U5      nX"-
  n[        R
                  " XT5        X3-
  n[        R
                  " XT5        Sn[        R                  " [        US9   X2-
    S S S 5        [        R                  " [        US9   X#-
    S S S 5        X"-  n[        R
                  " X$5        [        SSUS9n[        SSUS9nS	n[        R                  " [        US9   Xx-
    S S S 5        [        S
[        R                  S/5      R                  U5      n[        SS[        R                  /5      R                  U5      n[        S[        R                  [        R                  /5      R                  U5      nX-
  n[        R
                  " XT5        g ! , (       d  f       GN7= f! , (       d  f       GN#= f! , (       d  f       N= f)Nr   r   r  r3  )r   r   r   r7  rV   r   z$cannot add indices of unequal lengthr  z
2012-01-03z
2012-01-02r   )r   r   r   rF  r&   r  rY   rZ   r[   r   r   r#   rq   )	r)   r^  r-   r_  r2   r1   r\   dti1rp  s	            r3   test_sub_dti_dti,TestDatetimeIndexArithmetic.test_sub_dti_dti^  s    QT:J=II,W!),44T:
f/
f/K]]9C0L 1 ]]9C0L 1 	

c, *ad;*ad;4]]:S1K 2 lBFFLABJJ4PlL"&&ABJJ4P!8RVVRVV"<=EEdK
f/- 10 10 21s$   G7GG*
G
G'*
G8r   c           	      F  ^ [        [        S5      [        S5      [        S5      [        S5      /5      nU" U5      n/ SQmU4S jn[        [        S5      /S-  6  HB  u  pgpn
U" XgXU
5      n[	        XgXU
S	9nU" XK5      nU" XL5      n[
        R                  " X5        MD     g )
N20130301z20130228 23:00:00z20130228 22:00:00z20130228 21:00:00)rG   rT   mr  r  c                     > [         R                  " [        [        [         R                  [        U T5      5      5      5      $ r  )r#   sumrr   r   rE  zip)args	intervalss    r3   rE  _TestDatetimeIndexArithmetic.test_timedelta64_equal_timedelta_supported_ops.<locals>.timedelta64  s)    66$wr~~s47KLMNNr6   r:   rU   )r<   r  r  r  r  )r   r   r   rs   r   r&   r(   )r)   r   r+   re   rP   rE  drT   r  r  r  nptdpytdr   r   r  s                  @r3   .test_timedelta64_equal_timedelta_supported_opsJTestDatetimeIndexArithmetic.test_timedelta64_equal_timedelta_supported_ops  s    *%-.-.-.	
 S!.		O &q
Q8NA!qQ2.D!aQSTDS-CS-COOC% 9r6   c                    [        [        [        S5      /5      n[        [        [        S5      /5      n[        [        [        /SS9n[        [        [        /SS9n[        [        /SS9n[        [        /SS9n[        R
                  " X%-
  U5        [        R
                  " X&-
  U5        [        R
                  " U* U-   U5        [        R
                  " XE-
  U5        [        R
                  " XF-
  U5        [        R
                  " U* U-   U5        Sn[        R                  " [        US9   X-
    S S S 5        [        R
                  " XF-   U5        [        R
                  " Xd-   U5        [        R
                  " XF-   U5        [        R
                  " Xd-   U5        [        R
                  " X5-   U5        [        R
                  " XS-   U5        g ! , (       d  f       N= f)N1sr[  r+  ra   r  zcannot subtract a datelikerV   )	r   r   r   r   r&   r   rY   rZ   r[   )r)   timedelta_seriesr  nat_series_dtype_timedeltar  r  single_nat_dtype_timedeltar\   s           r3   )test_ops_nat_mixed_datetime64_timedelta64ETestDatetimeIndexArithmetic.test_ops_nat_mixed_datetime64_timedelta64  s   !3	$"89 #y'<!=>%+S#J>O%P"%+S#J>N%O"$*C58H$I!%+SE9J%K" 	79S	
 	8:T	
 	''/9;U	
 	&B&	

 	&C&	
 	''*DD&	
 +]]9C08 1 	&C&	
 	&C&	

 	&C&	
 	&C&	

 	&B&	
 	%B&	
5 10s   0G
G"c                    [        SSSSUS9n[        R                  " SS5      n[        SSSSUS9nX#-   [        R                  " X#5      4 HB  n[	        U[
        5      (       d   e[        R                  " XT5        UR                  S:X  a  MB   e   [        S	SSSUS9nX#-
  [        R                  " X#5      4 HB  n[	        U[
        5      (       d   e[        R                  " XT5        UR                  S:X  a  MB   e   UR                  S 5      n[        R                  " [        R                  " SS5      [        R                  " S
S5      [        R                  " SS5      /5      n[        / SQSS9R                  U5      nX#-   [        R                  " X#5      4 H5  n[        R                  " XT5        UR                  UR                  :X  a  M5   e   [        / SQSS9R                  U5      nX#-
  [        R                  " X#5      4 HL  n[	        U[
        5      (       d   e[        R                  " XT5        UR                  UR                  :X  a  ML   e   g )Nr   r   2Dr   )r    rI   r   r^  r=   rG   r  
2010-12-31r:   )r  z
2011-01-05z
2011-01-08r   )r  r   r  )r   r#   rE  r   r   r   r&   r  rI   r  rQ  r$   rF  )r)   r^  rR  deltar  r1   s         r3   test_ufunc_coercions0TestDatetimeIndexArithmetic.test_ufunc_coercions  s   qt#DQq#&qt#DQ{BFF3$67Ffm4444!!&.;;$&&& 8
 qt#DQ{BKK$;<Ffm4444!!&.;;$&&& = nnT"^^As#R^^As%;R^^As=ST
 6S

'$- 	 {BFF3$67F!!&.;;#((*** 8 6S

'$- 	 {BKK$;<Ffm4444!!&.;;#((*** =r6   c                     Un[        SS/X2S   S9R                  S5      n[        [        SS9/S-  XBS	   S
9n[        U[        SS9-   XBS   S
9nUS   Ul        UR
                  UR
                  :X  d   eXT-   n[        R                  " Xv5        XE-   n[        R                  " X5        U[        SS9-   nUR                  U-   n	[        R                  " X5        XER                  -   n
[        R                  " X5        g )Nz2016-06-28 05:30z2016-06-28 05:31r   )r!   r   rL   rU   )r  r:   r=   )r   r   )
r   rF  r   r   r   rb   r&   r   r   r  )r)   r*   namesr!   r   re   r2   r1   r  result3result4s              r3   test_dti_add_series/TestDatetimeIndexArithmetic.test_dti_add_series	  s    !34(

'$- 	 i*+a/u8L%)A"66ePQ(S a~~,,,
v0+
w19Q//**u$
g0**$
g0r6   c           
      <   UnUn[        SSXbS   S9nU" [        R                  R                  5       [        R                  R	                  SS9/US   S9n[        Xx5      n	[        R                  " [        5         U" Xx5      n
S S S 5        [        [        [        U5      5       Vs/ s H  o" X{   X   5      PM     snUS   SS	9n[        R                  " X5      R                  [        5      n[        R                  " W
U5        g ! , (       d  f       N= fs  snf )
Nr  r:   r   )r    r!   r   r	  r=   r   infer)r   rI   )r   rw   r  r  r  r   r&   r   r
   r   rs   r   r'   ru   ro   r(   )r)   r*   r  r   r   	other_boxr!   r-   r.   r0   r  r  r2   s                r3    test_dti_addsub_offset_arraylike<TestDatetimeIndexArithmetic.test_dti_addsub_offset_arraylike%	  s    
 $	qRAhG2::..0"**..1.2EFUSTXVc)''(:;S.C < !+0S?;?aR!?;%(QX
 ??8299&A
X& <; <s   ;	D'D
Dr  c                    Un[        SSUS9n[        R                  " XR5      nU" [        R                  R                  5       [        SS9/5      n[        Xg5      n[        SS/US9n	[        R                  " X5      R                  [        5      n	[        R                  " [        5         Xg-   n
S S S 5        [        R                  " W
U	5        [        S	S
/US9n	[        R                  " X5      R                  [        5      n	[        R                  " [        5         Xg-
  n
S S S 5        [        R                  " X5        g ! , (       d  f       N= f! , (       d  f       N6= f)Nr  r:   r   r   r;   z
2017-01-31z
2017-01-06r`   z
2016-12-31z
2016-12-29)r   r&   r'   rw   r  r  r   r   r   ru   ro   r   r
   r(   )r)   r*   r+   r  r!   r-   r/   r.   r0   r2   r1   s              r3    test_dti_addsub_object_arraylike<TestDatetimeIndexArithmetic.test_dti_addsub_object_arraylike;	  s    qR842::..0)2CDEe+ ,!=BRS??8299&A''(:;]F <
) ,!=BRS??8299&A''(:;]F <
) <; <;s   +EE
E
E!rh   N)ri   rj   rk   rl   r  r  r  r  r  r  rY   rm   rn   r   r   r!  r  r  r  r  r   r  r  rw   r   r#   r$   r  rz   rh   r6   r3   r  r    s    0,040#X0"$0T [[THLL(,,#?@& A&2C
J%+N1. [[THLL)..(,,#OP' Q'* [[[288RXX*>?* @*r6   r  r  )r8   r   r=   r  )r   r:   r^  r  c           	      *   [        [        S5      [        S5      [        S5      [        S5      [        S5      /5      R                  U5      n[        UR                  U S-  U-   UR
                  R                  S9nUR                  SUR                   S	35      n[        U5      nU Vs/ s H"  ow[        R                  R                  XS
9-   PM$     nn[        U5      R                  UR                  5      n	[        R                  " Xi5        g s  snf )Nr  r  r  r  r  r|  )resora  r]  )r  r  )r   r   rF  r	   r$  rN   _cresor%  r^  rw   r  r   r&   r  )
r  r  r^  r-   shiftedshifted_dt64actualr   rawr2   s
             r3   test_shift_monthsr  U	  s     +,+,l#l#l#	
 gdm  388URZ&%8syy?O?OPG<<#chhZq 12L<(FJM
N#Qrzz$$5$@@#C
NS!))#((3H&+ Os   *)Dc                     [        SSSS9n U R                  R                  S5      n[        R                  " [        S5       Vs/ s H#  n[        R                  R                  U5      /PM%     sn5      nUR                  UR                  :X  d   e[        R                  " [        5         X-   nS S S 5        [        R                  " [        5         US S 2S4   US S 2S4   -   R                  SS5      nS S S 5        [        R                  " WW5        [        R                  " [        5         XR                  [        5      -
  nS S S 5        WR                  S:X  d   e[!        S	 UR#                  5        5       5      (       d   eg s  snf ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       No= f)
Nz
1994-02-132Wr   rH   )r   r=   r   r8   r=   c              3   >   #    U  H  oR                   S :H  v   M     g7f)r   N)r7  ).0r-  s     r3   	<genexpr>6test_dt64arr_addsub_object_dtype_2d.<locals>.<genexpr>	  s     8"yyA~s   )r   rN   reshaper#   r$   rs   rw   r  r  shaper&   r   r
   rX   ru   ro   r   ravel)r-   rO   r  r.   r1   r2   r  s          r3   #test_dt64arr_addsub_object_dtype_2dr  k	  sI    \a
8C
))

F
#CHH58<8arzz~~a()8<=E;;#))###		#	#$6	7 
8		#	#$6	71Iad+44R; 
8 1		#	#$6	7

6** 
8 ==F"""888888 = 
8	7	7	7
 
8	7s*   *F	+F$F/F0
F
F-0
F>c                  $   [        / SQSS9n U [        R                  " SS5      -
  n[        [        /S-  SS9n[        R
                  " X5        U [        R                  " SS5      -   n[        [        /S-  SS9n[        R
                  " X5        g )Nl   CE|l   |< l   ({?M5datetime64[ms]ra   r   r  r   ztimedelta64[ms]r   r#   r   r   r&   r   rE  re   r1   r2   s      r3   (test_non_nano_dt64_addsub_np_nat_scalarsr  	  s|    
<DT
UC2==--Fseai'89H6,2>>%..Fseai'78H6,r6   c                      [        / SQSS9n U [        R                  " S5      -
  n[        [        /S-  SS9n[        R
                  " X5        U [        R                  " S5      -   n[        [        /S-  SS9n[        R
                  " X5        g )Nr  r  ra   r   r   r+  r  r  r  s      r3   1test_non_nano_dt64_addsub_np_nat_scalars_unitlessr  	  sz     <DT
UC2==''Fseai'89H6,2>>%((Fseai'78H6,r6   c                  $   [        / SQSS9n U [        R                  " SS5      -
  n[        [        /S-  SS9n[        R
                  " X5        U [        R                  " SS5      -   n[        [        /S-  SS9n[        R
                  " X5        g )N)i,0  iZ  iہ  zdatetime64[s]ra   r   rG   r   ztimedelta64[s]r  r  s      r3   9test_non_nano_dt64_addsub_np_nat_scalars_unsupported_unitr  	  sz    
&o
>C2==,,Fseai'78H6,2>>%--Fseai7H6,r6   )5r   r   r   	itertoolsr   r   r   numpyr#   rY   r}  pandas._libs.tslibs.conversionr   pandas._libs.tslibs.offsetsr	   pandas.errorsr
   pandasrw   r   r   r   r   r   r   r   r   r   pandas._testing_testingr&   pandas.corer   pandas.tests.arithmetic.commonr   r   r   r   r   r|   r   r'  r  r#  rJ  r  rm   rn   r  r  r  r  r  rh   r6   r3   <module>r     s#   
     > 4 , 
 
 
  ! m* m*`g1 g1TP Pn_ _DP0 P0fw wtB BJ}* }*@ *-:.!89, : / .,&90	-
-	-r6   