
    bMh`                       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.        /                    dg d          e	j.        /                    dg d          e	j.        /                    dg d          d                                      Z0d! Z1d" Z2d# Z3d$ Z4dS )%    )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                   ^   e Zd Zd Zej                            ddddd e             ed           e	d	d
d
          
                                dej        g	          d             Zej                            d e ed                     ej        d           ej        d                              ej                   ej        d                              e           ej        dd          j         ej         ej        dd                     e ej        dd                     ej        dd                              e           ej        ddd          j         ej        ddd                              e          g
          d             Zd Zd ZdS )"TestDatetime64ArrayLikeComparisonsc                 b   |}|}t          dd|          }t          j        |                                d                   }t	          j        ||          }t          ||d          }||k    }	t          j        g d          }
t	          j        |
|          }
t	          j        |	|
           d S )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              g/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/pandas/tests/arithmetic/test_datetime64.pytest_compare_zerodimz7TestDatetime64ArrayLikeComparisons.test_compare_zerodim5   s    Q2666*++S))eUD11%800011?8T22
)))))    r-   fooc   g      @   daysi     Nc                 z    |}t          dd|          }t          j        ||          }t          |||           d S )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   sF    ( RB777^44!%?????r4   r>   1nsr   1 Dayz
1971-01-01Dfreqr   c                     |}t          ddd|          j        }t          j        ||          }t	          |||           d S )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^   sK    & D"DDDJoc>2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        ||           ||k    }t          j        ||            d}t          j        t          |          5  ||k      d d d            n# 1 swxY w Y   t          j        t          |          5  ||k     d d d            n# 1 swxY w Y   t          j        t          |          5  ||k     d d d            n# 1 swxY w Y   t          j        t          |          5  ||k     d d d            d S # 1 swxY w Y   d S )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   sy   CrBBBH!Q3q69!+<+<+<=>>8>>>??
#FH555
#FXI666T]9C000 	 	%KK	 	 	 	 	 	 	 	 	 	 	 	 	 	 	]9C000 	 	%KK	 	 	 	 	 	 	 	 	 	 	 	 	 	 	]9C000 	 	5LL	 	 	 	 	 	 	 	 	 	 	 	 	 	 	]9C000 	 	5LL	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	sH   2CC	C	+C>>DD$D77D;>D;E11E58E5c                 B   |}|}t          d|          }t          |t          g          }t          j        ||          }t          ||d          }t          ddgt          j                  }	t          j        |	|          }	||k    }
t          j        |
|	           d S )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oc3''c2t,,4-rx888?8T2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       
* * * [FHHI1 HT1a  %%''F	
 $@ @% $@ [ DrOOBIbMMBIbMM  ,,BIbMM  ((Bub1117BH'R'r:::;;D##E266677Bw333::6BBBOLsB???EBOLsB???FFvNN	
  > >!  >  .* * * * *r4   r   c                      e Zd Ze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                            d
ddg          ej                            dde
g          e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                            d ed          e ed          g ed          e ed          g e	dd          e e	d	d          gg          ej                            dde
g          d                         Zej                            d eddd           eddd          g          d             Zej                            dg d          d             Zd Zej                            d  ed!           ed"dd           ej        d#d$          g          e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dS )+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        ||           d S )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0000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          k    |           t          j        t          |k    |           g d}t          j        ||          }|t
          j        u r|t          u rt          j        |d          }t          j        |t          k     |           t          j        t          |k    |           t          j        |t          k    |           t          j        t          |k    |           t          j        |t          k    |           t          j        t          |k     |           t          j        |t          k    |           t          j        t          |k    |           d S )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2"(??ux777H
X...
tX...%%%?8T22"(??ux777H
X...
tX...(((?8T22"(??ux777H
s
H---
d
H---
X...
tX...
s
H---
d
H---
X...
tX.....r4   vali  r;      rQ   c                     t          t          dd                    }|k    }t          fd|D                       }t          j        ||           d S )Nr=   r>   rB   c                     g | ]}|k    	S rr   rr   ).0xr   s     r2   
<listcomp>zQTestDatetime64SeriesComparison.test_series_comparison_scalars.<locals>.<listcomp>	  s    333q1s7333r4   )r   r   r%   r   )r(   r   seriesr0   r1   s    `   r2   test_series_comparison_scalarsz=TestDatetime64SeriesComparison.test_series_comparison_scalars  sa    
:r:::;;#3333F33344
vx00000r4   z
left,right))ltgt)lege)eqr   )ner   c                 &   t          t          dd          d          }|                    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        ||           d S )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777gFFFd##5!!A5!!A4(((E** 6#y4455:..44
vx000 6#y//005))3//
vx000 6%:!6!677:..66
vx000 6%%%e$$
vx00000r4   c                    |}t          t          d          t          d          t          g          }t          j        ||          }t          ||d          }||k    }t          j        g d|          }t          j        ||           |t          j        u r@t          j
        t          d          5  ||d         k     d d d            n# 1 swxY w Y   n8||d         k    }t          j        g d|          }t          j        ||           |t          j        u r@t          j
        t          d          5  ||d	         k     d d d            n# 1 swxY w Y   n8||d	         k    }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            n# 1 swxY w Y   n8||d         k    }t          j        g d|          }t          j        ||           |t          j        u rBt          j
        t          d          5  ||d	         k     d d d            d S # 1 swxY w Y   d S ||d	         k    }t          j        g d|          }t          j        ||           d S )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/  s   i 566	,8O8OQTUVVoc3''c3--?#7#7#7>>
)))", z???  s1v               CF]F':':':DAAHOFH---", z???  s1v               CF]F'9'9'94@@HOFH---?#6#6#6==
)))", z???  s1v               CF]F';';';TBBHOFH---", z???  s1v                  CF]F'<'<'<dCCHOFH-----sH   5CCC;EEE3HHH9JJJ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        ||           d S )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  s    ( *%%*%%*%%	 
 
 
 C&&(---
vx0000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      sE        [ <((#yy/F/FGc99\223
 8$$c99X+>+>?c99X../
 	,,,c66)#3N3N3NOc66)#6667	
 " [Yu66[WtVn55[[&&!5!5!5667[&&!4!4!4556[&&!6!6!6778[&&!6!6!6778[&&!5!5!5667[&&!5!5!5667	

 
1 1
 
 65 76# <1, [Y|$$c99\+B+BCYx  #yy':':;VIC(((#vvic/J/J/JK	
  [WtVn55"/ "/ 65 "/H [UXXdAq%9%988D!Q;O;O$PQQ1 1 RQ1 [NNN 1 1 1@7. 7. 7.r [Ij!!HT1a  BM,d33	
  [[5556[4445[5556[5556		
 1 1  "1 1 1r4   rt   c            	          e Zd Zd Zej                            d eddd           ed           e	j
        d          g          d             Zej                            ddeg          d	             Zd
 Zd Zd Zej                            d eddd           ed           e	j
        d          g          ej                            d          d                         Zd Zd Zd Zej                            d ej        dd           ej        dd                                           ej        dd          j                            d          gd           d             Zd ZdS )TestDatetimeIndexComparisonsc                 T   t          dd          }|t          |          dz           }t          |                                          }t	          j        |          } |||          } |||          }t          |t          j                  sJ t          j	        ||           d S )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44E

a(G$$2244huoo"]300
$}UG44,
33333
#J=====r4   r-     r;   
2016-01-01c                    |}t          dd|          }|Xt          |t          j                  r)t	          j        t          |          j         d           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        ||           ||k     }t          j
        ddg          }t          j        ||           ||k    }t          j
        ddg          }t          j        ||           d S )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  s[   
 qR888>%// GtE{{3EEEFFF'sz::E8T5M**
#FH555u8UDM**
#FH5558T4L))
#FH555u8UEN++
#FH5558T5M**
#FH55555r4   r]   Nc                 4   t          t          d          t          t          d          g          }t          t          t          t          d          g          }t          j        ||          }t          j        ||          }t          ||d          }||}}|t          u r4|                    t                    |                    t                    }}||k    }t          j	        g d          }	t          j        |	|          }	t          j
        ||	           ||k    }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          k    |	           t          j
        t          |k    |	           t          j	        g d          }	t          j        |	|          }	t          j
        |t          k     |	           t          j
        t          |k    |	           d S )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55sIl<S<STUUsC<)@)@ABBt^44~66dE400SF??{{6**ELL,@,@C800011?8T22
)))8///00?8T22
)))811122?8T22
s
H---
s
H---8...//?8T22
s
H---
s
H---811122?8T2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 ],\  }}||k     }	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
        |	|
           ||k    }	t          j        g d          }
