
     f`                    T   d dl m Z mZmZ d dlmZmZ d dlZd dlZd dl	Z	d dl
Z
d dlmZ d dlmZ d dlmZ d dlZd dlmZmZmZmZmZmZmZmZmZ d dlmZ d dlm Z  d d	l!m"Z"m#Z#m$Z$m%Z%  G d
 d      Z& G d d      Z' G d d      Z( G d d      Z) G d d      Z* G d d      Z+ G d d      Z, G d d      Z-e	j\                  j_                  dg d      e	j\                  j_                  dg d      e	j\                  j_                  dg d      d                       Z0d! Z1d" Z2d# Z3d$ Z4y)%    )datetimetime	timedelta)productstarmapN)localize_pydatetime)shift_months)PerformanceWarning)	
DateOffsetDatetimeIndexNaTPeriodSeries	TimedeltaTimedeltaIndex	Timestamp
date_range)	roperator)assert_cannot_addassert_invalid_addsub_typeassert_invalid_comparisonget_upcast_boxc                   X   e Zd Zd Zej
                  j                  ddddd e        ed       e	d	d
d
      j                         dej                  g	      d        Zej
                  j                  d e ed             ej                   d       ej                   d      j#                  ej$                         ej                   d      j#                  e       ej(                  dd      j*                   ej*                   ej(                  dd             e ej(                  dd             ej(                  dd      j#                  e       ej,                  ddd      j*                   ej,                  ddd      j#                  e      g
      d        Zd Zd Zy)"TestDatetime64ArrayLikeComparisonsc                 J   |}|}t        dd|      }t        j                  |j                         d         }t	        j
                  ||      }t        ||d      }||k  }	t        j                  g d      }
t	        j
                  |
|      }
t	        j                  |	|
       y )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              a/var/www/html/py/new-venv/lib/python3.12/site-packages/pandas/tests/arithmetic/test_datetime64.pytest_compare_zerodimz7TestDatetime64ArrayLikeComparisons.test_compare_zerodim5   s    Q26*+S)eUD1%8801??8T2
)    r-   fooc   g      @   daysi     Nc                 j    |}t        dd|      }t        j                  ||      }t        |||       y )N1/1/2000
   r   )r   r%   r&   r   )r(   r-   r)   r*   r    rngr.   s          r2   test_dt64arr_cmp_scalar_invalidzBTestDatetime64ArrayLikeComparisons.test_dt64arr_cmp_scalar_invalidD   s3    ( RB7^4!%?r4   r>   1nsr   1 Dayz
1971-01-01Dfreqr   c                     |}t        ddd|      j                  }t        j                  ||      }t	        |||       y )N
1970-01-01nsr>   rF   r   r    )r   _datar%   r&   r   )r(   r-   r)   r*   r    dtaobjs          r2   "test_dt64arr_cmp_arraylike_invalidzETestDatetime64ArrayLikeComparisons.test_dt64arr_cmp_arraylike_invalid^   s;    & D"DJJooc>2!#un=r4   c           	         |}t        ddd|      j                  }t        j                  ddd|d   t	        d	      g      }||k(  }t        j                  g d
      }t        j                  ||       ||k7  }t        j                  ||        d}t        j                  t        |      5  ||k   d d d        t        j                  t        |      5  ||kD   d d d        t        j                  t        |      5  ||k   d d d        t        j                  t        |      5  ||k\   d d d        y # 1 sw Y   xY w# 1 sw Y   hxY w# 1 sw Y   KxY w# 1 sw Y   y xY w)NrH   h   rJ   r   r;   r8   r   r9   )FFFTFzDInvalid comparison between|Cannot compare type|not supported betweenmatch)
r   rK   r"   r#   r   r%   assert_numpy_array_equalpytestraises	TypeError)r(   r)   r    rL   r-   r0   r1   msgs           r2   test_dt64arr_cmp_mixed_invalidzATestDatetime64ArrayLikeComparisons.test_dt64arr_cmp_mixed_invalidw   s4   CrBHH!Q3q69!+<=>88>?
##FH5
##FXI6T]]9C0 	%K	]]9C0 	%K	]]9C0 	5L	]]9C0 	5L	 		 		 		 		 	s0   .D8E E)E8EEEE%c                 *   |}|}t        d|      }t        |t        g      }t        j                  ||      }t        ||d      }t        ddgt        j                        }	t        j                  |	|      }	||k(  }
t        j                  |
|	       y )Nz
2021-01-01r    TFdtype)	r   r   r   r%   r&   r   r"   bool_r'   )r(   r)   r*   r    r+   tsserrM   r/   r1   r0   s              r2   test_dt64arr_nat_comparisonz>TestDatetime64ArrayLikeComparisons.test_dt64arr_nat_comparison   s    |+b#Yooc3'c2t,4-rxx8??8T2
)r4   )__name__
__module____qualname__r3   rU   markparametrizeobjectr   r   dater"   nanr@   listrangearangeastypefloat32pdtimedelta_ranger#   period_rangerN   rY   ra    r4   r2   r   r   0   s   
* [[H1 T1a %%'FF	
$@%$@ [[ rOBIIbMBIIbM  ,BIIbM  (Bub177BHH'R''r:;###E267Bw3::6BBOOLsB?EEBOOLsB?FFvN	
 >! >.*r4   r   c                      e Zd Zej                  j                  d ed      e ed      gee ed      gf ed      e ed      gee ed      gf e	dd      e e	d	d      gee e	d	d      gfg      ej                  j                  d
ddg      ej                  j                  dde
g      ej                  j                  dej                   eg d      fej                   eg d      fej                   eg d      fej                    eg d      fej"                   eg d      fej$                   eg d      fg      d                             Zej                  j                  d ed      e ed      g ed      e ed      g e	dd      e e	d	d      gg      ej                  j                  dde
g      d               Zej                  j                  d eddd       eddd      g      d        Zej                  j                  dg d      d        Zd Zej                  j                  d  ed!       ed"dd       ej4                  d#d$      g      ej                  j                  d%ej                  g d&fej$                  g d'fej                  g d(fej                   g d)fg      d*               Zy)+TestDatetime64SeriesComparisonpair
2011-01-01
2011-01-031 daysz3 daysz2011-01MrF   z2011-03reverseTFr]   Nzop, expectedFFTTTFFFFc                     |}|\  }}	|r|	|}	}t        ||      }
 ||	|      } ||
|      }t        j                  ||       y )Nr\   )r   r%   assert_series_equal)r(   r]   index_or_seriesr{   ru   opr1   r+   lhsrhsleftrightr0   s                r2   test_nat_comparisonsz3TestDatetime64SeriesComparison.test_nat_comparisons   sR    N SCCc'Cu%D%
vx0r4   datac                    |}t        ||      }t        j                  ||      }t        |t        d      }g d}t        j                  ||      }|t
        j                  u r|t        u rt        j                  |d      }t        j                  |t        k(  |       t        j                  t        |k(  |       g d}t        j                  ||      }|t
        j                  u r|t        u rt        j                  |d      }t        j                  |t        k7  |       t        j                  t        |k7  |       g d}t        j                  ||      }|t
        j                  u r|t        u rt        j                  |d      }t        j                  |t        k  |       t        j                  t        |kD  |       t        j                  |t        k  |       t        j                  t        |k\  |       t        j                  |t        kD  |       t        j                  t        |k  |       t        j                  |t        k\  |       t        j                  t        |k  |       y )Nr\   Tr~   boolTTT)	r   r%   r&   r   r   ro   r#   rg   r'   )r(   r]   r   r*   r+   r   r/   r1   s           r2   test_nat_comparisons_scalarz:TestDatetime64SeriesComparison.test_nat_comparisons_scalar   s    d%(tS)dC.(??8T2"((?uxx7H
X.
tX.%??8T2"((?uxx7H
X.
tX.(??8T2"((?uxx7H
s
H-
d
H-
X.
tX.
s
H-
d
H-
X.
tX.r4   vali  r;      rQ   c                     t        t        dd            }||kD  }t        |D cg c]  }||kD  	 c}      }t        j                  ||       y c c}w Nr=   r>   rB   )r   r   r%   r   )r(   r   seriesr0   xr1   s         r2   test_series_comparison_scalarsz=TestDatetime64SeriesComparison.test_series_comparison_scalars  sJ    
:r:;#F3q1s734
vx0 4s   Az
left,right))ltgt)lege)eqr   )ner   c                    t        t        dd      d      }|j                  d      }t        d      |d	<   t        d      |d
<   t	        t
        |      }t	        t
        |      } ||t        d            } |t        d      |      }t        j                  ||        ||t        d            } |t        d      |      }t        j                  ||        ||t        d            } |t        d      |      }t        j                  ||        ||t              } |t        |      }t        j                  ||       y )N20010101r>   rB   datesnameT)deepnatr   r   20010109)	r   r   copyr   getattroperatorr%   r   r   )	r(   r   r   r`   s_natleft_fright_fr1   r0   s	            r2   test_timestamp_compare_seriesz<TestDatetime64SeriesComparison.test_timestamp_compare_series  s!    Z
