
    4id                       S SK J r JrJrJr  S SKJr  S SKrS SKrS SK	r	S SK
Jr  S SKJr  S SK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*\	RV                  RY                  S/ SQ5      \	RV                  RY                  S/ SQ5      S 5       5       r-S r.S r/S  r0S! r1g)"    )datetimetime	timedeltatimezone)productN)localize_pydatetime)shift_months)	
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)"TestDatetime64ArrayLikeComparisons.   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              i/var/www/html/dynamic-report/venv/lib/python3.13/site-packages/pandas/tests/arithmetic/test_datetime64.pytest_compare_zerodim7TestDatetime64ArrayLikeComparisons.test_compare_zerodim3   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          r2   test_dt64arr_cmp_scalar_invalidBTestDatetime64ArrayLikeComparisons.test_dt64arr_cmp_scalar_invalidB   s/    ( RB74!%?r5   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?   rH   r   r    )r   _datar%   r&   r   )r(   r-   r)   r*   r    dtaobjs          r2   "test_dt64arr_cmp_arraylike_invalidETestDatetime64ArrayLikeComparisons.test_dt64arr_cmp_arraylike_invalid\   s7    & D"DJJooc2!#n=r5   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)NrJ   h   rL   r   r<   r9   r   r:   )FFFTFzDInvalid comparison between|Cannot compare type|not supported betweenmatch)
r   rM   r"   r#   r   r%   assert_numpy_array_equalpytestraises	TypeError)r(   r)   r    rN   r-   r0   r1   msgs           r2   test_dt64arr_cmp_mixed_invalidATestDatetime64ArrayLikeComparisons.test_dt64arr_cmp_mixed_invalidu   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serrO   r/   r1   r0   s              r2   test_dt64arr_nat_comparison>TestDatetime64ArrayLikeComparisons.test_dt64arr_nat_comparison   su    |+b#Yooc'ct,4-rxx8??82
)r5    )__name__
__module____qualname____firstlineno__r3   rX   markparametrizeobjectr   r   dater"   nanrA   listrangearangeastypefloat32pdtimedelta_ranger#   period_rangerP   r\   re   __static_attributes__rg   r5   r2   r   r   .   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	
 >! >.*r5   r   c                   F   \ 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4\R                  / SQ4\R                  / SQ4\R                   / SQ4\R"                  / SQ4\R$                  / SQ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      \R4                  " 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S-rg).TestDatetime64SeriesComparison   pair