t          j
        |	|
           ||k    }	t          j        g d          }
t          j
        |	|
           .	 d d d            n# 1 swxY w Y   t          j	        d           5  |t          j        f|t
          ffD ]\  }}||k     }	t          j        g d          }
t          j
        |	|
           ||k    }	t          j
        |	|
           ||k    }	t          j
        |	|
           ||k    }	t          j
        |	|
           ||k    }	t          j
        |	|
           ||k    }	t          j        g d          }
t          j
        |	|
           	 d d d            n# 1 swxY w Y   t          j	        d           5  |df|t          ddd          ffD ],\  }}||k     }	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
        |	|
           ||k    }	t          j        g d          }
t          j
        |	|
           ||k    }	t          j        g d           }
t          j
        |	|
           .	 d d d            d S # 1 swxY w Y   d S )!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  s   #rvsBFC=>>#sBFBFC=>>3c<N
 
 <c<N
 
 x011011e$$e$$011011	
 	
 %%? '-- 	> 	># > >
d8$L$L$LMM+FH===8$L$L$LMM+FH===8$K$K$KLL+FH===8$K$K$KLL+FH===8$M$M$MNN+FH===8$I$I$IJJ+FH====/>	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	>4 '-- 	> 	>$bfos|< > >	c8$N$N$NOO+FH===+FH===+FH===+FH===+FH===8$H$H$HII+FH====#>	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	>* '-- 	> 	>$aj5(4A2F2F*GH > >	c8$M$M$MNN+FH===8$L$L$LMM+FH===8$L$L$LMM+FH===8$K$K$KLL+FH===8$M$M$MNN+FH===8$I$I$IJJ+FH====+>	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	>s9    D1I>>JJC,NNN5ET		TTc           	         |}|}t          dd          }|                    d          }t          j        ||          }t          j        ||          }|t          j        u rd }nt          }|t          j        t          j	        fvrd}t          j        t          |          5   |||           d d d            n# 1 swxY w Y   t          j        t          |          5   || ||                     d d d            n# 1 swxY w Y   t          j        t          |          5   ||t          j         ||          t                               d d d            n# 1 swxY w Y   t          j        t          |          5   |||           d d d            n# 1 swxY w Y   t          j        t          |          5   || ||                     d d d            n# 1 swxY w Y   t          j        t          |          5   ||t          j         ||          t                               d d d            n# 1 swxY w Y   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 d S )	Nr      rB   
US/Pacificc                 p    |                      t                    j                                        d         S )Nr   )rm   rg   valuestolistr   s    r2   <lambda>zQTestDatetimeIndexComparisons.test_comparison_tzawareness_compat.<locals>.<lambda>I  s&    qxx//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=  sA   a000^^L))_R%%_R%%",BBFFFhk8;///=  y444  2r


               y444 # #2vvbzz"""# # # # # # # # # # # # # # #y444 ; ;2rxr

&999:::; ; ; ; ; ; ; ; ; ; ; ; ; ; ;y444  2r


               y444 # #2vvbzz"""# # # # # # # # # # # # # # #y444 ; ;2rxr

&999:::; ; ; ; ; ; ; ; ; ; ; ; ; ; ; vbBhvbFF2JJ&'''''vffRjjB&'''''vbhvvbzz888B>?????vbBHVVBZZv>>>>?????vbBhvbFF2JJ&'''''vffRjjB&'''''vbhvvbzz888B>?????vbBHVVBZZv>>>>???????sl   &B??CC%DDD-/E((E,/E,F''F+.F+G//G36G3/IIIc                 r   |}t          dd          }|                    d          }t          j        ||          }t          j        ||          }t	          d          }t	          dd          }t          j        ||k              sJ d}|t          j        t          j	        fvr?t          j        t          |	          5   |||           d d d            n# 1 swxY w Y   t          j        ||k              sJ |t          j        t          j	        fvr?t          j        t          |	          5   |||           d d d            n# 1 swxY w Y   |t          j        t          j	        fvrBt          j        t          |	          5   |||           d d d            d S # 1 swxY w Y   d S d S )
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  si   a000^^L))_R00_R00 )**,1CDDDvb2gRhk8;///y444  2u               vb5j!!!!!hk8;///y444  2r


               hk8;///y444  2r


                  0/s6   CC!$C!7EEEF**F.1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
        ||           d S dt          |          j         }t          j        t          |          5   |||           d d d            n# 1 swxY w Y   t          j        t          |          5   |||           d d d            d S # 1 swxY w Y   d S )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  s    qR888^44eUD11(+x{+++8;&Fx 0===Hx66HRu%%FOFH---Ru%%FOFH-----.E{{+. .  y444 ! !5%   ! ! ! ! ! ! ! ! ! ! ! ! ! ! !y444 ! !5%   ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !s$   D&&D*-D*E&&E*-E*c                 l   |}t          dt          dt          ddg          }t          j        |t          j        k    gt          |          z            } ||t                    }t          j        ||            ||	                    d          t                    }t          j        ||           d S )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
 
 8R8;./#c((:;;C
#FH555COOL11377
#FH55555r4   c                    |}t          dd|          }d}||k    }t          j        dgdgdz  z             }t          j        ||           ||k    }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        ||           ||k    }t          j        dgdgdz  z             }t          j        ||           ||k    }t          j        dgdz            }t          j        ||           d S )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  sj    RB7778TFeWq[011
#FH5558UGtfqj011
#FH555u8UGbL))
#FH5558TFeWq[011
#FH555u8UGtfqj011
#FH5558TFRK((
#FH55555r4   c                     t          dd          }|t          |          k    }||k    }t          j        ||           d S )Nr=   r>   rB   )r   rj   r%   rT   )r(   r?   r0   r1   s       r2   test_dti_cmp_listz.TestDatetimeIndexComparisons.test_dti_cmp_list  sF    R000S		!#:
#FH55555r4   1Dr>   rB   m8[ns]c                 *    t          |           j        S N)r   rb   r   s    r2   r   z%TestDatetimeIndexComparisons.<lambda>  s    d1gg& r4   )idsc                    t          ddd          }||k    }t          j        dgdz            }t          j        ||           ||k    }t          j        dgdz            }t          j        ||           d}t          j        t          |          5  ||k      d d d            n# 1 swxY w Y   t          j        t          |          5  ||k     d d d            n# 1 swxY w Y   t          j        t          |          5  ||k     d d d            n# 1 swxY w Y   t          j        t          |          5  ||k     d d d            d S # 1 swxY w Y   d S )	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  sZ    rlCCC8UGbL))
#FH5558TFRK((
#FH555*]9C000 	 	%KK	 	 	 	 	 	 	 	 	 	 	 	 	 	 	]9C000 	 	5LL	 	 	 	 	 	 	 	 	 	 	 	 	 	 	]9C000 	 	%KK	 	 	 	 	 	 	 	 	 	 	 	 	 	 	]9C000 	 	5LL	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	sH   B))B-0B-C""C&)C&DD"DEEEc                    t          ddd          }|                    d          }||k    }t          j        dgdz            }t	          j        ||           |                    d           }||k    }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            d S # 1 swxY w Y   d S )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CC