B7gFd#5!A5!A4((E* #y45:.4
vx0 #y/05)3/
vx0 %:!67:.6
vx0 %%e$
vx0r4   c                 n   |}t        t        d      t        d      t        g      }t        j                  ||      }t        ||d      }||k7  }t        j                  g d|      }t        j                  ||       |t        j                  u r-t        j                  t        d      5  ||d   k7   d d d        n6||d   k7  }t        j                  g d|      }t        j                  ||       |t        j                  u r-t        j                  t        d      5  ||d	   k7   d d d        n6||d	   k7  }t        j                  g d
|      }t        j                  ||       ||k(  }t        j                  g d|      }t        j                  ||       |t        j                  u r-t        j                  t        d      5  ||d   k(   d d d        n6||d   k(  }t        j                  g d|      }t        j                  ||       |t        j                  u r-t        j                  t        d      5  ||d	   k(   d d d        y ||d	   k(  }t        j                  g d|      }t        j                  ||       y # 1 sw Y   xY w# 1 sw Y   5xY w# 1 sw Y   xY w# 1 sw Y   y xY w)Nz2000-01-29 01:59:00z
2000-01-30Tr|   znot alignedrR   r   )FTTr8   r   r}   r!   r~   )r   r   r   r%   r&   r   r'   ro   	DataFramerU   rV   
ValueError)r(   r*   r+   r`   r/   r0   r1   s          r2   test_dt64arr_timestamp_equalityz>TestDatetime64SeriesComparison.test_dt64arr_timestamp_equality/  sO   i 56	,8OQTUVooc3'c3-??#7>
)",, z? s1v  CF]F':DAHOOFH-",, z? s1v  CF]F'94@HOOFH-??#6=
)",, z? s1v  CF]F';TBHOOFH-",, z? s1v  CF]F'<dCHOOFH-Q    s0   *	J	J	J<	J+JJJ(+J4datetimeliker   i  z2013-01-01T00:00rI   zop,expected)TFFF)TTFF)FTFF)FFFTc                     t        t        d      t        d      t        j                  t        d      gd      } |||      }t        |d      }t	        j
                  ||       y )N20120101r   20130103Ar   )r   r   r"   ri   r%   r   )r(   r   r   r1   r`   r0   s         r2   !test_dt64_compare_datetime_scalarz@TestDatetime64SeriesComparison.test_dt64_compare_datetime_scalarh  sa    ( *%*%*%	 
 C&(-
vx0r4   )rb   rc   rd   rU   re   rf   r   r   r   r   rg   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r"   
datetime64r   rr   r4   r2   rt   rt      s    [[ <(#y/FGc9\23
 8$c9X+>?c9X./
 	,c6)#3NOc6)#67	
" [[Yu6[[WtVn5[[[[&!567[[&!456[[&!678[[&!678[[&!567[[&!567	

1
 6 7#<1, [[|$c9\+BCx #y':;IC(#vic/JK	
 [[WtVn5"/ 6"/H [[UXdAq%98D!Q;O$PQ1 R1 [[N11@7.r [[j!T1a BMM,d3	
 [[[[56[[45[[56[[56		
1"1r4   rt   c            	          e Zd Zd Zej
                  j                  d eddd       ed       e	j                  d      g      d        Zej
                  j                  ddeg      d	        Zd
 Zd Zd Zej
                  j                  d eddd       ed       e	j                  d      g      ej
                  j#                  d      d               Zd Zd Zd Zej
                  j                  d ej.                  dd       ej.                  dd      j1                          ej.                  dd      j2                  j5                  d      gd       d        Zd Zy)TestDatetimeIndexComparisonsc                 $   t        dd      }|t        |      dz     }t        |      j                         }t	        j
                  |      } |||      } |||      }t        |t        j                        sJ t        j                  ||       y )Nz
2020-01-01r>   rB   r8   )
r   lenr   to_datetime64r"   r#   
isinstancendarrayr%   rT   )r(   comparison_opindexelementarr
arr_resultindex_results          r2   test_comparatorsz-TestDatetimeIndexComparisons.test_comparators  s|    <4E
a(G$224hhuo"30
$UG4,

333
##J=r4   r-     r;   
2016-01-01c                    |}t        dd|      }|[t        |t        j                        r+t	        j
                  t        |      j                   d       t        ||j                        }||k(  }t        j                  ddg      }t        j                  ||       ||kD  }t        j                  ddg      }t        j                  ||       ||k\  }t        j                  ddg      }t        j                  ||       ||k  }t        j                  ddg      }t        j                  ||       ||k  }t        j                  ddg      }t        j                  ||       y )Nr   r8   r   z is not tz awareTF)r   r   r"   r   rU   skiptyperb   r   tzinfor#   r%   rT   )r(   r-   r)   r    r,   r0   r1   s          r2   test_dti_cmp_datetimelikez6TestDatetimeIndexComparisons.test_dti_cmp_datetimelike  s0   
 qR8>%/tE{3344DEF'szz:E88T5M*
##FH5u88UDM*
##FH588T4L)
##FH5u88UEN+
##FH588T5M*
##FH5r4   r]   Nc                    t        t        d      t        t        d      g      }t        t        t        t        d      g      }t        j                  ||      }t        j                  ||      }t        ||d      }||}}|t        u r*|j                  t              |j                  t              }}||k(  }t        j                  g d      }	t        j                  |	|      }	t        j                  ||	       ||k7  }t        j                  g d      }	t        j                  |	|      }	t        j                  ||	       t        j                  g d      }	t        j                  |	|      }	t        j                  |t        k(  |	       t        j                  t        |k(  |	       t        j                  g d      }	t        j                  |	|      }	t        j                  |t        k7  |	       t        j                  t        |k7  |	       t        j                  g d      }	t        j                  |	|      }	t        j                  |t        k  |	       t        j                  t        |kD  |	       y )Nrv   rw   Tr|   r}   r~   r   )r   r   r   r%   r&   r   rg   rm   r"   r#   r'   )
r(   r]   r*   r   r   r/   r   r   r0   r1   s
             r2   test_dti_cmp_natz-TestDatetimeIndexComparisons.test_dti_cmp_nat  s   i5sIl<STUsC<)@ABt^4~6dE40SF?{{6*ELL,@C8801??8T2
)88/0??8T2
)8812??8T2
s
H-
s
H-88./??8T2
s
H-
s
H-8812??8T2
c	8,
c	8,r4   c           
      `
   t        j                  dt        j                  dt        j                  ddg      }t        j                  ddt        j                  t        j                  ddg      }t	        dt
        dt
        d	d
g      }t	        ddt
        t
        dd
g      }t        j                  t        j                  d      t        j                  d      t        j                  d      t        j                  d      t        j                  d      t        j                  d      g      }||f||f||fg}t        j                  d       5  |D ]2  \  }}||k  }	t        j                  g d      }
t        j                  |	|
       ||kD  }	t        j                  g d      }
t        j                  |	|
       ||k  }	t        j                  g d      }
t        j                  |	|
       ||k\  }	t        j                  g d      }
t        j                  |	|
       ||k(  }	t        j                  g d      }
t        j                  |	|
       ||k7  }	t        j                  g d      }
t        j                  |	|
       5 	 d d d        t        j                  d       5  |t        j                  f|t
        ffD ]  \  }}||k  }	t        j                  g d      }
t        j                  |	|
       ||kD  }	t        j                  |	|
       ||k  }	t        j                  |	|
       ||k\  }	t        j                  |	|
       ||k(  }	t        j                  |	|
       ||k7  }	t        j                  g d      }
t        j                  |	|
        	 d d d        t        j                  d       5  |df|t        ddd      ffD ]2  \  }}||k  }	t        j                  g d      }
t        j                  |	|
       ||kD  }	t        j                  g d      }
t        j                  |	|
       ||k  }	t        j                  g d      }
t        j                  |	|
       ||k\  }	t        j                  g d      }
t        j                  |	|
       ||k(  }	t        j                  g d      }
t        j                  |	|
       ||k7  }	t        j                  g d       }
t        j                  |	|
       5 	 d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   y xY w)!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)ro   Indexr"   ri   r   r   r#   r   r%   assert_produces_warningrT   r   )r(   fidx1fidx2didx1didx2darrcasesidx1idx2r0   r1   r   s               r2   +test_dti_cmp_nat_behaves_like_float_cmp_nanzHTestDatetimeIndexComparisons.test_dti_cmp_nat_behaves_like_float_cmp_nan  sc   #rvvsBFFC=>#sBFFBFFC=>3c<N
 <c<N
 xx0101e$e$0101	
 %%? ''- 	># >
d88$LM++FH=88$LM++FH=88$KL++FH=88$KL++FH=88$MN++FH=88$IJ++FH=/>	>4 ''- 	>$bffos|< >	c88$NO++FH=++FH=++FH=++FH=++FH=88$HI++FH=#>	>* ''- 	>$aj5(4A2F*GH >	c88$MN++FH=88$LM++FH=88$LM++FH=88$KL++FH=88$MN++FH=88$IJ++FH=+>	> 	>_	> 	>4	> 	>*	> 	>s'   D9T
%C3T6E
T$
TT!$T-c           	         |}|}t        dd      }|j                  d      }t        j                  ||      }t        j                  ||      }|t        j
                  u rd }nt        }|t        j                  t        j                  fvrZd}t        j                  t        |      5   |||       d d d        t        j                  t        |      5   || ||             d d d        t        j                  t        |      5   ||t        j                   ||      t                     d d d        t        j                  t        |      5   |||       d d d        t        j                  t        |      5   || ||             d d d        t        j                  t        |      5   ||t        j                   ||      t                     d d d        t        j                   ||k(        sJ t        j                   | ||      k(        sJ t        j                    ||      |k(        sJ t        j                   t        j                   ||      t              |k(        sJ t        j                   |t        j                   ||      t              k(        sJ t        j                   ||k(        sJ t        j                   | ||      k(        sJ t        j                    ||      |k(        sJ t        j                   t        j                   ||      t              |k(        sJ t        j                   |t        j                   ||      t              k(        sJ y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   ixY w# 1 sw Y   IxY w# 1 sw Y   #xY w# 1 sw Y   xY w)	Nr      rB   
US/Pacificc                 b    | j                  t              j                  j                         d   S )Nr   )rm   rg   valuestolistr   s    r2   <lambda>zQTestDatetimeIndexComparisons.test_comparison_tzawareness_compat.<locals>.<lambda>I  s#    qxx/66==?B r4   z^Invalid comparison between dtype=datetime64\[ns.*\] and (Timestamp|DatetimeArray|list|ndarray)rR   r\   )r   tz_localizer%   r&   ro   r   rj   r   r   r   rU   rV   rW   r"   r#   rg   all)	r(   r   r*   r   r+   drdzr   rX   s	            r2   "test_comparison_tzawareness_compatz?TestDatetimeIndexComparisons.test_comparison_tzawareness_compat=  s   a0^^L)__R%__R%",,BFFhkk8;;//=  y4 2r
 y4 #2vbz"#y4 ;2rxxr
&9:;y4 2r
 y4 #2vbz"#y4 ;2rxxr
&9:; vvbBhvvbF2J&'''vvfRjB&'''vvbhhvbz8B>???vvbBHHVBZv>>???vvbBhvvbF2J&'''vvfRjB&'''vvbhhvbz8B>???vvbBHHVBZv>>???5 # #; ; # #; ;sH   +
NN)N
N(N57)ONNN%(N25N?Oc                 \   |}t        dd      }|j                  d      }t        j                  ||      }t        j                  ||      }t	        d      }t	        dd      }t        j                  ||kD        sJ d}|t        j                  t        j                  fvr-t        j                  t        |	      5   |||       d d d        t        j                  ||kD        sJ |t        j                  t        j                  fvr-t        j                  t        |	      5   |||       d d d        |t        j                  t        j                  fvr.t        j                  t        |	      5   |||       d d d        y y # 1 sw Y   xY w# 1 sw Y   fxY w# 1 sw Y   y xY w)
Nr   r   rB   r   z2000-03-14 01:59zEurope/Amsterdamr[   zAInvalid comparison between dtype=datetime64\[ns.*\] and TimestamprR   )r   r   r%   r&   r   r"   r   r   r   r   rU   rV   rW   )	r(   r   r*   r   r   r   r_   ts_tzrX   s	            r2   *test_comparison_tzawareness_compat_scalarszGTestDatetimeIndexComparisons.test_comparison_tzawareness_compat_scalarsn  s\   a0^^L)__R0__R0 )*,1CDvvb2gRhkk8;;//y4 2u vvb5j!!!hkk8;;//y4 2r
 hkk8;;//y4 2r
  0 
 
 s$   >
F
'
F6
F"
FF"F+z*ignore:elementwise comp:DeprecationWarningc                    |}|}t        dd|      }t        j                  ||      }t        ||d      }	|t        j
                  t        j                  fv r|t        j                  u }
t        j                  |
|
gt              }t        j                  ||	      } |||      }t        j                  ||        |||      }t        j                  ||       y dt        |      j                   }t        j                  t        |      5   |||       d d d        t        j                  t        |      5   |||       d d d        y # 1 sw Y   7xY w# 1 sw Y   y xY w)Nr   r8   r   Tr\   z:Invalid comparison between dtype=datetime64\[ns, .*\] and rR   )r   r%   r&   r   r   r   r   r"   r#   r   r'   r   rb   rU   rV   rW   )r(   r   r-   tz_aware_fixturer*   r   r    r,   r.   r/   exboolr1   r0   rX   s                 r2   "test_scalar_comparison_tzawarenessz?TestDatetimeIndexComparisons.test_scalar_comparison_tzawareness  s6    qR8^4eUD1(++x{{++8;;&Fxx 0=Hx6Hu%FOOFH-u%FOOFH-E{++,.  y4 !5% !y4 !5% ! !! !! !s   
E<
EEE$c                 J   |}t        dt        dt        ddg      }t        j                  |t        j
                  k(  gt        |      z        } ||t              }t        j                  ||        ||j                  d      t              }t        j                  ||       y )Nr   r   r   r   r   )
r   r   r"   r#   r   r   r   r%   rT   r   )r(   r   r   r,   r1   r0   s         r2   test_nat_comparison_tzawarenessz<TestDatetimeIndexComparisons.test_nat_comparison_tzawareness  s     3c<N
 88R8;;./#c(:;C
##FH5COOL137
##FH5r4   c                    |}t        dd|      }d}||k(  }t        j                  dgdgdz  z         }t        j                  ||       ||k7  }t        j                  dgdgdz  z         }t        j                  ||       ||k  }t        j                  dgdz        }t        j                  ||       ||k  }t        j                  dgdgdz  z         }t        j                  ||       ||kD  }t        j                  dgdgdz  z         }t        j                  ||       ||k\  }t        j                  dgdz        }t        j                  ||       y )Nr=   r>   r   TF	   )r   r"   r#   r%   rT   )r(   r)   r    r?   r-   r0   r1   s          r2   test_dti_cmp_strz-TestDatetimeIndexComparisons.test_dti_cmp_str  sF    RB788TFeWq[01
##FH588UGtfqj01
##FH5u88UGbL)
##FH588TFeWq[01
##FH5u88UGtfqj01
##FH588TFRK(
##FH5r4   c                 p    t        dd      }|t        |      k(  }||k(  }t        j                  ||       y r   )r   rj   r%   rT   )r(   r?   r0   r1   s       r2   test_dti_cmp_listz.TestDatetimeIndexComparisons.test_dti_cmp_list  s5    R0S	!#:
##FH5r4   1Dr>   rB   m8[ns]c                 ,    t        |       j                  S N)r   rb   r   s    r2   r   z%TestDatetimeIndexComparisons.<lambda>  s    d1g&& r4   )idsc                    t        ddd      }||k(  }t        j                  dgdz        }t        j                  ||       ||k7  }t        j                  dgdz        }t        j                  ||       d}t        j                  t        |      5  ||k   d d d        t        j                  t        |      5  ||k   d d d        t        j                  t        |      5  ||kD   d d d        t        j                  t        |      5  ||k\   d d d        y # 1 sw Y   xY w# 1 sw Y   hxY w# 1 sw Y   KxY w# 1 sw Y   y xY w)	N
2000-01-01r>   
Asia/Tokyor   FTzInvalid comparison betweenrR   )r   r"   r#   r%   rT   rU   rV   rW   )r(   r-   r,   r0   r1   rX   s         r2   test_dti_cmp_tdi_tzawarenessz9TestDatetimeIndexComparisons.test_dti_cmp_tdi_tzawareness  s    rlC88UGbL)
##FH588TFRK(
##FH5*]]9C0 	%K	]]9C0 	5L	]]9C0 	%K	]]9C0 	5L	 		 		 		 		 	s0   D=D*&D6ED'*D36D?Ec                 J   t        ddd      }|j                  d      }||k(  }t        j                  dgdz        }t	        j
                  ||       |j                  d       }||k7  }t	        j
                  ||       t        j                  t        |d d       t        d	      gdz  z         }||k(  }t        j                  dgdz  d
gdz  z         }t	        j
                  ||       d}t        j                  t        |      5  ||k\   d d d        y # 1 sw Y   y xY w)Nr   r>   r   r   OTrQ   r;   r9   FzB>=' not supported between instances of 'Timestamp' and 'Timedelta'rR   )r   rm   r"   r#   r%   rT   r   rj   r   rU   rV   rW   )r(   r,   r-   r0   r1   rX   s         r2   test_dti_cmp_object_dtypez6TestDatetimeIndexComparisons.test_dti_cmp_object_dtype  s   rlC

388TFRK(
##FH5%
##FH5c"1g)*;)<q)@@A88TFQJ%145
##FH5R]]9C0 	5L	 	 	s   
DD")rb   rc   rd   r   rU   re   rf   r   r   r"   r   r   rg   r   r   r   r   filterwarningsr   r   r   r   ro   rp   	to_seriesasi8viewr  r  rr   r4   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 [[BtR0BtR0::<BtR055::8D	

 '  .r4   r   c                   ~   e Zd Zej                  j
                  d        Zd Zd Zd Z	d Z
d Zej                  j                  d ed       ed      j                          ed      j                          ej"                  dd	      g      d
        Zd Zd Zd Zd Zd Zd Zej                  j                  dg d      ej                  j                  dddg      d               Zej                  j                  dd ej4                  ddg       edd	       eddd      g      ej                  j                  d dd	g      d!               Zej                  j                  d"g d#      ej                  j                  d dd	g      d$               Zej                  j?                  d%      d&        Z ej                  j                  d' e! ed(       ed(      g       e!e" ed(      g       e!e"e"gd)*      g      ej                  j                  d+dd, ej4                  d      g      d-               Z#y).TestDatetime64Arithmeticc                 :   |}t        dd|      }t        dd|      }t        j                  ||      }t        j                  ||      }||z   }t        j                  ||       ||z   }t        j                  ||       ||z  }t        j                  ||       y )Nr   
2000-02-01r[   z2000-01-01 02:00z2000-02-01 02:00r   r%   r&   r'   r(   r)   	two_hoursr*   r    r?   r1   r0   s           r2   %test_dt64arr_add_timedeltalike_scalarz>TestDatetime64Arithmetic.test_dt64arr_add_timedeltalike_scalar(  s    
 |;02DLooc>2??8^<y
)S
)y
X&r4   c                    |}t        dd|      }t        dd|      }t        j                  ||      }t        j                  ||      }||z
  }t        j                  ||       ||z  }t        j                  ||       y )Nr   r  r[   z1999-12-31 22:00z2000-01-31 22:00r  r  s           r2   %test_dt64arr_sub_timedeltalike_scalarz>TestDatetime64Arithmetic.test_dt64arr_sub_timedeltalike_scalar>  sv     |;02DLooc>2??8^<y
)y
X&r4   c                    t        dd      j                  d      }t        j                  ||      }t	        d      j                  d      }t	        d      }||z
  }t        g d      }t        j                  ||      }t        j                  ||       ||z
  }t        g d      }t        j                  ||      }t        j                  ||       d	}t        j                  t        |
      5  ||z
   d d d        t        j                  t        |
      5  ||z
   d d d        y # 1 sw Y   3xY w# 1 sw Y   y xY w)Nr   r   rB   
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 objectsrR   )
r   r   r%   r&   r   r   r'   rU   rV   rW   r(   r*   t1t2tnaiver0   r1   rX   s           r2   .test_dt64_array_sub_dt_with_different_timezonezGTestDatetime64Arithmetic.test_dt64_array_sub_dt_with_different_timezoneO  s   
A.::<H__R0z"..u58$b!E
 ??8^<
)b!K
 ??8^<
)K]]9C0 	K	 ]]9C0 	RK	 		 		 	s   1D)D5)D25D>c                    t        dd      j                  d      }t        j                  ||      }t        dd      j                  d      }t        j                  ||      }t        dd      }||z
  }t	        g d      }t        j                  ||      }t        j
                  ||       ||z
  }t	        g d      }t        j                  ||      }t        j
                  ||       d}t        j                  t        |	      5  ||z
   d d d        t        j                  t        |	      5  ||z
   d d d        y # 1 sw Y   3xY w# 1 sw Y   y xY w)
Nr   r   rB   r  r  )r  r  r  )r  r  r  r  rR   )	r   r   r%   r&   r   r'   rU   rV   rW   r  s           r2   6test_dt64_array_sub_dt64_array_with_different_timezonezOTestDatetime64Arithmetic.test_dt64_array_sub_dt64_array_with_different_timezonej  s(   
A.::<H__R0
A.::5A__R0J2b!E
 ??8^<
)b!K
 ??8^<
)K]]9C0 	K	 ]]9C0 	RK	 		 		 	s   E4EEEc                    |}t        dd|d      }t        j                  d      }t        dgdz  |      j	                  d      }t        j                  ||      }t        j                  ||      }||z   }t        j                  ||       ||z   }t        j                  ||       ||z
  }t        j                  ||       d}	t        j                  t        |		      5  ||z
   d d d        y # 1 sw Y   y xY w)
Nz
1994-04-01r   QSr   r    rF   r   r[   rI   cannot subtractrR   )r   r"   timedelta64r   as_unitr%   r&   r'   rU   rV   rW   )
r(   r*   r)   r    r,   r-   r1   rM   r0   rX   s
             r2   test_dt64arr_add_sub_td64_natz6TestDatetime64Arithmetic.test_dt64arr_add_sub_td64_nat  s    qRdCu% %14<<TBooc>2??8^<u
)
)u
)]]9C0 	CK	 	 	s   !C00C9c                 &   |}t        dd|      }t        g d      }|j                  }t        ddd|      }t        j                  ||      }t        j                  ||      }||z   }	t        j
                  |	|       ||z   }	t        j
                  |	|       t        ddd|      }t        j                  ||      }||z
  }	t        j
                  |	|       d}
t        j                  t        |
	      5  ||z
   d d d        y # 1 sw Y   y xY w)
Nr   r   r   )-1 Dayr(  r(  z
2015-12-31z
2016-01-02z
2016-01-04z8cannot subtract|(bad|unsupported) operand type for unaryrR   )	r   r   r   r%   r&   r'   rU   rV   rW   )r(   r)   r*   r    r,   tditdarrr1   r.   r0   rX   s              r2    test_dt64arr_add_sub_td64ndarrayz9TestDatetime64Arithmetic.test_dt64arr_add_sub_td64ndarray  s    qR8;<

lL!K^4??8^<
)
)lL!K??8^<
)H]]9C0 	EM	 	 	s   8DDr_   
2013-01-01rD   c                 J   t        dd      j                  d       }t        j                  ||      }t	        g d      }t        j                  ||      }||z
  }t        j
                  ||       ||z
  }t        j
                  ||        t        j
                  ||        y )Nr,  r   rB   )z0 DaysrC   z2 Days)r   
_with_freqr%   r&   r   r'   )r(   r*   r_   idxr1   r0   s         r2   test_dt64arr_sub_dtscalarz2TestDatetime64Arithmetic.test_dt64arr_sub_dtscalar  s     q1<<TBooc>2!"?@??8^<r
)c
	*
	*r4   c                 v   t        dddd      }|j                  d       }|d   }t        j                  ||      }t	        t        j                  dd      t        j                  dd      g      }t        j                  ||      }t        j                  ||z
  |       t        j                  ||z
  |        y )Nz
2014-03-17r8   rD   r  r   rF   r    r   r;   )r   r.  r%   r&   r   r"   r$  r'   )r(   r*   r`   r_   delta_seriesr1   s         r2   "test_dt64arr_sub_timestamp_tzawarez;TestDatetime64Arithmetic.test_dt64arr_sub_timestamp_tzaware  s    qs|LnnT"Vooc>2r~~a5r~~a7MNO??<@
b(+
S8),r4   c                    t        t        t        d      g      j                  |      }t	        j
                  ||      }|t        z
  }t        t        t        gd| d      }t	        j
                  ||      }t	        j                  ||       |j                  d      }t	        j
                  ||      }|t        z
  }t        t        t        gd| d      }t	        j
                  ||      }t	        j                  ||       y )N19900315timedelta64[]r\   r   )	r   r   r   r%  r%   r&   r   r'   r   )	r(   r*   unitr,   r`   r0   r1   dti_tzser_tzs	            r2   test_dt64arr_sub_NaTz-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^<
)r4   c                 `   t        dd|      }||z
  }t        j                  ||      }t        j                  ||      j                  t              }t        j
                  t              5  ||j                  t              z
  }d d d        t        j                  |       y # 1 sw Y    xY wNr   r   r   )r   r%   r&   rm   rg   r   r
   r'   )r(   r*   r)   r,   r1   rM   r0   s          r2   !test_dt64arr_sub_dt64object_arrayz:TestDatetime64Arithmetic.test_dt64arr_sub_dt64object_array  s    q5EF9ooc>2??8^<CCFK''(:; 	.3::f--F	.
)	. 	.s   ,B$$B-c                     t        ddd       }|j                  }t        j                  ||      }||z
  }||z
  }t        j                  ||       ||z
  }t        j                  ||       y r>  )r   r   r%   r&   r'   )r(   r*   r,   dt64valsr.   r1   r0   s          r2   "test_dt64arr_naive_sub_dt64ndarrayz;TestDatetime64Arithmetic.test_dt64arr_naive_sub_dt64ndarray  sb    qT:::^45=!
)E!
)r4   c                 @   |}t        dd|      }|j                  }t        j                  ||      }d}t	        j
                  t        |      5  ||z
   d d d        t	        j
                  t        |      5  ||z
   d d d        y # 1 sw Y   3xY w# 1 sw Y   y xY w)Nr   r   r   z.Cannot subtract tz-naive and tz-aware datetimerR   )r   r   r%   r&   rU   rV   rW   )r(   r   r*   r    r,   rA  r.   rX   s           r2   )test_dt64arr_aware_sub_dt64ndarray_raiseszBTestDatetime64Arithmetic.test_dt64arr_aware_sub_dt64ndarray_raises
  s     qR8::^4>]]9C0 	H	]]9C0 	u	 		 		 	s   B9BBBc                     |}t        dd|      }||j                  d      }n|j                  d       }t        j                  ||      }t	        ||j
                         t	        ||       t	        ||       t	        ||d          t	        ||d   j                                t	        ||d   j                                t	        ||d          t	        ||d   j                                t	        |t        j                  dd             y )Nr   r   r   r  r   rv   rD   )
r   r   r%   r&   r   r   to_pydatetimer   r"   r   )r(   r)   r*   r    r,   dti2r.   s          r2   test_dt64arr_add_dtlike_raisesz7TestDatetime64Arithmetic.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Br4   rF   )rP   rD   W2MEMSQEBNr]   Nuint8c                    |}|t        ddg|      }nt        dd||      } ||      }t        j                  ddg      }	||	j	                  |      }	d	j                  g d
      }
t        |d|
       t        |t        j                  d      |
       t        |t        j                  dt        j                        |
       t        ||	|
       t        |t        j                  |	      |
       t        |t        j                  |	      |
       t        |t        j                  |	      |
       t        |t        j                  |	      |
       t        |t        |	      |
       y )Nr   z2017-04-05 06:07:08r[   r   r8   r2  r   r6   |)z Addition/subtraction of integersz"cannot subtract DatetimeArray fromz(can only perform ops with numeric valuesz%unsupported operand type.*Categoricalz:unsupported operand type\(s\) for -: 'int' and 'Timestamp'r;   r   r\   )r   r   r"   r#   rm   joinr   int64ro   Categoricalr   r   )r(   requestr]   index_or_series_or_arrayrF   r)   r    r,   rM   r-   rX   s              r2   test_dt64arr_addsub_intlikez4TestDatetime64Arithmetic.test_dt64arr_addsub_intlike7  s    <(= >2FC\14BGC&s+!R!LL'Ehh	
 	#33/"3S9"3"(((CSI"3s3"3="3="3u(=sC"3="3us;r4   r-   gQ	@r   r   rv   rz   r;   r8   r   dti_freqc                     t        ddg|      }t        j                  ||      }dj                  g d      }t	        |||       y )Nrv   
2011-01-02rz   rP  )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&   rQ  r   )r(   rW  r-   r*   r,   r.   rX   s          r2   test_dt64arr_add_sub_invalidz5TestDatetime64Arithmetic.test_dt64arr_add_sub_invalid_  sF     \<8xH^4hh
 	#5%5r4   pi_freq)rD   rI  QrP   c                     t        ddg|      }|j                  |      }t        j                  ||      }t        j                  ||      }dj	                  g d      }	t        |||	       y )Nrv   rY  rz   rP  )rZ  unsupported operandzdescriptor.*requireszufunc.*cannot use operands)r   	to_periodr%   r&   rQ  r   )
r(   rW  r\  r*   box_with_array2r,   pir.   parrrX   s
             r2   test_dt64arr_add_sub_parrz2TestDatetime64Arithmetic.test_dt64arr_add_sub_parry  sd     \<8xH]]7#^4r?3hh
 	#5$4r4   (ignore::pandas.errors.PerformanceWarningc                    |}t        dd|      }t        d      D cg c]  }t        |||       }}t        j                  ||      }t        j                  ||      }dj                  ddg      }t        |||       y c c}w )N
2012-01-01r   r   rP  r_  z*cannot subtract DatetimeArray from ndarray)rX   )r   rk   r   r%   r&   rQ  r   )r(   r*   r)   r    obj1iobj2rX   s           r2   'test_dt64arr_addsub_time_objects_raisesz@TestDatetime64Arithmetic.test_dt64arr_addsub_time_objects_raises  s     ,b9',Qx0!Q100t^4t^4hh%<
 	#437 1s   Bdt64_seriesr6  datetime64[ns]r\   oner   c                    t        j                  ||      }d}t        j                  t        |      5  ||z   d d d        t        j                  t        |      5  ||z   d d d        t        j                  t        |      5  ||z   d d d        t        j                  t        |      5  ||z   d d d        y # 1 sw Y   xY w# 1 sw Y   hxY w# 1 sw Y   KxY w# 1 sw Y   y xY w)Nz&cannot perform .* with this index typerR   )r%   r&   rU   rV   rW   )r(   rn  rl  r*   rM   rX   s         r2   !test_dt64_mul_div_numeric_invalidz:TestDatetime64Arithmetic.test_dt64_mul_div_numeric_invalid  s     ook>:6 ]]9C0 	#I	]]9C0 	#I	 ]]9C0 	#I	]]9C0 	#I	 		 		 		 		 	s/   B>C
C/C">C
CC"C+)$rb   rc   rd   rU   re   arm_slowr  r  r  r  r&  r+  rf   r   rF  r   r"   r   r0  r4  r<  r?  rB  rD  rH  rV  r#   r   r   r[  rd  r  rk  r   r   rp  rr   r4   r2   r
  r
  !  so    [[' '*'"68*8 [[l#l#113l#113 BMM,,	

+
+-**	*
*"C8 [[V%RS[[WtWo6$< 7 T$<L [[BHHc3Z <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XRXXa[$9: ;r4   r
  c                   L   e Zd Zej                  j                  dg d      d        Zd Zej                  j                  dg d      d        Zd Z	ej                  j                  dg d      d	        Z
ej                  j                  d
      ej                  j                  dg ddddifddddifddddddddifddddifddddddddd d!d"d#d$d%d&dd'ifd(d)d)d'd*d+fd,d-d'd*d.fd/d'd'd0fd1d2d3d4ifd2ddif      ej                  j                  d5d6d7g      ej                  j                  d8d-dg      ej                  j                  dg d      ej                  j                  d9d:d;g      d<                                           Zej                  j                  d= ej                  ej                   j#                         ej                   j%                  d'>      g       ej                  ej                   j'                  d)?      ej                   j#                         g       ej                  ej                   j'                  d)?      ej                   j'                  d)?      g      g      ej                  j                  d@ej*                  ej.                  ej0                  g      dA               Zej                  j                  dBdC eddDE       edF       edG       edH       edI      gd:fdC edJ       edK       edL       edM       edN      gdOfdP eddDE       edQ       edR       edS       edT      gd:fdP edJ       edU       edV       edW       edX      gdYfg      dZ        Zd[ Zy:)\"TestDatetime64DateOffsetArithmeticr9  smsusrI   c                    t        t        d      t        d      g      j                  j                  |      }t        t        d      t        d      g      j                  j                  |      }t	        j
                  ||      }t	        j
                  ||      }|t        j                  j                  d      z   }t	        j                  ||       t        j                  j                  d      |z   }t	        j                  ||       y )N20130101 9:0120130101 9:02z20130101 9:01:05z20130101 9:02:05rQ   )
r   r   dtr%  r%   r&   ro   offsetsSecondr'   )r(   r*   r9  r`   r1   r0   result2s          r2   'test_dt64arr_series_add_tick_DateOffsetzJTestDatetime64DateOffsetArithmetic.test_dt64arr_series_add_tick_DateOffset  s     '?)CD

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