2011-01-01
2011-01-031 daysz3 daysz2011-01MrH   z2011-03reverseTFra   Nzop, expectedFFTTTFFFFc                     UnUu  pU(       a  Xp[        XS9n
U" XS9nU" X5      n[        R                  " U[        U5      5        g )Nr`   )r   r%   assert_series_equal)r(   ra   index_or_seriesr   r}   opr1   r+   lhsrhsleftrightr0   s                r2   test_nat_comparisons3TestDatetime64SeriesComparison.test_nat_comparisons   sK    N c'C%D
vvh'78r5   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 )Nr`   Tr   boolTTT)	r   r%   r&   r   r   rv   r#   rn   r'   )r(   ra   r   r*   r+   r   r/   r1   s           r2   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.r5   vali  r<      rT   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?   rD   )r   r   r%   r   )r(   r   seriesr0   xr1   s         r2   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?   rD   datesnameT)deepnatr   r   20010109)	r   r   copyr   getattroperatorr%   r   r   )	r(   r   r   rd   s_natleft_fright_fr1   r0   s	            r2   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0r5   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 alignedrU   r   )FTTr9   r   r   r!   r   )r   r   r   r%   r&   r   r'   rv   	DataFramerX   rY   
ValueError)r(   r*   r+   rd   r/   r0   r1   s          r2   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:00rK   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"   rp   r%   r   )r(   r   r   r1   rd   r0   s         r2   !test_dt64_compare_datetime_scalar@TestDatetime64SeriesComparison.test_dt64_compare_datetime_scalarf  s]    ( *%*%*%	 
 C&(-
v0r5   c                     [        S5      n[        / SQSS9n[        / SQSS9n[        R                  " U[        R
                  " X5      5        g )N
2024-07-01)z
2024-06-01r   
2024-08-01zdatetime64[us]r`   )r   r   r   )r   r   r%   r   r"   maximum)r(   rc   	ts_seriesr1   s       r2   test_ts_series_numpy_maximum;TestDatetime64SeriesComparison.test_ts_series_numpy_maximum  sK     |$6"
	
 6"

 	xB)BCr5   rg   )rh   ri   rj   rk   rX   rl   rm   r   r   r   r   rn   r   r   r   r   r   r   r   r   r   r   r   r   r   r"   
datetime64r   r   ry   rg   r5   r2   r{   r{      s    [[ <(#y/FGc9\23
 8$c9X+>?c9X./
 	,c6)#3NOc6)#67	
" [[Yu6[[WtVn5[[[[./[[-.[[/0[[/0[[./[[./	

9
 6 7#<9, [[|$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"1 Dr5   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?   rD   r9   )
r   lenr   to_datetime64r"   r#   
isinstancendarrayr%   rW   )r(   comparison_opindexelementarr
arr_resultindex_results          r2   test_comparators-TestDatetimeIndexComparisons.test_comparators  sy    <4E
a(G$224hhuo"30
$U4,

3333
##J=r5   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   r9   r   z is not tz awareTF)r   r   r"   r   rX   skiptyperh   r   tzinfor#   r%   rW   )r(   r-   r)   r    r,   r0   r1   s          r2   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5r5   ra   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   rn   rt   r"   r#   r'   )
r(   ra   r*   r   r   r/   r   r   r0   r1   s
             r2   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,r5   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)rv   Indexr"   rp   r   r   r#   r   r%   assert_produces_warningrW   r   )r(   fidx1fidx2didx1didx2darrcasesidx1idx2r0   r1   r   s               r2   +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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      rK   r   unit
US/Pacificc                 b    U R                  [        5      R                  R                  5       S   $ )Nr   )rt   rn   valuestolistr   s    r2   <lambda>QTestDatetimeIndexComparisons.test_comparison_tzawareness_compat.<locals>.<lambda>W  s!    qxx/66==?Br5   z^Invalid comparison between dtype=datetime64\[ns.*\] and (Timestamp|DatetimeArray|list|ndarray)rU   r`   )r   tz_localizer%   r&   rv   r   rq   r   r   r   rX   rY   rZ   r"   r#   rn   all)	r(   r   r*   r   r+   drdzr   r[   s	            r2   "test_comparison_tzawareness_compat?TestDatetimeIndexComparisons.test_comparison_tzawareness_compatK  s   ad;^^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N0'O	O6O&&'O8
N-0
N?
O
O#&
O58
Pc                 ~   Un[        S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   rK   r   r   z2000-03-14 01:59zEurope/Amsterdamr_   zAInvalid comparison between dtype=datetime64\[ns.*\] and TimestamprU   )r   r  r%   r&   r   r"   r  r   r   r   rX   rY   rZ   )	r(   r   r*   r   r  r  rc   ts_tzr[   s	            r2   *test_comparison_tzawareness_compat_scalarsGTestDatetimeIndexComparisons.test_comparison_tzawareness_compat_scalars|  s>   ad;^^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9	F.
F
F+.
F<z*ignore:elementwise comp:DeprecationWarningc                    UnUn[        SSUS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   r9   rK   r   r    r   Tr`   z:Invalid comparison between dtype=datetime64\[ns, .*\] and rU   )r   r%   r&   r   r   r   r   r"   r#   r   r'   r   rh   rX   rY   rZ   )r(   r   r-   tz_aware_fixturer*   r   r    r,   r.   r/   exboolr1   r0   r[   s                 r2   "test_scalar_comparison_tzawareness?TestDatetimeIndexComparisons.test_scalar_comparison_tzawareness  s    qRdC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1	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%   rW   r  )r(   r   r   r,   r1   r0   s         r2   test_nat_comparison_tzawareness<TestDatetimeIndexComparisons.test_nat_comparison_tzawareness  s     3c<N
 88R8;;./#c(:;C
##F5COOL137
##F5r5   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%   rW   )r(   r)   r    r@   r-   r0   r1   s          r2   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5r5   c                 h    [        SSS9nU[        U5      :H  nX:H  n[        R                  " X#5        g r   )r   rq   r%   rW   )r(   r@   r0   r1   s       r2   test_dti_cmp_list.TestDatetimeIndexComparisons.test_dti_cmp_list  s1    R0S	!:
##F5r5   1Dr?   rD   m8[ns]c                 ,    [        U 5      R                  $ N)r   rh   r   s    r2   r   %TestDatetimeIndexComparisons.<lambda>  s    d1g&&r5   )idsc                    [        SSSS9nX!:H  n[        R                  " S/S-  5      n[        U[        5      (       a)  [
        R                  " U[	        XAR                  S95        O[
        R                  " X45        X!:g  n[        R                  " S/S-  5      n[        U[        5      (       a)  [
        R                  " U[	        XAR                  S95        O[
        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   F)r   TzInvalid comparison betweenrU   )r   r"   r#   r   r   r%   r   r   rW   rX   rY   rZ   )r(   r-   r,   r0   r1   r[   s         r2   test_dti_cmp_tdi_tzawareness9TestDatetimeIndexComparisons.test_dti_cmp_tdi_tzawareness  s6    rlC88UGbL)eV$$""66(+++NO''988TFRK(eV$$""66(+++NO''9*]]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   F1FF-=F>
F
F*-
F;>
G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   OTrT   r<   r:   FzB>=' not supported between instances of 'Timestamp' and 'Timedelta'rU   )r   rt   r"   r#   r%   rW   r  rq   r   rX   rY   rZ   )r(   r,   r-   r0   r1   r[   s         r2   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rg   )rh   ri   rj   rk   r   rX   rl   rm   r   r   r"   r   r   rn   r   r   r  r
  filterwarningsr  r  r  r  rv   rw   	to_seriesasi8viewr%  r)  ry   rg   r5   r2   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	

 '  <r5   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TestDatetime64Arithmetici6  c                 T   Un[        SSUSS9n[        SSUSS9nUb  UR                  S 5      n[        R                  " XS5      n[        R                  " Xc5      nXR-   n[        R                  " Xv5        X%-   n[        R                  " Xv5        XR-  n[        R                  " XV5        g )Nr#  
2000-02-01rK   r    r   z2000-01-01 02:00z2000-02-01 02:00r   
_with_freqr%   r&   r'   r(   r)   	two_hoursr*   r    r@   r1   r0   s           r2   %test_dt64arr_add_timedeltalike_scalar>TestDatetime64Arithmetic.test_dt64arr_add_timedeltalike_scalar=  s    
 |F02DRVW>**40Hooc2??8<
)
)
&r5   c                     Un[        SSUSS9n[        SSUSS9nUb  UR                  S 5      n[        R                  " XS5      n[        R                  " Xc5      nXR-
  n[        R                  " Xv5        XR-  n[        R                  " XV5        g )Nr#  r2  rK   r3  z1999-12-31 22:00z2000-01-31 22:00r4  r6  s           r2   %test_dt64arr_sub_timedeltalike_scalar>TestDatetime64Arithmetic.test_dt64arr_sub_timedeltalike_scalarU  s     |F02DRVW>**40Hooc2??8<
)
&r5   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   rD   
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 objectsrU   )
r   r  r%   r&   r   r   r'   rX   rY   rZ   r(   r*   t1t2tnaiver0   r1   r[   s           r2   .test_dt64_array_sub_dt_with_different_timezoneGTestDatetime64Arithmetic.test_dt64_array_sub_dt_with_different_timezoneh  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   rD   r>  r?  )r@  r@  r@  )rA  rA  rA  rB  rU   )	r   r  r%   r&   r   r'   rX   rY   rZ   rC  s           r2   6test_dt64_array_sub_dt64_array_with_different_timezoneOTestDatetime64Arithmetic.test_dt64_array_sub_dt64_array_with_different_timezone  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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  QSrK   r   r    rH   r   r   r_   cannot subtractrU   )r   r"   timedelta64r   as_unitr%   r&   r'   rX   rY   rZ   )
r(   r*   r)   r    r,   r-   r1   rO   r0   r[   s
             r2   test_dt64arr_add_sub_td64_nat6TestDatetime64Arithmetic.test_dt64arr_add_sub_td64_nat  s    qRdNu% %14<<TBooc2??8<
)
)
)]]9C0K 100s   C&&
C4c                 4   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R                  / S	Q5      n
[        R                  " [        U
S
9   Xh-
    S S S 5        g ! , (       d  f       g = f)Nr   r   r   )-1 DayrU  rU  z
2015-12-31z
2016-01-02z
2016-01-04|)*cannot subtract DatetimeArray from ndarray0cannot subtract a datelike from a TimedeltaArrayz,cannot subtract DatetimeArray from TimedeltarU   )
r   r   r   r%   r&   r'   joinrX   rY   rZ   )r(   r)   r*   r    r,   tditdarrr1   r.   r0   r[   s              r2    test_dt64arr_add_sub_td64ndarray9TestDatetime64Arithmetic.test_dt64arr_add_sub_td64ndarray  s    qR8;<

lL!K4??8<
)
)lL!K??8<
)hh
 ]]9C0M 100s   ;D		
Drc   
2013-01-01rF   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 )Nr^  r   rD   )z0 DaysrE   z2 Days)r   r5  r%   r&   r   r'   )r(   r*   rc   idxr1   r0   s         r2   test_dt64arr_sub_dtscalar2TestDatetime64Arithmetic.test_dt64arr_sub_dtscalar  sx     q1<<TBooc2!"?@??8<
)
	*
	*r5   c                 t   [        S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      /S	S
9n[        R                  " XA5      n[        R                  " X#-
  U5        [        R                  " X2-
  U* 5        g )Nz
2014-03-17r9   rF   r>  rK   )r   rH   r    r   r   r<   r  r`   )r   r5  r%   r&   r   r"   rP  r'   )r(   r*   rd   rc   delta_seriesr1   s         r2   "test_dt64arr_sub_timestamp_tzaware;TestDatetime64Arithmetic.test_dt64arr_sub_timestamp_tzaware  s    qs|RVWnnT"Vooc2^^As#R^^As%;<H
 ??<@
(+
8),r5   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[]r`   r$  )	r   r   r   rQ  r%   r&   r   r'   r  )	r(   r*   r   r,   rd   r0   r1   dti_tzser_tzs	            r2   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<
)r5   c                 \   [        SSUS9nXD-
  n[        R                  " XB5      n[        R                  " XR5      R                  [        5      n[        R
                  " U5         XfR                  [        5      -
  nS S S 5        [        R                  " WU5        g ! , (       d  f       N&= fNr   r   r   )r   r%   r&   rt   rn   r   r'   )r(   performance_warningr*   r)   r,   r1   rO   r0   s           r2   !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 rp  )r   r   r%   r&   r'   )r(   r*   r,   dt64valsr.   r1   r0   s          r2   "test_dt64arr_naive_sub_dt64ndarray;TestDatetime64Arithmetic.test_dt64arr_naive_sub_dt64ndarray!  sV    qT:::4=!
)!
)r5   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 datetimerU   )r   r   r%   r&   rX   rY   rZ   )r(   r  r*   r    r,   ru  r.   r[   s           r2   )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   r>  r   r~   rF   )
r   r  r%   r&   r   r   to_pydatetimer   r"   r   )r(   r)   r*   r    r,   dti2r.   s          r2   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Br5   rH   )rS   rF   W2MEMSQEBNra   Nuint8c                    UnUc  [        SS/US9nO[        SSX5S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        [        XxU	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   r9   )r   rH   r    r   r7   rV  )z Addition/subtraction of integers"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   r`   )r   r   r"   r#   rt   rY  r   int64rv   Categoricalr   r   )
r(   ra   index_or_series_or_arrayrH   r)   r    r,   rO   r-   r[   s
             r2   test_dt64arr_addsub_intlike4TestDatetime64Arithmetic.test_dt64arr_addsub_intlikeZ  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;r5   r-   gQ	@r   r   r~   r   r<   r9   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   rV  )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&   rY  r   )r(   r  r-   r*   r,   r.   r[   s          r2   test_dt64arr_add_sub_invalid5TestDatetime64Arithmetic.test_dt64arr_add_sub_invalid  sB     \<8xH4hh
 	#55r5   pi_freq)rF   r  QrS   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   rV  )r  unsupported operandzdescriptor.*requireszufunc.*cannot use operands)r   	to_periodr%   r&   rY  r   )
r(   r  r  r*   box_with_array2r,   pir.   parrr[   s
             r2   test_dt64arr_add_sub_parr2TestDatetime64Arithmetic.test_dt64arr_add_sub_parr  s^     \<8xH]]7#4r3hh
 	#54r5   (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   rV  r  rW  )r[   )r   rr   r   r%   r&   rY  r   )r(   r*   r)   r    obj1iobj2r[   s           r2   '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_seriesrh  datetime64[ns]r`   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 typerU   )r%   r&   rX   rY   rZ   )r(   r  r  r*   rO   r[   s         r2   !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rg   )&rh   ri   rj   rk   rX   rl   arm_slowr8  r;  rG  rJ  rR  r\  rm   r   r|  r   r"   r   ra  re  rm  rr  rv  ry  r~  r  r#   r   r   r  r  r+  r  r   r   r  ry   rg   r5   r2   r0  r0  6  sj    [[' '.'&68*D [[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: ;r5   r0  c                      \ rS rSrS rS r\R                  R                  S/ SQ5      S 5       r	S r
S 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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S.S&S&S/.4PS0PS1S2S304PS1SS04P5      \R                  R                  S4S5S6/5      \R                  R                  S7S,S/5      \R                  R                  S8S9S:/5      S; 5       5       5       5       5       r\R                  R                  S<\R                  R!                  5       \R                  R#                  S&S=9/\R                  R%                  S(S>9\R                  R!                  5       /\R                  R%                  S(S>9\R                  R%                  S(S>9//5      \R                  R                  S?\R(                  \R,                  \R.                  /5      S@ 5       5       r\R                  R                  SASB\" SSCSD9\" SE5      \" SF5      \" SG5      \" SH5      /S94SB\" SSI9\" SJ5      \" SK5      \" SL5      \" SM5      /SN4SO\" SSCSD9\" SP5      \" SQ5      \" SR5      \" SS5      /S94SO\" SSI9\" ST5      \" SU5      \" SV5      \" SW5      /SX4/5      SY 5       rSZ rS[rg9)\"TestDatetime64DateOffsetArithmetici  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:05rT   )
r   r   dtrQ  r%   r&   rv   offsetsSecondr'   )r(   r*   r   rd   r1   r0   result2s          r2   '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&,
*r5   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:55rT   z)cannot subtract DatetimeArray from SecondrU   )r   r   r%   r&   rv   r  r  r'   rX   rY   rZ   )r(   r*   rd   r1   r0   r  r[   s          r2   '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''#-
*9]]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  rT   )r   r   r%   r&   r   rv   r  )r(   r  r*   rd   
offset_clss        r2   *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r5   c                    UnUS:X  a\  [        SSUS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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 Hy  nXG-   n[        R                  " XV5        Xt-   n[        R                  " XV5        XW-
  n[        R                  " X5        Sn	[        R                  " [        U	S9   Xt-
    S S S 5        M{     g ! , (       d  f       M  = f)Nr   z
2012-11-01r   rK   r  rT   r   z2010-11-01 00:00rS   rN  )z2010-11-01 05:00z2010-11-01 06:00z2010-11-01 07:00)rH   r    )hoursr  rU   )r   rv   r  r  r   rQ  r%   r&   r"   rP  r   r'   rX   rY   rZ   )
r(   r  r*   r    r   offsetr1   scalar	roundtripr[   s
             r2   test_dti_add_tick_tzaware<TestDatetime64DateOffsetArithmetic.test_dti_add_tick_tzaware   sC   |Q2DIERZZ__Q//F8bjjooa00F1I===-qRcPTU H
 '$-	 	 6??8<zzq)2>>!S+A9STCUVF^FOOF-^FOOF-IOOI-6Cy4 54 W 54s   $E66
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   ))yearsr9   )monthsrT   )r;   r   )r  rT   )minutesr?   )secondsr9   )microsecondsrT   r  rK   usr<   r  rU   rg   )r   r   rQ  r%   r&   rv   r   iloc	enumerater
   r'   dictrX   rY   rZ   )r(   r*   r   vec	vec_itemsrelative_kwargsr  offset_unitvalueoffexp_unitr   r1   r[   s                 r2   *test_dt64arr_add_sub_relativedelta_offsetsMTestDatetime64DateOffsetArithmetic.test_dt64arr_add_sub_relativedelta_offsetsB  sD   /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6Cy4	 545 (B &B &B &B &B 54s$   "J