38TFRK((
#FH555%%
#FH555c"1"g)*;*;*;)<q)@@AA8TFQJ%1455
#FH555R]9C000 	 	5LL	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s    D44D8;D8)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     sI       
> 
> 
> [	$1		yy66l8S8ST 6 6	 68 [WtVn55#- #- 65#-J]> ]> ]>~/@ /@ /@b  < [	$1		yy66l8S8ST  [ LMM! ! NM !:6 6 66 6 6>6 6 6 [BtR000BtR000::<<BtR0005::8D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                            d ed           ed                                           ed                                           ej        dd	          g          d
             Zd Zd Zd Zd Zd Zd Zej                            dg d          ej                            dddg          d                         Zej                            dd ej        ddg           edd	           eddd          g          ej                            d dd	g          d!                         Zej                            d"g d#          ej                            d dd	g          d$                         Zej                            d%          d&             Z ej                            d' e! ed(           ed(          g           e!e" ed(          g           e!e"e"gd)*          g          ej                            d+dd, ej        d          g          d-                         Z#dS ).TestDatetime64Arithmeticc                 B   |}t          dd|          }t          dd|          }t          j        ||          }t          j        ||          }||z   }t          j        ||           ||z   }t          j        ||           ||z  }t          j        ||           d S )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LLoc>22?8^<<y
)))S
)))y
X&&&&&r4   c                    |}t          dd|          }t          dd|          }t          j        ||          }t          j        ||          }||z
  }t          j        ||           ||z  }t          j        ||           d S )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>  s     |;;;02DLLLoc>22?8^<<y
)))y
X&&&&&r4   c                    t          dd                              d          }t          j        ||          }t	          d                              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            n# 1 swxY w Y   t          j        t          |
          5  ||z
   d d d            d S # 1 swxY w Y   d S )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H_R00z""..u558$$b!EEE
 
 ?8^<<
)))b!KKK
 
 ?8^<<
)))K]9C000 	 	KK	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ]9C000 	 	RKK	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s$   DD!D EEEc                    t          dd                              d          }t          j        ||          }t          dd                              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            n# 1 swxY w Y   t          j        t          |	          5  ||z
   d d d            d S # 1 swxY w Y   d S )
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H_R00
A...::5AA_R00J222b!EEE
 
 ?8^<<
)))b!KKK
 
 ?8^<<
)))K]9C000 	 	KK	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ]9C000 	 	RKK	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s$   !D33D7:D7E,,E03E0c                    |}t          dd|d          }t          j        d          }t          dgdz  |                              d          }t          j        ||          }t          j        ||          }||z   }t          j        ||           ||z   }t          j        ||           ||z
  }t          j        ||           d}	t          j	        t          |		          5  ||z
   d d d            d S # 1 swxY w Y   d S )
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  sL   qRdCCCu%% %1444<<TBBoc>22?8^<<u
)))
)))u
)))]9C000 	 	CKK	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   'C::C>C>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            d S # 1 swxY w Y   d S )
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  sm   qR888;;;<<
lL!KKK^44?8^<<
)))
)))lL!KKK?8^<<
)))H]9C000 	 	EMM	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   =DDDr_   
2013-01-01rD   c                 Z   t          dd                              d           }t          j        ||          }t	          g d          }t          j        ||          }||z
  }t          j        ||           ||z
  }t          j        ||            t          j        ||            d S )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11<<TBBoc>22!"?"?"?@@?8^<<r
)))c
	***
	*****r4   c                    t          dddd          }|                    d           }|d         }t          j        ||          }t	          t          j        dd          t          j        dd          g          }t          j        ||          }t          j        ||z
  |           t          j        ||z
  |            d S )Nz
2014-03-17r8   rD   r  r   rF   r    r   r;   )r   r0  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LLnnT""Voc>22r~a55r~a7M7MNOO?<@@
b(+++
S8),,,,,r4   c                 D   t          t          t          d          g                              |          }t	          j        ||          }|t          z
  }t          t          t          gd| d          }t	          j        ||          }t	          j        ||           |                    d          }t	          j        ||          }|t          z
  }t          t          t          gd| d          }t	          j        ||          }t	          j        ||           d S )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"7899AA$GGoc>22s3*,B4,B,B,BCCC?8^<<
)))..88#3*,B4,B,B,BCCC?8^<<
)))))r4   c                 ~   t          dd|          }||z
  }t          j        ||          }t          j        ||                              t                    }t          j        t                    5  ||                    t                    z
  }d d d            n# 1 swxY w Y   t          j        ||           d S 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FF9oc>22?8^<<CCFKK'(:;; 	. 	.3::f---F	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	.
)))))s   3BB!$B!c                     t          ddd           }|j        }t          j        ||          }||z
  }||z
  }t          j        ||           ||z
  }t          j        ||           d S 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  su    qT::::^445=!
)))E!
)))))r4   c                 L   |}t          dd|          }|j        }t          j        ||          }d}t	          j        t          |          5  ||z
   d d d            n# 1 swxY w Y   t	          j        t          |          5  ||z
   d d d            d S # 1 swxY w Y   d S )Nr   r   r   z.Cannot subtract tz-naive and tz-aware datetimerR   )r   r   r%   r&   rU   rV   rW   )r(   r   r*   r    r,   rC  r.   rX   s           r2   )test_dt64arr_aware_sub_dt64ndarray_raiseszBTestDatetime64Arithmetic.test_dt64arr_aware_sub_dt64ndarray_raises
  s3    qR888:^44>]9C000 	 	H	 	 	 	 	 	 	 	 	 	 	 	 	 	 	]9C000 	 	u	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s$   A  A$'A$BB Bc                    |}t          dd|          }||                    d          }n|                    d           }t          j        ||          }t	          ||j                   t	          ||           t	          ||           t	          ||d                    t	          ||d                                                    t	          ||d                                                    t	          ||d                    t	          ||d                                                    t	          |t          j	        dd                     d S )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  s3    qR888:??<00DD??4((D^44%,,,%%%%%'''%Q(((%Q!5!5!7!7888%Q!5!5!7!7888%a)))%a!6!6!8!8999%|S!A!ABBBBBr4   rF   )rP   rD   W2MEMSQEBNr]   Nuint8c                 6   |}|t          ddg|          }nt          dd||          } ||          }t          j        ddg          }	||	                    |          }	d	                    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          |	          |
           d S )Nr   z2017-04-05 06:07:08r[   r   r8   r4  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FFFCC\14BGGGC&&s++!R!!LL''Ehh  	
 	
 	#33///"3S999"3"((C(C(CSIII"3s333"3==="3==="3u(=(=sCC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                    g d          }t	          |||           d S )Nrv   
2011-01-02rz   rR  )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&   rS  r   )r(   rY  r-   r*   r,   r.   rX   s          r2   test_dt64arr_add_sub_invalidz5TestDatetime64Arithmetic.test_dt64arr_add_sub_invalid_  sh     \<8xHHH^44hh  
 
 	#5%55555r4   pi_freq)rD   rK  QrP   c                     t          ddg|          }|                    |          }t          j        ||          }t          j        ||          }d                    g d          }	t          |||	           d S )Nrv   r[  rz   rR  )r\  unsupported operandzdescriptor.*requireszufunc.*cannot use operands)r   	to_periodr%   r&   rS  r   )
r(   rY  r^  r*   box_with_array2r,   pir.   parrrX   s
             r2   test_dt64arr_add_sub_parrz2TestDatetime64Arithmetic.test_dt64arr_add_sub_parry  s     \<8xHHH]]7##^44r?33hh  
 
 	#5$44444r4   (ignore::pandas.errors.PerformanceWarningc                    |}t          dd|          }d t          d          D             }t          j        ||          }t          j        ||          }d                    ddg          }t          |||           d S )	N