"WWT] 	 ooc>2??8^<rzz((++
)**##A&,
*r4   c                 b   t        t        d      t        d      g      }t        t        d      t        d      g      }t        j                  ||      }t        j                  ||      }|t        j
                  j                  d      z
  }t        j                  ||       t        j
                  j                  d       |z   }t        j                  ||       d}t        j                  t        |      5  t        j
                  j                  d      |z
   d d d        y # 1 sw Y   y xY w)Nry  rz  z20130101 9:00:55z20130101 9:01:55rQ   ((bad|unsupported) operand type for unaryrR   )r   r   r%   r&   ro   r|  r}  r'   rU   rV   rW   )r(   r*   r`   r1   r0   r~  rX   s          r2   'test_dt64arr_series_sub_tick_DateOffsetzJTestDatetime64DateOffsetArithmetic.test_dt64arr_series_sub_tick_DateOffset  s     i0)O2LMN)*I6H,IJ
 ooc>2??8^<rzz((++
)::$$Q''#-
*8]]9C0 	'JJa 3&	' 	' 	's   9#D%%D.cls_name)DayHourMinuter}  MilliMicroNanoc                     t        t        d      t        d      g      }t        j                  ||      }t	        t
        j                  |      }| |d      z     |d      |z    | |d      z
   y )Nry  rz  rQ   )r   r   r%   r&   r   ro   r|  )r(   r  r*   r`   
offset_clss        r2   *test_dt64arr_add_sub_tick_DateOffset_smokezMTestDatetime64DateOffsetArithmetic.test_dt64arr_add_sub_tick_DateOffset_smoke  sa     i0)O2LMNooc>2RZZ2
jm1jmr4   c                 <   |}|dk(  r]t        dd|      }|t        j                  j                  d      z   }|d   t        j                  j                  d      z   |d   k(  sJ t        dd|d	      }t	        g d
d|      j                  d      }t        j                  ||      }t        j                  ||      }t        j                  j                  d      t        j                  dd      t        d      fD ]  }||z   }t        j                  ||       ||z   }t        j                  ||       ||z
  }t        j                  ||       dj                  ddg      }	t        j                  t        |	      5  ||z
   d d d         y # 1 sw Y   xY w)Nr   z
2012-11-01r   r   rQ   r   z2010-11-01 00:00rP   r"  )z2010-11-01 05:00z2010-11-01 06:00z2010-11-01 07:00)rF   r    rI   )hoursrP  zbad operand type for unary -zcannot subtract DatetimeArrayrR   )r   ro   r|  r  r   r%  r%   r&   r"   r$  r   r'   rQ  rU   rV   rW   )
r(   r   r*   r    r   offsetr1   scalar	roundtriprX   s
             r2   test_dti_add_tick_tzawarez<TestDatetime64DateOffsetArithmetic.test_dti_add_tick_tzaware  sq   |Q2>ERZZ__Q//F8bjjooa00F1I===-qRcJ H
 '$-	 	 ~6??8^<zzq)2>>!S+A9STCUV 	FV^FOOFH-e^FOOFH-IOOIu-((/1PQC y4  	 s   FF	c                 T   t        t        d      t        d      t        d      t        d      t        d      t        d      t        d      t        d      g      j                  |      }t        j                  ||      }|t
        j                  u r|j                  d	   n|}g d
}t        |      D ]  \  }\  }}t        di ||i}	|}
|dk(  r|dk7  rd}
t        |D cg c]  }||	z   	 c}      j                  |
      }t        j                  ||      }t        j                  |||	z          t        |D cg c]  }||	z
  	 c}      j                  |
      }t        j                  ||      }t        j                  |||	z
         t        di t        |d |dz          }	t        |D cg c]  }||	z   	 c}      j                  |
      }t        j                  ||      }t        j                  |||	z          t        |D cg c]  }||	z
  	 c}      j                  |
      }t        j                  ||      }t        j                  |||	z
         d}t        j                  t        |      5  |	|z
   d d d         y c c}w c c}w c c}w c c}w # 1 sw Y   xY w)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   ))yearsr8   )monthsrQ   )r:   r   )r  rQ   )minutesr>   )secondsr8   )microsecondsrQ   r  rI   rw  r;   r  rR   rr   )r   r   r%  r%   r&   ro   r   iloc	enumerater   r'   dictrU   rV   rW   )r(   r*   r9  vec	vec_itemsrelative_kwargsri  offset_unitvalueoffexp_unitr   r1   rX   s                 r2   *test_dt64arr_add_sub_relativedelta_offsetszMTestDatetime64DateOffsetArithmetic.test_dt64arr_add_sub_relativedelta_offsets"  sc    /0/0,',',',',','	
 '$- 	 ooc>2#1R\\#ACHHQKs	
 (1'A 	#A#U4U34CHn, %y%A!a#g%ABJJ8THx@HOOHcCi0$y%A!a#g%ABJJ8THx@HOOHcCi0>tOGa!e$<=>C$y%A!a#g%ABJJ8THx@HOOHcCi0$y%A!a#g%ABJJ8THx@HOOHcCi0<Cy4 c	 5	 &B &B &B &B s$   !J	
;J
/J
	J
7JJ'	re  cls_and_kwargs	YearBeginmonthrQ   YearEnd
MonthBeginMonthEndSemiMonthEndSemiMonthBeginWeekweekdayr   r   BusinessDayBDay
QuarterEndQuarterBeginCustomBusinessDayCDay
CBMonthEndCBMonthBeginBMonthBegin	BMonthEndBusinessHour
BYearBeginBYearEndBQuarterBeginLastWeekOfMonthr8   FY5253Quarterr;   nearest)qtr_with_extra_weekstartingMonthr  	variationFY5253r   )r  r  r  WeekOfMonth)r  weekEasterr   dayr   	normalizeTFnr    Nz
US/Centralc                    t        |t              r|\  }}n|}i }|dk(  r|dv ry t        t        d      t        d      t        d      t        d      t        d      t        d      t        d	      t        d
      g      j	                  |      j                  |      }	t        j                  |	|      }	|t        j                  u r|	j                  d   n|	}
t        t        j                  |      } ||fd|i|}t        |
D cg c]  }||z   	 c}      j	                  |      }t        j                  ||      }t        j                  ||	|z          t        j                  |||	z          t        |
D cg c]  }||z
  	 c}      j	                  |      }t        j                  ||      }t        j                  ||	|z
         t        |
D cg c]  }||z   	 c}      j	                  |      }t        j                  ||      }t        j                  |||	z          d}t        j                  t         |      5  ||	z
   d d d        y c c}w c c}w c c}w # 1 sw Y   y xY w)Nr   )r  r  r  r  r  r  r   r  r  r  r  r  r  r  rR   )r   tupler   r   r%  r   r%   r&   ro   r   r  r   r|  r'   rU   rV   rW   )r(   r*   r  r  r  r9  r    r  kwargsr  r  r  r  r   r1   rX   s                   r2    test_dt64arr_add_sub_DateOffsetszCTestDatetime64DateOffsetArithmetic.test_dt64arr_add_sub_DateOffsets`  s#   r ne,  .Hf%HF6h #
 
  3434l+l+l+l+l+l+	 WT][_ 	  ooc>2#1R\\#ACHHQKs	RZZ2
A==f= !i!@!f*!@AII$O??8^<
#,/
&3,/ i!@!f*!@AII$O??8^<
#,/ i!@&1*!@AII$O??8^<
&3,/8]]9C0 	SL	 	 "A
 "A "A	 	s   I8II II'r-   r  )r  r   c           
         |}t        dd|      }t        j                  ||      }t        t	        t        |            D cg c]  } |||   ||          c}      }	t        j                  |	|      j                  t              }	t        j                  t              5   |||      }