>J
4J
J 
>J%%
J5	r  cls_and_kwargs	YearBeginmonthrT   YearEnd
MonthBeginMonthEndSemiMonthEndSemiMonthBeginWeekweekdayr   r   BusinessDayBDay
QuarterEndQuarterBeginCustomBusinessDayCDay
CBMonthEndCBMonthBeginBMonthBegin	BMonthEndBusinessHour
BYearBeginBYearEndBQuarterBeginLastWeekOfMonthr9   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  rU   )r   tupler   r   rQ  r  r%   r&   rv   r   r  r   r  r'   rX   rY   rZ   )r(   r*   r
  r	  r  r   r    r  kwargsr  r  r  r  r   r1   r[   s                   r2    test_dt64arr_add_sub_DateOffsetsCTestDatetime64DateOffsetArithmetic.test_dt64arr_add_sub_DateOffsets  s   n 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,/2]]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                  " Xs5      n[        R                  " U5      n[        [        [        U5      5       V	s/ s H  o" Xy   XY   5      PM     sn	5      n
[        R                  " X5      R                  [        5      n
[        R                  " U5         U" X5      nS S S 5        [        R                  " WU
5        [        R                  " XS5      nU[        R                  L a,  U[        R                  L a  [        R                  " U
[        S9n
[        R                  " U5         U" X5      nS S S 5        [        R                  " X5        g s  sn	f ! , (       d  f       N= f! , (       d  f       N;= f)N
2017-01-01r9   r   r`   )r   r%   r&   r"   r#   r   rr   r   rt   rn   r   r'   rv   r   radd)r(   rq  r)   r*   r   r-   r    r,   r.   r
  r1   ress               r2   !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,1	E1	F1
E?
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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YSrK   )startendrH   r    r   Fr_   )r   r%   r&   r   r   rQ  r'   )r(   r   r  expexp_freqr  r*   r    ro   mthr0   r1   s               r2   #test_dti_add_sub_nonzero_mth_offsetFTestDatetime64DateOffsetArithmetic.test_dti_add_sub_nonzero_mth_offset  su    j ]"4
 tU;dV ,44T:??8UC
)r5   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  r`   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,   r0   r1   s       r2   -test_dt64arr_series_add_DateOffset_with_milliPTestDatetime64DateOffsetArithmetic.test_dt64arr_series_add_DateOffset_with_milliS  s    
 #
 zq11 
 #
 	f/zqq99 
 #
 	f/r5   rg   )rh   ri   rj   rk   r  r  rX   rl   rm   r  r  r  r+  r  rv   r  r  r  r
   r   addr   r  subr  r   r   r%  ry   rg   r5   r2   r  r    s   
+&'( [[Q		D6z [[ JK[[)	
)	
7A,')	
 )	
 !%	)	

 )	
 )	
 )	
 )	
 )	
 i^$)	
 i^$)	
 )	
 )	
 )	
 )	
   !)	