2012-01-01r   r   c                 0    g | ]}t          |||          S rr   )r   )r   is     r2   r   zTTestDatetime64Arithmetic.test_dt64arr_addsub_time_objects_raises.<locals>.<listcomp>  s"    000!Q1000r4   rR  ra  z*cannot subtract DatetimeArray from ndarray)rX   )r   rk   r%   r&   rS  r   )r(   r*   r)   r    obj1obj2rX   s          r2   'test_dt64arr_addsub_time_objects_raisesz@TestDatetime64Arithmetic.test_dt64arr_addsub_time_objects_raises  s     ,b99900uQxx000t^44t^44hh%<
 
 	#43777777r4   dt64_seriesr8  datetime64[ns]r\   oner   c                    t          j        ||          }d}t          j        t          |          5  ||z   d d d            n# 1 swxY w Y   t          j        t          |          5  ||z   d d d            n# 1 swxY w Y   t          j        t          |          5  ||z   d d d            n# 1 swxY w Y   t          j        t          |          5  ||z   d d d            d S # 1 swxY w Y   d S )Nz&cannot perform .* with this index typerR   )r%   r&   rU   rV   rW   )r(   rq  ro  r*   rM   rX   s         r2   !test_dt64_mul_div_numeric_invalidz:TestDatetime64Arithmetic.test_dt64_mul_div_numeric_invalid  s    ok>::6 ]9C000 	 	#II	 	 	 	 	 	 	 	 	 	 	 	 	 	 	]9C000 	 	#II	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ]9C000 	 	#II	 	 	 	 	 	 	 	 	 	 	 	 	 	 	]9C000 	 	#II	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	sG   AA	A	+A==BB#B55B9<B9C..C25C2)$rb   rc   rd   rU   re   arm_slowr  r  r  r!  r(  r-  rf   r   rH  r   r"   r   r2  r6  r>  rA  rD  rF  rJ  rX  r#   r   r   r]  rf  r  rn  r   r   rs  rr   r4   r2   r  r  !  s        [' ' '*' ' '"  6  8  *  8 [Il##Il##1133Il##1133 BM,,,	

 
+ +
 