d d d        t        j                  
|	       t        j                  ||      }|t        j                  u r-|t        j                  u rt        j                  |	t              }	t        j                  t              5   |||      }
d d d        t        j                  |
|	       y c c}w # 1 sw Y   xY w# 1 sw Y   1xY w)N
2017-01-01r8   r   r\   )r   r%   r&   r   rk   r   rm   rg   r   r
   r'   ro   r#   r   radd)r(   r)   r*   r   r-   r    r,   r.   r  r1   ress              r2   !test_dt64arr_add_sub_offset_arrayzDTestDatetime64DateOffsetArithmetic.test_dt64arr_add_sub_offset_array  s)   " qR8^4 c#h!P1"SVU1X"6!PQ??8^<CCFK''(:; 	#UE"C	#
X& ~6RXX%"	*>xx7H''(:; 	#UE"C	#
X& "Q	# 	#	# 	#s   E !
E%7
E1%E.1E: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                    |}t        ddd|      }t        j                  ||d      }t        ||      }	 |	|      }
t	        ||      j                  d      }t        j                  ||d      }t        j                  |
|       y )Nz01 Jan 2014z01 Jan 2017YS)startendrF   r    Fr[   rI   )r   r%   r&   r   r   r%  r'   )r(   r   r  expexp_freqr   r*   r    rh   mthr0   r1   s               r2   #test_dti_add_sub_nonzero_mth_offsetzFTestDatetime64DateOffsetArithmetic.test_dti_add_sub_nonzero_mth_offset  sy    j =tPRSt^U;dBV ,44T:??8^UC
)r4   c                     t        g dd      }|t        d      z   }t        g dd      }t        j                  ||       |t        dd      z   }t        g d	d      }t        j                  ||       y )
N)z2000-01-01 00:00:00.012345678z2000-01-31 00:00:00.012345678z2000-02-29 00:00:00.012345678rm  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_millizPTestDatetime64DateOffsetArithmetic.test_dt64arr_series_add_DateOffset_with_milli5  s    
 #
 zq11 
 #
 	fh/zqq99 
 #
 	fh/r4   )rb   rc   rd   rU   re   rf   r  r  r  r  r  r  r  r"   r#   ro   r|  r  r  r   r   addr   r  subr  r   r  r  rr   r4   r2   rs  rs    s   
 [[V%<=+ >+&'( [[Q		H [[V%<=6 >6z [[ JK[[*	
*	
7A,'*	
 *	
 !%	*	

 *	
 *	
 *	
 *	
 *	
 i^$*	
 *	
 i^$*	
 *	
 *	
 *	
  !*	
"  #*	
$ %*	
& '*	
( )*	
* +*	
, -*	
. /*	
0 1*	
2 3*	
4 5*	
6 A/7*	
:  +,%& !*	9*	
J 1qyQRK*	
L 156M*	
N O*	
P E1:&Q*	
R GQ<(S*	
-\ [[[4-8[[S1a&)[[V%<=[[TD,#78< 9 > * 9]- Lf<| [[BHHbjj))+RZZ^^a^-@ABBHHbjj++!+4bjj6I6I6KLMBHH&&Q&/1F1FQ1F1OP	
	 [[THLL)..(,,#OP' Q	'4 [[# !"-l+l+l+l+	 
 !$l+l+l+l+	 
 !"-l+l+l+l+	 
 !$l+l+l+l+	 
E-	
0b*c0b*0r4   rs  c                   $    e Zd Zd Zd Zd Zd Zy)TestDatetime64OverflowHandlingc                 0   t        t        d      gd      }t        t        g      }t        j                  ||      }t        j                  ||      }t        t        gd      }t        j                  ||      }||z
  }t        j                  ||       y )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_maskingz9TestDatetime64OverflowHandling.test_dt64_overflow_maskingY  sv    y./x@ut^4~6!3%x8??8^<
)r4   c                 t   t        d      }t        d      }t        ddd      }t        |      }d}t	        j
                  t        |      5  ||z
   d d d        t	        j
                  t        |      5  ||z
   d d d        t	        j
                  t        |      5  ||z    d d d        t	        j
                  t        |      5  ||z    d d d        t        |j                  d	<   t        g d
d      }||z   }t        j                  ||       ||z   }t        j                  ||       t        |j                  dd  t        g dd      }||z
  }t        j                  ||       ||z
  }t        j                  ||        y # 1 sw Y   7xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w)Nz
1700-01-31z
20000 Daysz
1949-09-30100YEr   rE   Overflow in int64 additionrR   r6   )z
2004-10-03z
2104-10-04z
2204-10-04r   rm  r\   r;   )z
91279 Daysr   r   r   timedelta64[ns])r   r   r   r   rU   rV   OverflowErrorr   r  r%   r   )r(   r{  tdr,   r`   rX   r1   r  s           r2   test_dt64_series_arith_overflowz>TestDatetime64OverflowHandling.test_dt64_series_arith_overflowg  s~   |$|$GQ?Sk*]]=4 	"H	]]=4 	H	]]=4 	"H	]]=4 	H	 =EU
 Bh
sH-3h
sH-=EVWBh
sH-3h
sXI./	 		 		 		 	s0   F6FF"F.FF"F+.F7c                    t        j                  dt        j                  g      j	                  d      }t        j                  dt        j
                  g      j	                  d      }t        d      j	                  d      }||j                         |j                         j                  d      |j                         j                  d      g}t        d      j	                  d      }||j                         |j                         j                  d      |j                         j                  d      g}d}|D ]+  }t        j                  t        |      5  ||z
   d d d        - t        j                  j                  |j                  z
  }	|D ]  }||z
  }
|
d	   j                  |	k(  rJ  t        j
                  j                  |j                  z
  }	|D ]  }||z
  }
|
d	   j                  |	k(  rJ  |D ]+  }t        j                  t        |      5  ||z
   d d d        - y # 1 sw Y   xY w# 1 sw Y   DxY w)
N2021-12-28 17:19rI   
1950-01-01rm  zdatetime64[D]
1980-01-01r  rR   r;   )ro   to_datetimer   maxr%  minrF  r   rm   rU   rV   r  _value)r(   dtimaxdtimintsnegts_neg_variantstsposts_pos_variantsrX   variantr1   r  s              r2   )test_datetimeindex_sub_timestamp_overflowzHTestDatetime64OverflowHandling.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 ! ! !	! ==''%,,6& 	-G7"Cq6==H,,,	- ==''%,,6& 	-G7"Cq6==H,,,	- ' 	!G}C8 ! ! !	!! !! !s   H*H6*H3	6H?	c                 2   t        j                  dt        j                  g      j	                  d      }t        j                  dt        j
                  g      j	                  d      }t        j                  ddg      j	                  d      }t        j                  ddg      j	                  d      }t        j                  j                  |d   j                  z
  }||z
  }|d   j                  |k(  sJ t        j
                  j                  |d   j                  z
  }||z
  }|d   j                  |k(  sJ d}t        j                  t        |      5  ||z
   d d d        t        j                  t        |      5  ||z
   d d d        t        j                  t        j
                  g      }|t        j                  z   t        d      z   }	t        j                  t        |      5  |	|z
   d d d        t        j                  t        j                  g      }
|
t        j
                  z   t        d      z
  }t        j                  t        |      5  |
|z
   d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   y xY w)	Nr  rI   r  r  r;   r  rR   1us)ro   r  r   r  r%  r  r  rU   rV   r  r   )r(   r  r  ts_negts_posr1   r0   rX   tminr  tmaxr  s               r2   -test_datetimeindex_sub_datetimeindex_overflowzLTestDatetime64OverflowHandling.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 	VO	 ]]=4 	VO	 ~~y}}o.IMM!Ie$44]]=4 	I	 ~~y}}o.IMM!Ie$44]]=4 	2I	 		 		 		 	
	 	s0   I(I5-JJ(I25I>J
JN)rb   rc   rd   r  r  r  r  rr   r4   r2   r  r  V  s    */@$!L r4   r  c                      e Zd Zd Zd Zd Zej                  j                  d e	d       e	d      e
g e	d       e	d       e	d	      gd
dgg e	d       e	d      e
g edd       edd      e
gg dg e	dd       e	dd      e
g edd      e
 edd      gg dgg      d        Zd Zd Zd Zd Zd Zd Zy)TestTimestampSeriesArithmeticc                 X   t        d      }t        d      } ||      } ||      }t        j                  |||z          t        j                  |||z
         t        j                  |||z          d}t        j                  t
        |      5  ||z
   d d d        y # 1 sw Y   y xY w)Nr  r\   r   r#  rR   )r   r%   r'   rU   rV   rW   )r(   r*   abrX   s        r2   test_empty_series_add_subz7TestTimestampSeriesArithmetic.test_empty_series_add_sub  s    ""11