" #)	
$ %)	
& ')	
( ))	
* +)	
, -)	
. /)	
0 1)	
2 3)	
4 A/5)	
8  +,%& !*	7)	
H 1qyQRI)	
J 156K)	
L M)	
N E1:&O)	
P GQ<(Q)	
,Z [[[4-8[[S1a&)[[TD,#78< 9 * 9[, Lb<| [[ZZ  "BJJNNQN$78ZZ"""+RZZ-@-@-BCZZ"""+RZZ-B-B-B-KL		
 [[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* 0r5   r  c                   ,    \ rS rSrS rS rS rS rSrg)TestDatetime64OverflowHandlingit  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]r`   r  )r   r   r   r%   r&   r   r'   )r(   r*   r   r   r1   r0   s         r2   test_dt64_overflow_masking9TestDatetime64OverflowHandling.test_dt64_overflow_maskingw  sl    y./x@ut46!3%x8??8<
)r5   c                 n   [        S5      n[        S5      n[        S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   rK   )rH   r   r   Overflow in int64 additionrU   r7   )z
2004-10-03z
2104-10-04z
2204-10-04r   r  r`   r<   )z
91279 Daysr   r   r   timedelta64[ns])r   r   r   r   rX   rY   OverflowErrorr   r  r%   r   )r(   r  tdr,   rd   r[   r1   r  s           r2   test_dt64_series_arith_overflow>TestDatetime64OverflowHandling.test_dt64_series_arith_overflow  sF   |$|$GQTJ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   	E0/FF;F&0
E?
F
F#&
F4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:19rK   
1950-01-01r  zdatetime64[D]
1980-01-01r1  rU   r<   )rv   to_datetimer   maxrQ  minr|  r   rt   rX   rY   r3  _value)r(   dtimaxdtimintsnegts_neg_variantstsposts_pos_variantsr[   variantr1   r  s              r2   )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)	Nr8  rK   r9  r:  r<   r1  rU   1us)rv   r;  r   r<  rQ  r=  r>  rX   rY   r3  r   )r(   r?  r@  ts_negts_posr1   r0   r[   tminrD  tmaxrE  s               r2   -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$rg   N)	rh   ri   rj   rk   r-  r5  rF  rN  ry   rg   r5   r2   r*  r*  t  s    */@$!L r5   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,  r`   r  rO  rU   )r   r%   r'   rX   rY   rZ   )r(   r*   abr[   s        r2   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 )NrT   r   r  r  r9   20111230r   20120103201112312012010220120104)r   r   r"   rp   r  r   )r(   td1dt1dt2s       r2   test_operators_datetimelike9TestTimestampSeriesArithmetic.test_operators_datetimelike  s    i156:;ff *%*%*%
 ff*%*%*%
 			 				 			r5   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[rj  r`   r  ri  )r   r   r   r%   get_finest_unitra   )r(   r   rc   r  rd   r0   r  s          r2   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9r5   zleft, right, op_failrY  r   r[  r\  r]  r  __rsub__rT   r   rX  )r  __radd__r  r>  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 operandrU   )r   r   rX   rY   rZ   )	r(   r   r   op_failall_arithmetic_operatorsop_strarg1arg2r   s	            r2   #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  rQ  r   r%   r   )r(   r   s1s2r0   r1   s         r2   test_sub_single_tz0TestTimestampSeriesArithmetic.test_sub_single_tzZ  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0r5   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,   rd   r1   r  s        r2   test_dt64tz_series_sub_dtitz:TestTimestampSeriesArithmetic.test_dt64tz_series_sub_dtitze  sZ     rlCSk.'R89i
s-i
s-r5   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   rg  r  r   )r   r   r   utcr   r  rQ  r%   ri  r   r   r   )r(   r   rd   r  r  r  r0   r  s           r2   test_sub_datetime_compat6TestTimestampSeriesArithmetic.test_sub_datetime_compatq  s    htQBx||DcJKNNVV
 dAr2hll;%%dD1i)3/033;;HE