+- - -* * **	* 	* 	*
* 
* 
*  "C C C8 [V%R%R%RSS[WtWo66$< $< 76 TS$<L [BHc3Z  F<c***DAqMM	

 
 [Z$556 6 65
 
6 [Y(<(<(<==[Z$555 5 65 >=5& [ JKK8 8 LK82 [FIIj))99Z+@+@ABBFC:../00FC:%5666	
  [UQXRXa[[$9::  ;:   r4   r  c                      e Zd Zej                            dg d          d             Zd Zej                            dg d          d             Zd Z	ej                            dg d          d	             Z
ej                            d
          e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                            d5d6d7g          ej                            d8d-dg          ej                            dg d          ej                            d9d:d;g          d<                                                                         Zej                            d= ej        ej                                        ej                            d'>          g           ej        ej                            d)?          ej                                        g           ej        ej                            d)?          ej                            d)?          g          g          ej                            d@ej        ej        ej        g          dA                         Ze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d:S )\"TestDatetime64DateOffsetArithmeticr;  smsusrI   c                 B   t          t          d          t          d          g          j                            |          }t          t          d          t          d          g          j                            |          }t	          j        ||          }t	          j        ||          }|t          j                            d          z   }t	          j	        ||           t          j                            d          |z   }t	          j	        ||           d S )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*   r;  r`   r1   r0   result2s          r2   'test_dt64arr_series_add_tick_DateOffsetzJTestDatetime64DateOffsetArithmetic.test_dt64arr_series_add_tick_DateOffset  s     ''?)C)CD
 

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

WWT]] 	 oc>22?8^<<rz((+++
)))*##A&&,
*****r4   c                    t          t          d          t          d          g          }t          t          d          t          d          g          }t          j        ||          }t          j        ||          }|t          j                            d          z
  }t          j        ||           t          j                            d           |z   }t          j        ||           d}t          j	        t          |          5  t          j                            d          |z
   d d d            d S # 1 swxY w Y   d S )Nr|  r}  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  sg    i00)O2L2LMNN)**I6H,I,IJ
 
 oc>22?8^<<rz((+++
))):$$Q'''#-
***8]9C000 	' 	'Ja  3&&	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	's   #D==EE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
   d S )Nr|  r}  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  s     i00)O2L2LMNNoc>22RZ22
jjmm
1jjmmr4   c                 t   |}|dk    rht          dd|          }|t          j                            d          z   }|d         t          j                            d          z   |d         k    sJ t          dd|d	          }t	          g d
d|                              d          }t          j        ||          }t          j        ||          }t          j                            d          t          j	        dd          t          d          fD ]}||z   }t          j        ||           ||z   }t          j        ||           ||z
  }t          j        ||           d                    ddg          }	t          j        t          |	          5  ||z
   d d d            n# 1 swxY w Y   d S )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   )hoursrR  zbad operand type for unary -zcannot subtract DatetimeArrayrR   )r   ro   r  r  r   r'  r%   r&   r"   r&  r   r'   rS  rU   rV   rW   )
r(   r   r*   r    r   offsetr1   scalar	roundtriprX   s
             r2   test_dti_add_tick_tzawarez<TestDatetime64DateOffsetArithmetic.test_dti_add_tick_tzaware  s   |Q2>>>ERZ__Q///F8bjooa000F1I====-qRcJJJ HHH
 
 
 '$--	 	 ~66?8^<<zq))2>!S+A+A9STCUCUCUV 	 	FV^FOFH---e^FOFH---IOIu---((/1PQ C y444                	 	s   F,,F0	3F0	c                    t          t          d          t          d          t          d          t          d          t          d          t          d          t          d          t          d          g                              |          }t          j        ||          }|t
          j        u r|j        d	         n|}g d
}t          |          D ]\  }\  }}t          di ||i|}	|dk    r|dk    rd}	t          fd|D                                           |	          }
t          j        |
|          }
t          j
        |
|z              t          fd|D                                           |	          }
t          j        |
|          }
t          j
        |
|z
             t          di t          |d |dz                      t          fd|D                                           |	          }
t          j        |
|          }
t          j
        |
|z              t          fd|D                                           |	          }
t          j        |
|          }
t          j
        |
|z
             d}t          j        t          |          5  |z
   d d d            n# 1 swxY w Y   d S )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   rz  c                     g | ]}|z   S rr   rr   r   r   offs     r2   r   zaTestDatetime64DateOffsetArithmetic.test_dt64arr_add_sub_relativedelta_offsets.<locals>.<listcomp>F      %A%A%A!a#g%A%A%Ar4   c                     g | ]}|z
  S rr   rr   r  s     r2   r   zaTestDatetime64DateOffsetArithmetic.test_dt64arr_add_sub_relativedelta_offsets.<locals>.<listcomp>J  r  r4   r;   c                     g | ]}|z   S rr   rr   r  s     r2   r   zaTestDatetime64DateOffsetArithmetic.test_dt64arr_add_sub_relativedelta_offsets.<locals>.<listcomp>P  r  r4   c                     g | ]}|z
  S rr   rr   r  s     r2   r   zaTestDatetime64DateOffsetArithmetic.test_dt64arr_add_sub_relativedelta_offsets.<locals>.<listcomp>T  r  r4   r  rR   rr   )r   r   r'  r%   r&   ro   r   iloc	enumerater   r'   dictrU   rV   rW   )r(   r*   r;  vec	vec_itemsrelative_kwargsrk  offset_unitvalueexp_unitr1   rX   r  s               @r2   *test_dt64arr_add_sub_relativedelta_offsetszMTestDatetime64DateOffsetArithmetic.test_dt64arr_add_sub_relativedelta_offsets"  s#    /00/00,'','','','','',''	
 
 '$-- 	 oc>22#1R\#A#ACHQKKs	
 
 
 (1'A'A 	 	#A#U44U344CHn,, %%A%A%A%Ay%A%A%ABBJJ8TTHx@@HOHcCi000$%A%A%A%Ay%A%A%ABBJJ8TTHx@@HOHcCi000>>tOGa!eG$<==>>C$%A%A%A%Ay%A%A%ABBJJ8TTHx@@HOHcCi000$%A%A%A%Ay%A%A%ABBJJ8TTHx@@HOHcCi000<Cy444  c		              5	 	s   -J??K	K	rg  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d S t          t          d          t          d          t          d          t          d          t          d          t          d          t          d	          t          d
          g                              |                              |          }	t          j        |	|          }	|t          j	        u r|	j
        d         n|	}
t          t          j        |          } ||fd|i|t          fd|
D                                           |          }t          j        ||          }t          j        ||	z              t          j        ||	z              t          fd|
D                                           |          }t          j        ||          }t          j        ||	z
             t          fd|
D                                           |          }t          j        ||          }t          j        ||	z              d}t          j        t           |          5  |	z
   d d d            d S # 1 swxY w Y   d S )Nr   )r  r  r  r  r  r  r  r  r  r  r  r  r  c                     g | ]}|z   S rr   rr   r   r   r  s     r2   r   zWTestDatetime64DateOffsetArithmetic.test_dt64arr_add_sub_DateOffsets.<locals>.<listcomp>      !@!@!@!f*!@!@!@r4   c                     g | ]}|z
  S rr   rr   r  s     r2   r   zWTestDatetime64DateOffsetArithmetic.test_dt64arr_add_sub_DateOffsets.<locals>.<listcomp>  r  r4   c                     g | ]}|z   S rr   rr   r  s     r2   r   zWTestDatetime64DateOffsetArithmetic.test_dt64arr_add_sub_DateOffsets.<locals>.<listcomp>  s    !@!@!@&1*!@!@!@r4   r  rR   )r   tupler   r   r'  r   r%   r&   ro   r   r  r   r  r'   rU   rV   rW   )r(   r*   r  r  r  r;  r    r  kwargsr  r  r  r1   rX   r  s                 @r2    test_dt64arr_add_sub_DateOffsetszCTestDatetime64DateOffsetArithmetic.test_dt64arr_add_sub_DateOffsets`  s   r ne,, 	  .Hff%HF66h #
 
 
 F 344344l++l++l++l++l++l++	  WT]][__ 	  oc>22#1R\#A#ACHQKKs	RZ22
A===f== !!@!@!@!@i!@!@!@AAII$OO?8^<<
#,///
&3,/// !@!@!@!@i!@!@!@AAII$OO?8^<<
#,/// !@!@!@!@i!@!@!@AAII$OO?8^<<
&3,///8]9C000 	 	SLL	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   /JJ	Jr-   r  )r  r   c                   	 |}t          dd|          	t          j        	|          }t          	fdt	          t          	                    D                       }t          j        ||                              t                    }t          j        t                    5   |          }d d d            n# 1 swxY w Y   t          j
        ||           t          j        |          |t          j        u r)t          j        u rt          j        |t                    }t          j        t                    5   |          }d d d            n# 1 swxY w Y   t          j
        ||           d S )N
2017-01-01r8   r   c                 @    g | ]} |         |                   S rr   rr   r   r  r,   r   r-   s     r2   r   zXTestDatetime64DateOffsetArithmetic.test_dt64arr_add_sub_offset_array.<locals>.<listcomp>  s-    !P!P!P1""SVU1X"6"6!P!P!Pr4   r\   )r   r%   r&   r   rk   r   rm   rg   r   r
   r'   ro   r#   r   radd)
r(   r)   r*   r   r-   r    r.   r1   resr,   s
      ``    @r2   !test_dt64arr_add_sub_offset_arrayzDTestDatetime64DateOffsetArithmetic.test_dt64arr_add_sub_offset_array  s   " qR888^44 !P!P!P!P!P!Pc#hh!P!P!PQQ?8^<<CCFKK'(:;; 	# 	#"UE""C	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	#
X&&& ~66RX%%"	*>*>x777H'(:;; 	# 	#"UE""C	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	#
X&&&&&s$   *CC
CE!!E%(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                 0   |}t          ddd|          }t          j        ||d          }t          ||          }	 |	|          }
t	          ||                              d          }t          j        ||d          }t          j        |
|           d S )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  s    j =tPRSSSt^U;;dBV ,,,44T::?8^UC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        ||           d S )
N)z2000-01-01 00:00:00.012345678z2000-01-31 00:00:00.012345678z2000-02-29 00:00:00.012345678rp  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11   
 #
 
 
 	fh///zqq99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   rv  rv    s=       
 [V%<%<%<==+ + >=+&' ' '( [QQQ 	 	 	  H [V%<%<%<==6 6 >=6z [ JKK[*	
*	
7A,'*	
 *	
 !%	*	

 *	
 *	
 *	
 *	
 *	
 i^$*	
 *	
 i^$*	
 *	
 *	
 *	
  !*	
"  #*	
$ %*	
& '*	
( )*	
* +*	
, -*	
. /*	
0 1*	
2 3*	
4 5*	
6 A/7*	
:  +,%& !*	 9*	
J 1qyQQRK*	
L 1556M*	
N O*	
P E1:&Q*	
R GQ<(S*	
- -\ [[4-88[S1a&))[V%<%<%<==[TD,#788< < 98 >= *) 98]- - LKf<| [BHbj))++RZ^^a^-@-@ABBBHbj++!+44bj6I6I6K6KLMMBH&&Q&//1F1FQ1F1O1OP 	
	 	 [THL).(,#OPP' ' QP	 	'4 [# 
!"---Il++Il++Il++Il++	 
 
!$$$Il++Il++Il++Il++	 
 
!"---Il++Il++Il++Il++	 
 
!$$$Il++Il++Il++Il++	 
E-	
0 0b* *c0 0b*0 0 0 0 0r4   rv  c                   &    e Zd Zd Zd Zd Zd ZdS )TestDatetime64OverflowHandlingc                 N   t          t          d          gd          }t          t          g          }t          j        ||          }t          j        ||          }t          t          gd          }t          j        ||          }||z
  }t          j        ||           d S )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  s    y../x@@@ut^44~66!3%x888?8^<<
)))))r4   c                    t          d          }t          d          }t          ddd          }t          |          }d}t	          j        t          |          5  ||z
   d d d            n# 1 swxY w Y   t	          j        t          |          5  ||z
   d d d            n# 1 swxY w Y   t	          j        t          |          5  ||z    d d d            n# 1 swxY w Y   t	          j        t          |          5  ||z    d d d            n# 1 swxY w Y   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
        ||            d S )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   rp  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???Skk*]=444 	 	"HH	 	 	 	 	 	 	 	 	 	 	 	 	 	 	]=444 	 	HH	 	 	 	 	 	 	 	 	 	 	 	 	 	 	]=444 	 	"HH	 	 	 	 	 	 	 	 	 	 	 	 	 	 	]=444 	 	HH	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ===EU
 
 
 Bh
sH---3h
sH---===EVWWWBh
sH---3h
sXI.....sH   A//A36A3B''B+.B+CC#&C#DDDc                    t          j        dt          j        g                              d          }t          j        dt          j        g                              d          }t          d                              d          }||                                |                                                    d          |                                                    d          g}t          d                              d          }||                                |                                                    d          |                                                    d          g}d}|D ]:}t          j
        t          |          5  ||z
   d d d            n# 1 swxY w Y   ;t          j        j        |j        z
  }	|D ]}||z
  }
|
d	         j        |	k    sJ t          j        j        |j        z
  }	|D ]}||z
  }
|
d	         j        |	k    sJ |D ]:}t          j
        t          |          5  ||z
   d d d            n# 1 swxY w Y   ;d S )
N2021-12-28 17:19rI   
1950-01-01rp  zdatetime64[D]
1980-01-01r  rR   r;   )ro   to_datetimer   maxr'  minrH  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DLLTRR!3Y] CDDLLTRR,''//55!!!!(()9::!!((99	
 ,''//55!!!!(()9::!!((99	
 +& 	! 	!G}C888 ! !  ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ='%,6& 	- 	-G7"Cq6=H,,,,,='%,6& 	- 	-G7"Cq6=H,,,,,& 	! 	!G}C888 ! !  ! ! ! ! ! ! ! ! ! ! ! ! ! ! !	! 	!s$   F""F&	)F&	9II	I	c                    t          j        dt          j        g                              d          }t          j        dt          j        g                              d          }t          j        ddg                              d          }t          j        ddg                              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            n# 1 swxY w Y   t          j        t          |          5  ||z
   d d d            n# 1 swxY w Y   t          j        t          j        g          }|t          j        z   t          d          z   }	t          j        t          |          5  |	|z
   d d d            n# 1 swxY w Y   t          j        t          j        g          }
|
t          j        z   t          d          z
  }t          j        t          |          5  |
|z
   d d d            d S # 1 swxY w Y   d S )	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DLLTRR!3Y] CDDLLTRR| <==EEdKK| <==EEdKK ='&)*::&ay8++++='&)*::&ay8++++*]=444 	 	VOO	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ]=444 	 	VOO	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ~y}o..IM!Ie$4$44]=444 	 	II	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ~y}o..IM!Ie$4$44]=444 	 	2II	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	sH   EEE<FFF2HHH(I;;I?I?N)rb   rc   rd   r  r  r  r  rr   r4   r2   r  r  V  sR        * * */ / /@$! $! $!L         r4   r  c                      e Zd Zd Zd Zd Ze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dS )TestTimestampSeriesArithmeticc                 x   t          d          }t          d          } ||          } ||          }t          j        |||z              t          j        |||z
             t          j        |||z              d}t          j        t
          |          5  ||z
   d d d            d S # 1 swxY w Y   d S )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	   """"""N1N1
1q5!!!
1q5!!!
1q5!!!]9C000 	 	EE	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   B//B36B3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    d S )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556:;;f *%%*%%*%%
 
 f*%%*%%*%%
 
 	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 d S )Ni  r;            r   r      M8[r:  r\   rz  r9  )r   r   r   r%   get_finest_unitr]   )r(   r;  r_   r~  r`   r0   r  s          r2   test_dt64ser_sub_datetime_dtypez=TestTimestampSeriesArithmetic.test_dt64ser_sub_datetime_dtype  s    xaBB7788dAr2r**bTt///r %dD11|9h99999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rAt          j        t          d          5   ||           d d d            d S # 1 swxY w Y   d S  ||           d S )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  s    8 *d||e}} T64((   !H     4                  BtHHHHHs   A**A.1A.c                    t          t          dd          g          j                            |          }t          t          dd          g          j                            |          }||z
  }t          t	          d          g          j                            |          }t          j        ||           ||z
  }t          t	          d          g          j                            |          }t          j        ||           d S )Nz
2016-02-10zAmerica/Sao_Paulor[   z
2016-02-082daysz-2days)r   r   r~  r'  r   r%   r   )r(   r;  s1s2r0   r1   s         r2   test_sub_single_tzz0TestTimestampSeriesArithmetic.test_sub_single_tz<  s    Y|0CDDDEFFIQQRVWWY|0CDDDEFFIQQRVWWb9W--.//2::4@@
vx000b9X../003;;DAA
vx00000r4   c                     t          ddd          }t          |          }t          t          dgdz                      }||z
  }t          j        ||           ||z
  }t          j        ||           d S )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  s|     rlCCCSkk.'R8899Ci
sH---Ci
sH-----r4   c           	         t          t          ddddt          j                  t          g          j                            |          }t          ddddt          j                  }t          j        |d          }t          t          d          t          g          j                            |          }||z
  }t          j
        ||           |t          |          z
  }t          j
        ||           d S )	Nr            )r   r2  rz  rx   )r   r   pytzutcr   r~  r'  r%   r4  r   r   r   )r(   r;  r`   r~  r  r  r0   r  s           r2   test_sub_datetime_compatz6TestTimestampSeriesArithmetic.test_sub_datetime_compatS  s    htQBtx@@@#FGGJRRSWXXdAr2dh777%dD11i))3/003;;HEEr
vs+++	"%
w,,,,,r4   c                    t          t          d          t          d          g          }|t          j                            d          z   }t          j                            d          |z   }t          t          d          t          d          g          }t          j        ||           t          j        ||           |t          j                            d          z   t          j                            d          z   }t          t          d          t          d          g          }t          j        ||           d S )Nr|  r}  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(   rx  r0   r  r1   s        r2   *test_dt64_series_add_mixed_tick_DateOffsetzHTestTimestampSeriesArithmetic.test_dt64_series_add_mixed_tick_DateOffset_  s    Io..	/0J0JKLLRZ%%a(((*""1%%)-..	:P0Q0QR
 
 	vx000
w111RZ&&q)))BJ,<,<Q,?,??-..	:P0Q0QR
 
 	vx00000r4   c                 <   t          t          t          d          g          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            n# 1 swxY w Y   t          j        t           |z   |           t          j        t          |          5  | |z    d d d            n# 1 swxY w Y   t          j        |t          z   |           t          j        t          |z   |           t          j        |t          z   |           t          j        t          |z   |           d S )Nr8  zdatetime64[r:  r\   z-bad operand type for unary -: 'DatetimeArray'rR   )
r   r   r   r~  r'  r%   r   rU   rV   rW   )r(   r;  datetime_seriesnat_series_dtype_timestampsingle_nat_dtype_datetimerX   s         r2   test_datetime64_ops_natz5TestTimestampSeriesArithmetic.test_datetime64_ops_natr  sP    #y'<'<!=>>AII$OO%+S#J>SD>S>S>S%T%T%T"$*C58Md8M8M8M$N$N$N! 	to57QRRR=]9C000 	9 	9&&88	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	D--/I	
 	
 	
 ]9C000 	D 	D&&)CCC	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	&,.H	
 	
 	
 	,,.H	
 	
 	
 	&,.H	
 	
 	
 	,,.H	
 	
 	
 	
 	
s$   3CC
C

DD!$D!c                 	   d}t          t          dd|          d          }|                                }t          j        |j        d<   t          t          j        ddd	
                    }|                                }t          j        |j        d<   |j        j	        J ||d         z   }|j
                            d           |d         z   j
                            |          }t          j        ||           ||d         z   }|j
                            d           |d         z   j
                            |          }t          j        ||           |d         |z   }|j
                            d           |d         z   j
                            |          }t          j        ||           |d         |z   }|j
                            d           |d         z   j
                            |          }t          j        ||           ||d         z
  }|j
                            d           |d         z
  j
                            |          }t          j        ||           d}t          j        t           |          5  |d         |z
   d d d            n# 1 swxY w Y   ||d         z
  }|j
                            d           |d         z
  j
                            |          }t          j        ||           t          j        t           |          5  |d         |z
   d d d            n# 1 swxY w Y   ||z   }|j
                            d           |z   j
                            |          }t          j        ||           ||z   }|j
                            d           |z   j
                            |          }t          j        ||           ||z
  }|j
                            d           |z
  j
                            |          }t          j        ||           ||z
  }|j
                            d           |z
  j
                            |          }t          j        ||           d}t          j        t           |          5  ||z
   d d d            n# 1 swxY w Y   t          j        t           |          5  ||z
   d d d            d S # 1 swxY w Y   d S )Nr  z2000-01-01 09:00:00rQ   r   r5   r   r8   z1 days 1 minrP   )r   rF   r;   r   r  rR   r\  )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  sv   Z 5qRHHHuUUUhhjjfR'LLLMMhhjjf{'''s1vv!!$''#a&04@@DD