1q5!
1q5!
1q5!]]9C0 	E	 	 	s   B  B)c                    t        t        dd      gdz        }t        j                  |j                  d<   t        t        d      t        d      t        d      g      }t        j                  |j                  d<   t        t        d      t        d	      t        d
      g      }||z
   ||z
   ||z    ||z    ||z
   ||z    ||z    y )NrQ   r   r  r  r8   20111230r   20120103201112312012010220120104)r   r   r"   ri   r  r   )r(   td1dt1dt2s       r2   test_operators_datetimelikez9TestTimestampSeriesArithmetic.test_operators_datetimelike  s    i156:;ff *%*%*%
 ff*%*%*%
 	c	c	 	c	c	c	 	c	c	r4   c           
          t        t        dddddd            }t        ddddd      }t        |gd	| d
      }||z
  }t        j                  |d      }|j
                  d| d
k(  sJ y )Ni  r;            r   r      M8[r8  r\   rw  r7  )r   r   r   r%   get_finest_unitr]   )r(   r9  r_   r{  r`   r0   r  s          r2   test_dt64ser_sub_datetime_dtypez=TestTimestampSeriesArithmetic.test_dt64ser_sub_datetime_dtype  s{    xaBB78dAr2r*bT3tfA/r %%dD1||hZq9999r4   zleft, right, op_failr  r   r  r  r  r  __rsub__rQ   r   r  )r  __radd__r  r  r[   c                     |}t        |      }t        |      }t        ||d       }||vr-t        j                  t        d      5   ||       d d d        y  ||       y # 1 sw Y   y xY w)Nz%operate|[cC]annot|unsupported operandrR   )r   r   rU   rV   rW   )	r(   r   r   op_failall_arithmetic_operatorsop_strarg1arg2r   s	            r2   #test_operators_datetimelike_invalidzATestTimestampSeriesArithmetic.test_operators_datetimelike_invalid  ss    8 *d|e} T64(  !H  4  tH s   	A  A)c                    t        t        dd      g      j                  j                  |      }t        t        dd      g      j                  j                  |      }||z
  }t        t	        d      g      j                  j                  |      }t        j                  ||       ||z
  }t        t	        d      g      j                  j                  |      }t        j                  ||       y )Nz
2016-02-10zAmerica/Sao_Paulor[   z
2016-02-082daysz-2days)r   r   r{  r%  r   r%   r   )r(   r9  s1s2r0   r1   s         r2   test_sub_single_tzz0TestTimestampSeriesArithmetic.test_sub_single_tz<  s    Y|0CDEFIIQQRVWY|0CDEFIIQQRVWb9W-./22::4@
vx0b9X./033;;DA
vx0r4   c                     t        ddd      }t        |      }t        t        dgdz              }||z
  }t        j                  ||       ||z
  }t        j                  ||       y )Nz
1999-09-30r>   r   r   0days)r   r   r   r%   r   )r(   r,   r`   r1   r  s        r2   test_dt64tz_series_sub_dtitzz:TestTimestampSeriesArithmetic.test_dt64tz_series_sub_dtitzG  sb     rlCSk.'R89Ci
sH-Ci
sH-r4   c           	         t        t        ddddt        j                        t        g      j
                  j                  |      }t        ddddt        j                        }t        j                  |d      }t        t        d      t        g      j
                  j                  |      }||z
  }t        j                  ||       |t        |      z
  }t        j                  ||       y )	Nr            )r   r"  rw  rx   )r   r   pytzutcr   r{  r%  r%   r$  r   r   r   )r(   r9  r`   r{  r  r  r0   r~  s           r2   test_sub_datetime_compatz6TestTimestampSeriesArithmetic.test_sub_datetime_compatS  s    htQBtxx@#FGJJRRSWXdAr2dhh7%%dD1i)3/033;;HEr