v+	"%
w,r5   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  rT   z20130101 9:01:00.005z20130101 9:02:00.005z20130101 9:06:00.005z20130101 9:07:00.005)r   r   rv   r  r  r%   r   r  )r(   sr0   r  r1   s        r2   *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0r5   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)Nrh  zdatetime64[rj  r`   z-bad operand type for unary -: 'DatetimeArray'rU   )
r   r   r   r  rQ  r%   r   rX   rY   rZ   )r(   r   datetime_seriesnat_series_dtype_timestampsingle_nat_dtype_datetimer[   s         r2   test_datetime64_ops_nat5TestTimestampSeriesArithmetic.test_datetime64_ops_nat  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)Nr>  z2000-01-01 09:00:00rT   r   r6   r   r9   z1 days 1 minrS   )r   rH   r<   r   r  rU   r  )r   r   r   r"   rp   r  rv   rw   _valuesrH   r  r  r%   r   rX   rY   rZ   )	r(   r    r_  r`  r^  td2r0   r  r[   s	            r2   *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+2]]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 rg   N)rh   ri   rj   rk   rU  ra  rj  rX   rl   rm   r   r   r   rt  rz  r~  r  r  r  r  ry   rg   r5   r2   rQ  rQ    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<r5   rQ  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 daysrD   r   	r   r   rv   rw   r   r5  r%   r$  r   r(   r)   r    r,   rZ  r1   r0   s          r2   test_dti_add_tdi,TestDatetimeIndexArithmetic.test_dti_add_tdi  s    Y|;<rAB  26lB2>&&t, 
f/
f/ zz!
f/c!
f/r5   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          r2   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/r5   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  rD   -1D)r   r    rH   z cannot subtract .*TimedeltaArrayrU   rX  )r   r   rv   rw   r   r5  r%   r$  rX   rY   rZ   r   )r(   r)   r    r,   rZ  r1   r0   r[   s           r2   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  rN  )outrX  rU   )r   r   rQ  rv   rw   r   r5  r%   r$  rM   r   assert_datetime_array_equalr"   subtractrX   rY   rZ   r   r  )r(   r)   r   r    r,   rZ  r1   r0   rN   r  r[   s              r2   test_dti_isub_tdi-TestDatetimeIndexArithmetic.test_dti_isub_tdiA  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,   rN   r0   r1   rZ  s          r2   test_dta_add_sub_index2TestDatetimeIndexArithmetic.test_dta_add_sub_indexm  ss    Q3CDii9
f/9
f/9
f/r5   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   r>  )r   r   r   rB  rU   r   z$cannot add indices of unequal lengthr  z
2012-01-03z
2012-01-02r   )r   r  r   rQ  r%   r$  rX   rY   rZ   r   r   r"   rp   )	r(   r   r,   rk  r1   r0   r[   dti1r}  s	            r2   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)rF   rS   mr  r  c            	      t   > [         R                  " [        [        [         R                  U T5      5      5      $ r  )r"   sumrq   maprP  )args	intervalss    r2   rP  _TestDatetimeIndexArithmetic.test_timedelta64_equal_timedelta_supported_ops.<locals>.timedelta64  s$    66$s2>>4CDEEr5   r9   rT   )r;   r  r  r  r  )r   r   r   rr   r   r%   r'   )r(   r   r*   rd   rO   rP  drS   r  r  r  nptdpytdr   r   r  s                  @r2   .test_timedelta64_equal_timedelta_supported_opsJTestDatetimeIndexArithmetic.test_timedelta64_equal_timedelta_supported_ops  s    *%-.-.-.	
 S!.		F &q
Q8NA!qQ2.D!aQSTDS-CS-COOC% 9r5   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1srh  r2  r`   r  zcannot subtract a datelikerU   )	r   r   r   r   r%   r   rX   rY   rZ   )r(   timedelta_seriesr  nat_series_dtype_timedeltar  r  single_nat_dtype_timedeltar[   s           r2   )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   rH   r   r   r<   rF   r  
2010-12-31r9   )r  z
2011-01-05z
2011-01-08r   )r  r~   r  )r   r"   rP  r'  r   r   r%   r$  rH   r  r5  r#   rQ  )r(   r   r`  deltar  r0   s         r2   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!!&.;;#((*** =r5   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   rK   rT   )r  r9   r<   )r   r   )
r   rQ  r   r   r   ra   r%   r   r   r$  )r(   r)   namesr    r   rd   r1   r0   r  result3result4s              r2   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0r5   c           
      4   UnUn[        SSXsS   S9nU" [        R                  R                  5       [        R                  R	                  SS9/US   S9n	[        X5      n
[        R                  " U5         U" X5      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  r9   r   )r   r    r   r  r<   r   infer)r   rH   )r   rv   r  r  r  r   r%   r   r   rr   r   r&   rt   rn   r'   )r(   rq  r)   r  r   r   	other_boxr    r,   r-   r/   r  r
  r1   s                 r2    test_dti_addsub_offset_arraylike<TestDatetimeIndexArithmetic.test_dti_addsub_offset_arraylikeE	  s    
 $	qRAhG2::..0"**..1.2EFUSTXVc)''(;<S.C = !+0S?;?aR!?;%(QX
 ??8299&A