vs+++s1vv!!$''#a&04@@DD
vs+++ Q#v!!$''#a&04@@DD
vs+++Q#v!!$''#a&04@@DD
vs+++s1vv!!$''#a&04@@DD
vs+++8]9C000 	 	FSLL	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 s1vv!!$''#a&04@@DD
vs+++]9C000 	 	FSLL	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 sv!!$''#-1==bAA
vs+++sv!!$''#-1==bAA
vs+++sv!!$''#-1==bAA
vs+++sv!!$''#-1==bAA
vs+++%]9C000 	 	#II	 	 	 	 	 	 	 	 	 	 	 	 	 	 	]9C000 	 	#II	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	sH   
J""J&)J&#L;;L?L?R11R58R5S**S.1S.N)rb   rc   rd   r"  r-  r5  rU   re   rf   r   r   r   r>  rC  rF  rM  rO  rT  rX  rr   r4   r2   r  r    s           B	: 	: 	: [ :&&		*(=(=sC:&&		*(=(=yy?T?TUJ' :&&		*(=(=sC1a000))Aq2Q2Q2QSVW222 Ij\:::Ij\:::
 1a000#yyTU7V7V7VW222	
 0 1 0,	1 	1 	1
. 
. 
.
- 
- 
-1 1 1&
 
 
H< < < < <r4   r  c                   p   e Zd Zd Zd Zd Zd Zd Zd Ze	j
                            dej        ej        g          d             Zd	 Zd
 Zd Ze	j
                            dej        ej        ej        g          d             Ze	j
                            dej        ej        g          d             ZdS )TestDatetimeIndexArithmeticc                    |}t          t          d|          gdz            }t          j        dd          }t	          dd|          }|                    d           }||z   }t          j        ||           ||z   }t          j        ||           ||j        z   }t          j        ||           |j        |z   }t          j        ||           d S Nr  r[   r>   0 daysrB   r   	r   r   ro   rp   r   r0  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B 2666lB2>>>&&t,, s
fh///s
fh/// sz!
fh///c!
fh/////r4   c                    |}t          t          d|          gdz            }t          j        dd          }t	          dd|          }|                    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        ||           d S r\  r^  r_  s          r2   test_dti_iadd_tdiz-TestDatetimeIndexArithmetic.test_dti_iadd_tdi  sP   Y|;;;<rABB 2666lB2>>>&&t,, 	,2 > > >?"DEE#
fh///#Hb999#
fh/// 	,2 > > >?"DEE#*
fh///#Hb999#
fh/////r4   c                 0   |}t          t          d|          gdz            }t          j        dd          }t	          dd|d          }|                    d           }||z
  }t          j        ||           d}t          j	        t          |	          5  ||z
   d d d            n# 1 swxY w Y   ||j        z
  }t          j        ||           d
}t          j	        t          |	          5  |j        |z
   d d d            d S # 1 swxY w Y   d S )Nr  r[   r>   r]  rB   -1Dr$  z cannot subtract .*TimedeltaArrayrR   0cannot subtract a datelike from a TimedeltaArray)r   r   ro   rp   r   r0  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B 2666lB2EJJJ&&t,, s