vs+	"%
w,r4   c                 N   t        t        d      t        d      g      }|t        j                  j	                  d      z   }t        j                  j	                  d      |z   }t        t        d      t        d      g      }t        j                  ||       t        j                  ||       |t        j                  j                  d      z   t        j                  j	                  d      z   }t        t        d      t        d      g      }t        j                  ||       y )Nry  rz  rQ   z20130101 9:01:00.005z20130101 9:02:00.005z20130101 9:06:00.005z20130101 9:07:00.005)r   r   ro   r|  r  r%   r   r  )r(   ru  r0   r~  r1   s        r2   *test_dt64_series_add_mixed_tick_DateOffsetzHTestTimestampSeriesArithmetic.test_dt64_series_add_mixed_tick_DateOffset_  s     Io.	/0JKLRZZ%%a((**""1%)-.	:P0QR
 	vx0
w1RZZ&&q))BJJ,<,<Q,??-.	:P0QR
 	vx0r4   c                    t        t        t        d      g      j                  j	                  |      }t        t        t        gd| d      }t        t        gd| d      }t        j                  t         |z   |       d}t        j                  t        |      5  | |z    d d d        t        j                  t         |z   |       t        j                  t        |      5  | |z    d d d        t        j                  |t        z   |       t        j                  t        |z   |       t        j                  |t        z   |       t        j                  t        |z   |       y # 1 sw Y   xY w# 1 sw Y   xY w)Nr6  zdatetime64[r8  r\   z-bad operand type for unary -: 'DatetimeArray'rR   )