X& =< <s   7	D#D
Dr  c                    Un[        SSUS9n[        R                  " Xc5      nU" [        R                  R                  5       [        SS9/5      n[        Xx5      n	[        SS/US9n
[        R                  " X5      R                  [        5      n
[        R                  " U5         Xx-   nS S S 5        [        R                  " WU
5        [        S	S
/US9n
[        R                  " X5      R                  [        5      n
[        R                  " U5         Xx-
  nS S S 5        [        R                  " X5        g ! , (       d  f       N= f! , (       d  f       N6= f)Nr  r9   r   r   r:   z
2017-01-31z
2017-01-06r_   z
2016-12-31z
2016-12-29)r   r%   r&   rv   r  r  r   r   r   rt   rn   r   r'   )r(   rq  r)   r*   r  r    r,   r.   r-   r/   r1   r0   s               r2    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   'D:E:
E
Erg   N)rh   ri   rj   rk   r  r  r  r  r  r  rX   rl   rm   r   r'  r(  r  r  r  r  r   r  r  rv   r   r"   r#   r  ry   rg   r5   r2   r  r    s    0,040#X0"$0T [[THLL(,,#?@& A&2C
J%+N1. [[THLL)..(,,#OP' Q'* [[[288RXX*>?* @*r5   r  r  )r7   r   r<   r  )r   r9   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  )resorh  rj  )r  r  )r   r   rQ  r	   r-  rM   _cresor.  r   rv   r  r
   r%   r$  )
r  r  r   r,   shiftedshifted_dt64actualr   rawr1   s
             r2   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                 j   [        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                  " U 5         X$-   nS S S 5        [        R                  " U 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                  " U 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   rG   )r   r<   r   r7   r<   c              3   >   #    U  H  oR                   S :H  v   M     g7f)r   N)r>  ).0r4  s     r2   	<genexpr>6test_dt64arr_addsub_object_dtype_2d.<locals>.<genexpr>	  s     8"yyA~s   )r   rM   reshaper"   r#   rr   rv   r  r  shaper%   r   rW   rt   rn   r  ravel)rq  r,   rN   r
  r-   r0   r1   r  s           r2   #test_dt64arr_addsub_object_dtype_2dr  	  sI    \a
8C
))

F
#CHH58<8arzz~~a()8<=E;;#))###		#	#$7	8 
9		#	#$7	81Iad+44R; 
9 1		#	#$7	8

6** 
9 ==F"""888888 = 
9	8	8	8
 
9	8s*   *E='F
$F#F$
F
F!$
F2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]r`   r   msr   timedelta64[ms]r   r"   r   r   r%   r   rP  rd   r0   r1   s      r2   (test_non_nano_dt64_addsub_np_nat_scalarsr  	  s|    
<DT
UC2==--Fseai'89H6,2>>%..Fseai'78H6,r5   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  r`   r   r   r  r  r  s      r2   1test_non_nano_dt64_addsub_np_nat_scalars_unitlessr  	  sz     <DT
UC2==''Fseai'89H6,2>>%((Fseai'78H6,r5   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]r`   r   rF   r   ztimedelta64[s]r  r  s      r2   9test_non_nano_dt64_addsub_np_nat_scalars_unsupported_unitr  	  sz    
&o
>C2==,,Fseai'78H6,2>>%--Fseai7H6,r5   )2r   r   r   r   	itertoolsr   r   numpyr"   rX   pandas._libs.tslibs.conversionr   pandas._libs.tslibs.offsetsr	   pandasrv   r
   r   r   r   r   r   r   r   r   pandas._testing_testingr%   pandas.corer   pandas.tests.arithmetic.commonr   r   r   r   r   r{   r   r0  r  r*  rQ  r  rl   rm   r  r  r  r  r  rg   r5   r2   <module>r     s       > 4 
 
 
  ! m* m*`wD wDtW W|m m`K0 K0\w wtD DN}* }*@ *-:., / .,&90	-
-	-r5   