fh///0]9C000 	 	#II	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 sz!
fh///@]9C000 	 	J	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s$   B,,B03B03DDDc                    |}t          t          d|          gdz                                |          }t          j        dd|          }t          dd|d|          }|                    d           }t          t          d|          gdz                                |          }||z  }t          j        ||           |j	        
                                }||z  }t          j        ||j	                   |j	        
                                }	t          j        |	||	           t          j        |	|j	                   d	}
t          j        t           |

          5  ||z  }d d d            n# 1 swxY w Y   t          t          d|          gdz                                |          }||j        z  }t          j        ||           t          j        t           |

          5  |xj        |z  c_        d d d            n# 1 swxY w Y   t          j        t           |

          5  |xj        |z  c_        d d d            d S # 1 swxY w Y   d S )Nr  r[   r>   r]  r   r;  rd  )r   r    rF   r;  )outre  rR   )r   r   r'  ro   rp   r   r0  r%   r  rK   r   assert_datetime_array_equalr"   subtractrU   rV   rW   r   rV  )r(   r)   r;  r    r,   r+  r1   r0   rL   ri  rX   s              r2   test_dti_isub_tdiz-TestDatetimeIndexArithmetic.test_dti_isub_tdi!  s   Y|;;;<rABBJJ4PP 2DAAAlB2EPTUUU&&t,, 	,2 > > >?"DEEMMdSS#
fh/// inns

&sHN;;;inn
C#&&&&
&sHN;;;@]9C000 	 	3JC	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	,2 > > >?"DEEMMdSS#*
fh///]9C000 	 	JJ#JJ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ]9C000 	 	KK3KK	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s6   &E88E<?E<2HHH5IIIc                     t          dd|          }|j        }||z
  }||z
  }t          j        ||           |}||z   }||z   }t          j        ||           ||z
  }||z
  }t          j        ||           d S )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DDis9
fh///s9
fh///s9
fh/////r4   c                 Z   t          dd|          }t          dd|                              d          }t          g d                              |          }||z
  }t	          j        ||           ||z
  }t	          j        ||           d}t          j        t          |          5  ||z
   d d d            n# 1 swxY w Y   t          j        t          |          5  ||z
   d d d            n# 1 swxY w Y   ||z  }t	          j        ||           t          dd|          }t          dd|          }d	}t          j        t          |          5  ||z
   d d d            n# 1 swxY w Y   t          d
t          j        dg                              |          }t          ddt          j        g                              |          }t          dt          j        t          j        g                              |          }||z
  }t	          j        ||           d S )Nr   r   rh  r  )r   r   r   r  rR   r   z$cannot add indices of unequal lengthri  z
2012-01-03z
2012-01-02rx   )r   r   r   r'  r%   r  rU   rV   rW   r   r   r"   ri   )	r(   r;  r,   r<  r1   r0   rX   dti1rI  s	            r2   test_sub_dti_dtiz,TestDatetimeIndexArithmetic.test_sub_dti_dti^  s    QT:::J===II,WW!))),,44T::s
fh///&
fh///K]9C000 	 	SLL	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ]9C000 	 	&LL	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s

c8,,, *ad;;;*ad;;;4]:S111 	 	4KK	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 lBFLABBJJ4PPlL"&ABBJJ4PP!8RVRV"<==EEdKK
fh/////s6   -B??CC%C77C;>C;E//E36E3r   c                    t          t          d          t          d          t          d          t          d          g          } ||          }g dfd}t          t          d          gdz   D ]X\  }}}}	}
 |||||	|
          }t	          ||||	|
	          } |||          } |||          }t          j        ||           Yd S )
N20130301z20130228 23:00:00z20130228 22:00:00z20130228 21:00:00)rD   rP   mrx  rz  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  s1    6$wr~s47K7KLLMMNNNr4   r8   rQ   )r:   r  r  r  r  )r   r   r   rk   r   r%   r'   )r(   r   r*   r`   rM   r&  drP   rt  rx  rz  nptdpytdr   r   ry  s                  @r2   .test_timedelta64_equal_timedelta_supported_opszJTestDatetimeIndexArithmetic.test_timedelta64_equal_timedelta_supported_ops  s   *%%-..-..-..	
 
 nS!!...		O 	O 	O 	O 	O &q
Q8 	& 	&NAq!Q;q!Q2..D!1aQSTTTD"S$--C"S$--COC%%%%	& 	&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            n# 1 swxY w Y   t	          j        ||z   |           t	          j        ||z   |           t	          j        ||z   |           t	          j        ||z   |           t	          j        ||z   |           t	          j        ||z   |           d S )N1sr8  r  r\   rp  zcannot subtract a datelikerR   )	r   r   r   r   r%   r   rU   rV   rW   )r(   timedelta_seriesrQ  nat_series_dtype_timedeltarR  rS  single_nat_dtype_timedeltarX   s           r2   )test_ops_nat_mixed_datetime64_timedelta64zETestDatetimeIndexArithmetic.test_ops_nat_mixed_datetime64_timedelta64  s   !3	$"899 #y'<'<!=>>%+S#J>O%P%P%P"%+S#J>N%O%O%O"$*C58H$I$I$I!%+SE9J%K%K%K" 	779S	
 	
 	
 	88:T	
 	
 	
 	''/9;U	
 	
 	
 	&)BB&	
 	
 	

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

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

 	&)BB&	
 	
 	
 	%(BB&	
 	
 	
 	
 	
s   E00E47E4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    sJ <t          d	ddd|          }||z
  t          j	        ||          fD ];}t	          |t
                    sJ t          j        ||           |j        dk    sJ <|
                    d           }t          j        t          j        dd          t          j        d