r   r   r   r{  r%  r%   r   rU   rV   rW   )r(   r9  datetime_seriesnat_series_dtype_timestampsingle_nat_dtype_datetimerX   s         r2   test_datetime64_ops_natz5TestTimestampSeriesArithmetic.test_datetime64_ops_natr  sh    #y'<!=>AAII$O%+S#JD6QR>S%T"$*C5+dV18M$N! 	to57QR=]]9C0 	9&&8	9 	D--/I	
 ]]9C0 	D&&)CC	D 	&,.H	
 	,,.H	
 	&,.H	
 	,,.H	
)	9 	9	D 	Ds    E,(E8,E58Fc                 	   d}t        t        dd|      d      }|j                         }t        j                  |j
                  d<   t        t        j                  ddd	
            }|j                         }t        j                  |j
                  d<   |j                  j                  J ||d   z   }|j                  j                  d       |d   z   j                  j                  |      }t        j                  ||       ||d   z   }|j                  j                  d       |d   z   j                  j                  |      }t        j                  ||       |d   |z   }|j                  j                  d       |d   z   j                  j                  |      }t        j                  ||       |d   |z   }|j                  j                  d       |d   z   j                  j                  |      }t        j                  ||       ||d   z
  }|j                  j                  d       |d   z
  j                  j                  |      }t        j                  ||       d}t        j                  t         |      5  |d   |z
   d d d        ||d   z
  }|j                  j                  d       |d   z
  j                  j                  |      }t        j                  ||       t        j                  t         |      5  |d   |z
   d d d        ||z   }|j                  j                  d       |z   j                  j                  |      }t        j                  ||       ||z   }|j                  j                  d       |z   j                  j                  |      }t        j                  ||       ||z
  }|j                  j                  d       |z
  j                  j                  |      }t        j                  ||       ||z
  }|j                  j                  d       |z
  j                  j                  |      }t        j                  ||       d}t        j                  t         |      5  ||z
   d d d        t        j                  t         |      5  ||z
   d d d        y # 1 sw Y   +xY w# 1 sw Y   xY w# 1 sw Y   MxY w# 1 sw Y   y xY w)Nr  z2000-01-01 09:00:00rQ   r   r5   r   r8   z1 days 1 minrP   )r   rF   r;   r   r  rR   rZ  )r   r   r   r"   ri   r  ro   rp   _valuesrF   r{  r   r%   r   rU   rV   rW   )	r(   r    r  r  r  td2r0   r  rX   s	            r2   *test_operators_datetimelike_with_timezoneszHTestTimestampSeriesArithmetic.test_operators_datetimelike_with_timezones  s   Z 5qRHuUhhjffR''LMhhjff{{'''s1vvv!!$'#a&044@@D
vs+s1vvv!!$'#a&044@@D
vs+ Q#vv!!$'#a&044@@D
vs+Q#vv!!$'#a&044@@D
vs+s1vvv!!$'#a&044@@D
vs+8]]9C0 	FSL	 s1vvv!!$'#a&044@@D
vs+]]9C0 	FSL	 svv!!$'#-11==bA
vs+svv!!$'#-11==bA
vs+svv!!$'#-11==bA
vs+svv!!$'#-11==bA
vs+%]]9C0 	#I	]]9C0 	#I	 	7	 		 	&	 		 	s0   	R6	S>S'S6S SSS%N)rb   rc   rd   r  r  r%  rU   re   rf   r   r   r   r.  r3  r6  r=  r?  rD  rH  rr   r4   r2   r  r    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<r4   r  c                      e Zd Zd Zd Zd Zd Zd Zd Ze	j                  j                  dej                  ej                  g      d        Zd	 Zd
 Zd Ze	j                  j                  dej                  ej(                  ej                  g      d        Ze	j                  j                  dej.                  ej2                  g      d        Zy)TestDatetimeIndexArithmeticc                    |}t        t        d|      gdz        }t        j                  dd      }t	        dd|      }|j                  d       }||z   }t        j                  ||       ||z   }t        j                  ||       ||j                  z   }t        j                  ||       |j                  |z   }t        j                  ||       y Nr  r[   r>   0 daysrB   r   	r   r   ro   rp   r   r.  r%   r  r   r(   r)   r    r,   r)  r1   r0   s          r2   test_dti_add_tdiz,TestDatetimeIndexArithmetic.test_dti_add_tdi  s    Y|;<rAB  26lB2>&&t, s
fh/s
fh/ szz!
fh/c!
fh/r4   c                 X   |}t        t        d|      gdz        }t        j                  dd      }t	        dd|      }|j                  d       }t        t        d|      gdz        }||z  }t        j                  ||       t        j                  dd      }||z  }t        j                  ||       t        t        d|      gdz        }||j                  z  }t        j                  ||       t        j                  dd      }||z  }t        j                  ||       y rL  rN  rO  s          r2   test_dti_iadd_tdiz-TestDatetimeIndexArithmetic.test_dti_iadd_tdi  s   Y|;<rAB  26lB2>&&t, 	,2 >?"DE#
fh/##Hb9#
fh/ 	,2 >?"DE#**
fh/##Hb9#
fh/r4   c                    |}t        t        d|      gdz        }t        j                  dd      }t	        dd|d      }|j                  d       }||z
  }t        j                  ||       d}t        j                  t        |	      5  ||z
   d d d        ||j                  z
  }t        j                  ||       d
}t        j                  t        |	      5  |j                  |z
   d d d        y # 1 sw Y   dxY w# 1 sw Y   y xY w)Nr  r[   r>   rM  rB   -1Dr"  z cannot subtract .*TimedeltaArrayrR   0cannot subtract a datelike from a TimedeltaArray)r   r   ro   rp   r   r.  r%   r  rU   rV   rW   r   )r(   r)   r    r,   r)  r1   r0   rX   s           r2   test_dti_sub_tdiz,TestDatetimeIndexArithmetic.test_dti_sub_tdi	  s    Y|;<rAB  26lB2EJ&&t, s
fh/0]]9C0 	#I	 szz!
fh/@]]9C0 	JJ	 		 		 	s   C5D5C>D
c                    |}t        t        d|      gdz        j                  |      }t        j                  dd|      }t        dd|d|      }|j                  d       }t        t        d|      gdz        j                  |      }||z  }t        j                  ||       |j                  j                         }||z  }t        j                  ||j                         |j                  j                         }	t        j                  |	||	       t        j                  |	|j                         d	}
t        j                  t         |

      5  ||z  }d d d        t        t        d|      gdz        j                  |      }||j"                  z  }t        j                  ||       t        j                  t         |

      5  |xj"                  |z  c_        d d d        t        j                  t         |

      5  |xj$                  |z  c_        d d d        y # 1 sw Y   xY w# 1 sw Y   OxY w# 1 sw Y   y xY w)Nr  r[   r>   rM  r   r9  rT  )r   r    rF   r9  )outrU  rR   )r   r   r%  ro   rp   r   r.  r%   r  rK   r   assert_datetime_array_equalr"   subtractrU   rV   rW   r   rF  )r(   r)   r9  r    r,   r)  r1   r0   rL   rY  rX   s              r2   test_dti_isub_tdiz-TestDatetimeIndexArithmetic.test_dti_isub_tdi!  s   Y|;<rABJJ4P  2DAlB2EPTU&&t, 	,2 >?"DEMMdS#
fh/ iinns

&&sHNN;iinn
C#&
&&sHNN;@]]9C0 	3JC	 	,2 >?"DEMMdS#**
fh/]]9C0 	JJ#J	 ]]9C0 	KK3K	 		 		 		 	s$   H&H2H>&H/2H;>Ic                     t        dd|      }|j                  }||z
  }||z
  }t        j                  ||       |}||z   }||z   }t        j                  ||       ||z
  }||z
  }t        j                  ||       y )Nr   r   r   )r   r#   r%   r  )r(   r)   r,   rL   r0   r1   r)  s          r2   test_dta_add_sub_indexz2TestDatetimeIndexArithmetic.test_dta_add_sub_indexM  s    Q3CDiis9
fh/s9
fh/s9
fh/r4   c                 
   t        dd|      }t        dd|      j                  d      }t        g d      j                  |      }||z
  }t	        j
                  ||       ||z
  }t	        j
                  ||       d}t        j                  t        |      5  ||z
   d d d        t        j                  t        |      5  ||z
   d d d        ||z  }t	        j
                  ||       t        dd|      }t        dd|      }d	}t        j                  t        |      5  ||z
   d d d        t        d
t        j                  dg      j                  |      }t        ddt        j                  g      j                  |      }t        dt        j                  t        j                  g      j                  |      }||z
  }t	        j
                  ||       y # 1 sw Y   @xY w# 1 sw Y   $xY w# 1 sw Y   xY w)Nr   r   rX  r  )r   r   r   r  rR   r   z$cannot add indices of unequal lengthrg  z
2012-01-03z
2012-01-02rx   )r   r   r   r%  r%   r  rU   rV   rW   r   r   r"   ri   )	r(   r9  r,   r:  r1   r0   rX   dti1rG  s	            r2   test_sub_dti_dtiz,TestDatetimeIndexArithmetic.test_sub_dti_dti^  s    QT:J=II,W!),44T:s
fh/&
fh/K]]9C0 	SL	 ]]9C0 	&L	 	s

c8, *ad;*ad;4]]:S1 	4K	 lBFFLABJJ4PlL"&&ABJJ4P!8RVVRVV"<=EEdK
fh/-	 		 		 	s$   GG,&G9G),G69Hr   c                 V   t        t        d      t        d      t        d      t        d      g      } ||      }g dfd}t        t        d      gdz   D ]L  \  }}}}	}
 |||||	|
      }t	        ||||	|
	      } |||      } |||      }t        j                  ||       N y )
N20130301z20130228 23:00:00z20130228 22:00:00z20130228 21:00:00)rD   rP   mru  rw  c                      t        j                  t        t        t         j                  t        |                         S r   )r"   sumrj   r   r$  zip)args	intervalss    r2   r$  z_TestDatetimeIndexArithmetic.test_timedelta64_equal_timedelta_supported_ops.<locals>.timedelta64  s)    66$wr~~s47KLMNNr4   r8   rQ   )r:   r  r  r  r  )r   r   r   rk   r   r%   r'   )r(   r   r*   r`   rM   r$  drP   rd  ru  rw  nptdpytdr   r   ri  s                  @r2   .test_timedelta64_equal_timedelta_supported_opszJTestDatetimeIndexArithmetic.test_timedelta64_equal_timedelta_supported_ops  s    *%-.-.-.	
 S!.		O &q
Q8 	&NAq!Qq!Q2.D!1aQSTDS$-CS$-COOC%	&r4   c                    t        t        t        d      g      }t        t        t        d      g      }t        t        t        gd      }t        t        t        gd      }t        t        gd      }t        t        gd      }t	        j
                  ||z
  |       t	        j
                  ||z
  |       t	        j
                  | |z   |       t	        j
                  ||z
  |       t	        j
                  ||z
  |       t	        j
                  | |z   |       d}t        j                  t        |      5  ||z
   d d d        t	        j
                  ||z   |       t	        j
                  ||z   |       t	        j
                  ||z   |       t	        j
                  ||z   |       t	        j
                  ||z   |       t	        j
                  ||z   |       y # 1 sw Y   xY w)N1sr6  r  r\   rm  zcannot subtract a datelikerR   )	r   r   r   r   r%   r   rU   rV   rW   )r(   timedelta_seriesrA  nat_series_dtype_timedeltarB  rC  single_nat_dtype_timedeltarX   s           r2   )test_ops_nat_mixed_datetime64_timedelta64zETestDatetimeIndexArithmetic.test_ops_nat_mixed_datetime64_timedelta64  s   !3	$"89 #y'<!=>%+S#J>O%P"%+S#J>N%O"$*C58H$I!%+SE9J%K" 	779S	
 	88:T	
 	''/9;U	
 	&)BB&	

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

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

 	&)BB&	
 	%(BB&	
5	9 	9s   <G!!G*c                    t        dddd|      }t        j                  dd      }t        dddd|      }||z   t        j                  ||      fD ];  }t	        |t
              sJ t        j                  ||       |j                  dk(  r;J  t        d	ddd|      }||z
  t        j                  ||      fD ];  }t	        |t
              sJ t        j                  ||       |j                  dk(  r;J  |j                  d       }t        j                  t        j                  dd      t        j                  d
d      t        j                  dd      g      }t        g dd      j                  |      }||z   t        j                  ||      fD ]3  }t        j                  ||       |j                  |j                  k(  r3J  t        g dd      j                  |      }||z
  t        j                  ||      fD ]E  }t	        |t
              sJ t        j                  ||       |j                  |j                  k(  rEJ  y )Nrv   r   2Dr   )r   rF   r   r9  r;   rD   rY  
2010-12-31r8   )rY  z
2011-01-05z
2011-01-08r   )rv  rv   rY  )r   r"   r$  r  r   r   r%   r  rF   r[  r.  r#   r%  )r(   r9  r/  deltar  r0   s         r2   test_ufunc_coercionsz0TestDatetimeIndexArithmetic.test_ufunc_coercions  s   qt#DQq#&qt#DQU{BFF3$67 	'Ffm444!!&#.;;$&&&	'
 qt#DQU{BKKU$;< 	'Ffm444!!&#.;;$&&&	' nnT"^^As#R^^As%;R^^As=ST
 6S

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

'$- 	 U{BKKU$;< 	+Ffm444!!&#.;;#((***	+r4   c                 .   |}t        ddg||d         j                  d      }t        t        d      gdz  ||d	   
      }t        |t        d      z   ||d   
      }|d   |_        |j
                  |j
                  k(  sJ ||z   }t        j                  ||       ||z   }t        j                  ||       |t        d      z   }|j                  |z   }	t        j                  |	|       ||j                  z   }
t        j                  |
|       y )Nz2016-06-28 05:30z2016-06-28 05:31r   )r    r   rI   rQ   )r  r8   r;   )r   r   )
r   r%  r   r   r   r]   r%   r   r   r  )r(   r)   namesr    r   r`   r1   r0   r~  result3result4s              r2   test_dti_add_seriesz/TestDatetimeIndexArithmetic.test_dti_add_series	  s   !34%(

'$- 	 i*+a/u58L%)A"66e%PQ(S a~~,,,u
vx0#+
w19Q//**u$
gx0#**$
gx0r4   c           
      L   |}|}t        dd||d         } |t        j                  j                         t        j                  j	                  d      g|d         }t        ||      }	t        j                  t              5   |||      }
d d d        t        t        t        |            D cg c]  } |||   ||          c}|d   d	      }t        j                  ||	      j                  t              }t        j                  
|       y # 1 sw Y   xY wc c}w )
Nr  r8   r   )r   r    r   r  r;   r   infer)r   rF   )r   ro   r|  r  r  r   r%   r   r
   r   rk   r   r&   rm   rg   r'   )r(   r)   rz  r   r   	other_boxr    r,   r-   r/   r  r  r1   s                r2    test_dti_addsub_offset_arraylikez<TestDatetimeIndexArithmetic.test_dti_addsub_offset_arraylike%	  s    
 $	qReAhG2::..0"**..1.2EFUSTXVc5)''(:; 	!S%.C	! !+0S?;aRAa!;%(QX
 ??8T299&A
X&	! 	! <s   
D2D!Dr  c                    |}t        dd|      }t        j                  ||      } |t        j                  j                         t        d      g      }t        ||      }t        ddg|      }	t        j                  |	|      j                  t              }	t        j                  t              5  ||z   }
d d d        t        j                  
|	       t        d	d
g|      }	t        j                  |	|      j                  t              }	t        j                  t              5  ||z
  }
d d d        t        j                  |
|	       y # 1 sw Y   xY w# 1 sw Y   ,xY w)Nr  r8   r   r   r9   z
2017-01-31z
2017-01-06r[   z
2016-12-31z
2016-12-29)r   r%   r&   ro   r|  r  r   r   r   rm   rg   r   r
   r'   )r(   r)   r*   r  r    r,   r.   r-   r/   r1   r0   s              r2    test_dti_addsub_object_arraylikez<TestDatetimeIndexArithmetic.test_dti_addsub_object_arraylike;	  s$    qR8^42::..0)2CDEeU+ ,!=BRS??8T299&A''(:; 	#U]F	#
) ,!=BRS??8T299&A''(:; 	#U]F	#
)	# 	#	# 	#s   4E)EEE#N)rb   rc   rd   rP  rR  rV  r\  r^  ra  rU   re   rf   r   r  r  rm  rs  rx  r}  r   r  r  ro   r   r"   r#   r  rr   r4   r2   rJ  rJ    s    0,040#X0"$0T [[THLL(,,#?@& A&2C
J%+N1. [[THLL)..(,,#OP' Q'* [[[288RXX*>?* @*r4   rJ  r  )r6   r   r;   r  )r   r8   r9  rt  c           	      4   t        t        d      t        d      t        d      t        d      t        d      g      j                  |      }t        |j                  | dz  |z   |j
                  j                        }|j                  d|j                   d	      }t        |      }|D cg c]&  }|t        j                  j                  | |
      z   ( }}t        |      j                  |j                        }	t        j                  ||	       y c c}w )Nr  r  r   r  r  r:  )resor#  r8  )r  r  )r   r   r%  r	   r  rK   _cresor  r9  ro   r|  r   r%   r  )
r  r  r9  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
NQ1rzz$$5$@@
NC
NS!))#((3H&(+ Os   -+Dc                  P   t        ddd      } | j                  j                  d      }t        j                  t        d      D cg c]"  }t        j                  j                  |      g$ c}      }|j                  |j                  k(  sJ t        j                  t              5  ||z   }d d d        t        j                  t              5  |d d df   |d d df   z   j                  dd      }d d d        t        j                         t        j                  t              5  ||j                  t              z
  }d d d        j                  dk(  sJ t!        d	 |j#                         D              sJ y c c}w # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   ZxY w)
Nz
1994-02-132Wr   rE   )r   r;   r   r6   r;   c              3   :   K   | ]  }|j                   d k(    yw)r   N)r  ).0r  s     r2   	<genexpr>z6test_dt64arr_addsub_object_dtype_2d.<locals>.<genexpr>	  s     8"ryyA~8s   )r   rK   reshaper"   r#   rk   ro   r|  r  shaper%   r   r
   rT   rm   rg   r   ravel)r,   rL   r  r-   r0   r1   r~  s          r2   #test_dt64arr_addsub_object_dtype_2dr  k	  s]    \a
8C
))

F
#CHH58<arzz~~a()<=E;;#))###		#	#$6	7 u		#	#$6	7 <1Iad+44R;< 1		#	#$6	7 +

6**+ ==F"""88888 = < <
+ +s*   'E?(F$F*FFFF%c                  2   t        g dd      } | t        j                  dd      z
  }t        t        gdz  d      }t	        j
                  ||       | t        j                  dd      z   }t        t        gdz  d      }t	        j
                  ||       y )Nl   CE|l   |< l   ({?M5datetime64[ms]r\   r   rv  r   ztimedelta64[ms]r   r"   r   r   r%   r   r$  r`   r0   r1   s      r2   (test_non_nano_dt64_addsub_np_nat_scalarsr  	  s    
<DT
UC2==--Fseai'89H68,2>>%..Fseai'78H68,r4   c                  .   t        g dd      } | t        j                  d      z
  }t        t        gdz  d      }t	        j
                  ||       | t        j                  d      z   }t        t        gdz  d      }t	        j
                  ||       y )Nr  r  r\   r   r   r  rm  r  r  s      r2   1test_non_nano_dt64_addsub_np_nat_scalars_unitlessr  	  s~     <DT
UC2==''Fseai'89H68,2>>%((Fseai'78H68,r4   c                  2   t        g dd      } | t        j                  dd      z
  }t        t        gdz  d      }t	        j
                  ||       | t        j                  dd      z   }t        t        gdz  d      }t	        j
                  ||       y )N)i,0  iZ  iہ  zdatetime64[s]r\   r   rD   r   ztimedelta64[s]r  r  s      r2   9test_non_nano_dt64_addsub_np_nat_scalars_unsupported_unitr  	  s~    
&o
>C2==,,Fseai'78H68,2>>%--Fseai7H68,r4   )5r   r   r   	itertoolsr   r   r   numpyr"   rU   r;  pandas._libs.tslibs.conversionr   pandas._libs.tslibs.offsetsr	   pandas.errorsr
   pandasro   r   r   r   r   r   r   r   r   r   pandas._testing_testingr%   pandas.corer   pandas.tests.arithmetic.commonr   r   r   r   r   rt   r   r
  rs  r  r  rJ  re   rf   r  r  r  r  r  rr   r4   r2   <module>r     s#   
     > 4 , 
 
 
  ! m* m*`g1 g1TP Pn_ _DP0 P0fw wtB BJ}* }*@ *-:.!89, : / .,&90	-
-	-r4   