d          t          j        dd          g          }t          g dd                              |          }||z   t          j        ||          fD ])}t          j        ||           |j        |j        k    sJ *t          g dd                              |          }||z
  t          j	        ||          fD ]@}t	          |t
                    sJ t          j        ||           |j        |j        k    sJ Ad S )Nrv   r   2Dr   )r   rF   r   r;  r;   rD   r[  
2010-12-31r8   )r[  z
2011-01-05z
2011-01-08r   )r  rv   r[  )r   r"   r&  r  r   r   r%   r  rF   rk  r0  r#   r'  )r(   r;  r1  deltar  r0   s         r2   test_ufunc_coercionsz0TestDatetimeIndexArithmetic.test_ufunc_coercions  s   qt#DQQQq#&&qt#DQQQU{BF3$6$67 	' 	'Ffm44444!&#...;$&&&&&qt#DQQQU{BKU$;$;< 	' 	'Ffm44444!&#...;$&&&&& nnT""^As##R^As%;%;R^As=S=ST
 
 666S
 
 

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

'$-- 	 U{BKU$;$;< 	+ 	+Ffm44444!&#...;#(*****	+ 	+r4   c                 R   |}t          ddg||d                                       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	        |
|           d S )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	  sC   !34%(
 
 

'$-- 	 i***+a/u58LLL%)A"6"6"66e%PQ(SSS a~,,,,u
vx000#+
w1119Q////*u$
gx000#*$
gx00000r4   c                   
 |}|}t          dd||d                   
 |t          j                                        t          j                            d          g|d                   t          
          }t          j        t                    5   
          }d d d            n# 1 swxY w Y   t          
fdt          t          
                    D             |d         d	
          }	t          j        |	|                              t                    }	t          j        ||	           d S )Nr  r8   r   )r   r    r   r  r;   r   c                 @    g | ]} |         |                   S rr   rr   r  s     r2   r   zPTestDatetimeIndexArithmetic.test_dti_addsub_offset_arraylike.<locals>.<listcomp>6	  s-    ;;;aRRAa!!;;;r4   infer)r   rF   )r   ro   r  r  r  r   r%   r   r
   r   rk   r   r&   rm   rg   r'   )r(   r)   r  r   r   	other_boxr    r/   r  r1   r,   r-   s      `      @@r2    test_dti_addsub_offset_arraylikez<TestDatetimeIndexArithmetic.test_dti_addsub_offset_arraylike%	  sm   
 $	qReAhGGG	2:..00"*..1.2E2EFUSTXVVVc5))'(:;; 	! 	!"S%..C	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! !;;;;;;5S??;;;%(QX
 
 
 ?8T2299&AA
X&&&&&s   B22B69B6r  c                    |}t          dd|          }t          j        ||          } |t          j                                        t          d          g          }t          ||          }t          ddg|          }	t          j        |	|          	                    t                    }	t          j        t                    5  ||z   }
d d d            n# 1 swxY w Y   t          j        |
|	           t          d	d
g|          }	t          j        |	|          	                    t                    }	t          j        t                    5  ||z
  }
d d d            n# 1 swxY w Y   t          j        |
|	           d S )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88^44	2:..00)2C2C2CDEEeU++ ,!=BRSSS?8T2299&AA'(:;; 	# 	#U]F	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	#
))) ,!=BRSSS?8T2299&AA'(:;; 	# 	#U]F	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	#
)))))s$   
CC #C E''E+.E+N)rb   rc   rd   r`  rb  rf  rl  rn  rq  rU   re   rf   r   r  r  r}  r  r  r  r   r  r  ro   r   r"   r#   r  rr   r4   r2   rZ  rZ    sN       0 0 0,0 0 04  0# # #X0 0 0"$0 $0 $0T [THL(,#?@@& & A@&2C
 C
 C
J%+ %+ %+N1 1 1. [THL).(,#OPP' ' QP'* [[28RX*>??* * @?* * *r4   rZ  r  )r6   r   r;   r  )r   r8   r;  rw  c           	          t          t          d          t          d          t          d          t          d          t          d          g                              |          }t          |j         dz  z   |j        j                  }|                    d|j         d	          }t          |          } fd
|D             }t          |                              |j                  }t          j
        ||           d S )Nr  r  r  r  r  rJ  )resor3  r:  c                 X    g | ]&}|t           j                                       z   'S ))r  r  )ro   r  r   )r   r   r  r  s     r2   r   z%test_shift_months.<locals>.<listcomp>f	  s3    
N
N
NQ1rz$$5$@@@
N
N
Nr4   )r   r   r'  r	   r	  rK   _cresor
  r;  r%   r  )	r  r  r;  r,   shiftedshifted_dt64actualrawr1   s	   ``       r2   test_shift_monthsr  U	  s    +,,+,,l##l##l##	
  gdmm  38URZ&%8sy?OPPPG<< 1ch 1 1 122L<((F
N
N
N
N
N#
N
N
NCS!!))#(33H&(+++++r4   c                  :   t          ddd          } | j                            d          }t          j        d t          d          D                       }|j        |j        k    sJ t          j        t                    5  ||z   }d d d            n# 1 swxY w Y   t          j        t                    5  |d d df         |d d df         z                       dd	          }d d d            n# 1 swxY w Y   t          j
        ||           t          j        t                    5  ||                    t                    z
  }d d d            n# 1 swxY w Y   |j        dk    sJ t          d
 |                                D                       sJ d S )Nz
1994-02-132Wr   rE   )r   r;   c                 N    g | ]"}t           j                            |          g#S rr   )ro   r  r  )r   r  s     r2   r   z7test_dt64arr_addsub_object_dtype_2d.<locals>.<listcomp>q	  s)    <<<arz~~a(()<<<r4   r   r6   r;   c              3   ,   K   | ]}|j         d k    V  dS )r   N)r  )r   r  s     r2   	<genexpr>z6test_dt64arr_addsub_object_dtype_2d.<locals>.<genexpr>	  s(      88"ryA~888888r4   )r   rK   reshaper"   r#   rk   shaper%   r   r
   rT   rm   rg   r   ravel)r,   rL   r-   r0   r1   r  s         r2   #test_dt64arr_addsub_object_dtype_2dr  k	  sG    \a
8
8
8C
)

F
#
#CH<<588<<<==E;#)####		#$6	7	7  u              		#$6	7	7 < <1Iaaad+44R;;< < < < < < < < < < < < < < < 111		#$6	7	7 + +

6***+ + + + + + + + + + + + + + + =F""""888888888888s6   BBB9.C33C7:C7,EEEc                  H   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        ||           d S )Nl   CE|l   |< l   ({?M5datetime64[ms]r\   r   ry  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
U
U
UC2=---Fseai'8999H68,,,2>%...Fseai'7888H68,,,,,r4   c                  D   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        ||           d S )Nr  r  r\   r   r   r  rp  r  r  s      r2   1test_non_nano_dt64_addsub_np_nat_scalars_unitlessr  	  s     <<<DT
U
U
UC2='''Fseai'8999H68,,,2>%(((Fseai'7888H68,,,,,r4   c                  H   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        ||           d S )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888H68,,,2>%---Fseai777H68,,,,,r4   )5r   r   r   	itertoolsr   r   r   numpyr"   rU   rK  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  rv  r  r  rZ  re   rf   r  r  r  r  r  rr   r4   r2   <module>r     s           
               > > > > > > 4 4 4 4 4 4 , , , , , ,    
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
       ! ! ! ! ! !           m* m* m* m* m* m* m* m*`g1 g1 g1 g1 g1 g1 g1 g1TP P P P P P P Pn_ _ _ _ _ _ _ _DP0 P0 P0 P0 P0 P0 P0 P0fw w w w w w w wtB B B B B B B BJ}* }* }* }* }* }* }* }*@ ***--:::..!8!8!899, , :9 /. .-,&9 9 90	- 	- 	-
- 
- 
-	- 	- 	- 	- 	-r4   