
    Pid                    8   d dl m Z mZmZmZ d dlm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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          d                         Z-d Z.d Z/d  Z0d! Z1dS )"    )datetimetime	timedeltatimezone)productN)localize_pydatetime)shift_months)	
DateOffsetDatetimeIndexNaTPeriodSeries	TimedeltaTimedeltaIndex	Timestamp
date_range)	roperator)assert_cannot_addassert_invalid_addsub_typeassert_invalid_comparisonget_upcast_boxc                   ^   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              {/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/pandas/tests/arithmetic/test_datetime64.pytest_compare_zerodimz7TestDatetime64ArrayLikeComparisons.test_compare_zerodim3   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          r1   test_dt64arr_cmp_scalar_invalidzBTestDatetime64ArrayLikeComparisons.test_dt64arr_cmp_scalar_invalidB   sF    ( RB777^44!%?????r3   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=   rE   r   r   )r   _datar$   r%   r   )r'   r,   r(   r)   r   dtaobjs          r1   "test_dt64arr_cmp_arraylike_invalidzETestDatetime64ArrayLikeComparisons.test_dt64arr_cmp_arraylike_invalid\   sK    & D"DDDJoc>22!#un=====r3   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 )NrG   h   rI   r   r:   r7   r   r8   )FFFTFzDInvalid comparison between|Cannot compare type|not supported betweenmatch)
r   rJ   r!   r"   r   r$   assert_numpy_array_equalpytestraises	TypeError)r'   r(   r   rK   r,   r/   r0   msgs           r1   test_dt64arr_cmp_mixed_invalidzATestDatetime64ArrayLikeComparisons.test_dt64arr_cmp_mixed_invalidu   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serrL   r.   r0   r/   s              r1   test_dt64arr_nat_comparisonz>TestDatetime64ArrayLikeComparisons.test_dt64arr_nat_comparison   s    |+++b#Yoc3''c2t,,4-rx888?8T22
)))))r3   )__name__
__module____qualname__r2   rT   markparametrizeobjectr   r   dater!   nanr?   listrangearangeastypefloat32pdtimedelta_ranger"   period_rangerM   rX   r`    r3   r1   r   r   .   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	
  > >!  >  .* * * * *r3   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        g dfej        g dfej        g dfej        g dfej        g dfej        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+ ZdS ),TestDatetime64SeriesComparisonpair
2011-01-01
2011-01-031 daysz3 daysz2011-01MrE   z2011-03reverseTFr\   Nzop, expectedFFTTTFFFFc                     |}|\  }}	|r|	|}	}t          ||          }
 ||	|          } ||
|          }t          j        |t          |                     d S )Nr[   )r   r$   assert_series_equal)r'   r\   index_or_seriesrz   rt   opr0   r*   lhsrhsleftrightr/   s                r1   test_nat_comparisonsz3TestDatetime64SeriesComparison.test_nat_comparisons   sz    N S 	 CCc'''Cu%%%D%
vvh'7'788888r3   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   rn   r"   rf   r&   )r'   r\   r   r)   r*   r   r.   r0   s           r1   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.....r3   vali  r:      rP   c                     t          t          dd                    }|k    }t          fd|D                       }t          j        ||           d S )Nr<   r=   rA   c                     g | ]}|k    	S rq   rq   ).0xr   s     r1   
<listcomp>zQTestDatetime64SeriesComparison.test_series_comparison_scalars.<locals>.<listcomp>  s    333q1s7333r3   )r   r   r$   r   )r'   r   seriesr/   r0   s    `   r1   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0r3   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=   rA   datesnameT)deepnatr   r   20010109)	r   r   copyr   getattroperatorr$   r   r   )	r'   r   r   r_   s_natleft_fright_fr0   r/   s	            r1   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0r3   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 alignedrQ   r   )FTTr7   r   r|   r    r}   )r   r   r   r$   r%   r   r&   rn   	DataFramerT   rU   
ValueError)r'   r)   r*   r_   r.   r/   r0   s          r1   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:00rH   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!   rh   r$   r   )r'   r   r   r0   r_   r/   s         r1   !test_dt64_compare_datetime_scalarz@TestDatetime64SeriesComparison.test_dt64_compare_datetime_scalarf  s    ( *%%*%%*%%	 
 
 
 C&&(---
vx00000r3   c                     t          d          }t          g dd          }t          g dd          }t          j        |t	          j        ||                     d S )N
2024-07-01)z
2024-06-01r   
2024-08-01zdatetime64[us]r[   )r   r   r   )r   r   r$   r   r!   maximum)r'   r^   	ts_seriesr0   s       r1   test_ts_series_numpy_maximumz;TestDatetime64SeriesComparison.test_ts_series_numpy_maximum  sz     |$$666"
 
 
	
 666"
 
 

 	xB	)B)BCCCCCr3   )ra   rb   rc   rT   rd   re   r   r   r   r   rf   r   r   r   r   r   r   r   r   r   r   r   r   r   r!   
datetime64r   r   rq   r3   r1   rs   rs      s        [ <((#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[[.../[---.[///0[///0[.../[.../	

 
9 9
 
 65 76# <9, [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 D D D D Dr3   rs   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=   rA   r7   )
r   lenr   to_datetime64r!   r"   
isinstancendarrayr$   rS   )r'   comparison_opindexelementarr
arr_resultindex_results          r1   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=====r3   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   r7   r   z is not tz awareTF)r   r   r!   r   rT   skiptypera   r   tzinfor"   r$   rS   )r'   r,   r(   r   r+   r/   r0   s          r1   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5r3   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 )Nru   rv   Tr{   r|   r}   r   )r   r   r   r$   r%   r   rf   rl   r!   r"   r&   )
r'   r\   r)   r   r   r.   r   r   r/   r0   s
             r1   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,,,,,r3   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)rn   Indexr!   rh   r   r   r"   r   r$   assert_produces_warningrS   r   )r'   fidx1fidx2didx1didx2darrcasesidx1idx2r/   r0   r   s               r1   +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          }|                    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      rH   r   unit
US/Pacificc                 p    |                      t                    j                                        d         S )Nr   )rl   rf   valuestolistr   s    r1   <lambda>zQTestDatetimeIndexComparisons.test_comparison_tzawareness_compat.<locals>.<lambda>W  s&    qxx//6==??B r3   z^Invalid comparison between dtype=datetime64\[ns.*\] and (Timestamp|DatetimeArray|list|ndarray)rQ   r[   )r   tz_localizer$   r%   rn   r   ri   r   r   r   rT   rU   rV   r!   r"   rf   all)	r'   r   r)   r   r*   drdzr   rW   s	            r1   "test_comparison_tzawareness_compatz?TestDatetimeIndexComparisons.test_comparison_tzawareness_compatK  sC   ad;;;^^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   'C  CC&DDD./E))E-0E-F((F,/F,G00G47G4/IIIc                 t   |}t          d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   rH   r   r   z2000-03-14 01:59zEurope/AmsterdamrZ   zAInvalid comparison between dtype=datetime64\[ns.*\] and TimestamprQ   )r   r   r$   r%   r   r!   r   r   r   r   rT   rU   rV   )	r'   r   r)   r   r   r   r^   ts_tzrW   s	            r1   *test_comparison_tzawareness_compat_scalarszGTestDatetimeIndexComparisons.test_comparison_tzawareness_compat_scalars|  sj   ad;;;^^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"8EEEF++F/2F/z*ignore:elementwise comp:DeprecationWarningc                    |}|}t          d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   r7   rH   r   r   r   Tr[   z:Invalid comparison between dtype=datetime64\[ns, .*\] and rQ   )r   r$   r%   r   r   r   r   r!   r"   r   r&   r   ra   rT   rU   rV   )r'   r   r,   tz_aware_fixturer)   r   r   r+   r-   r.   exboolr0   r/   rW   s                 r1   "test_scalar_comparison_tzawarenessz?TestDatetimeIndexComparisons.test_scalar_comparison_tzawareness  s    qRdCCC^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$   rS   r   )r'   r   r   r+   r0   r/   s         r1   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5r3   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$   rS   )r'   r(   r   r>   r,   r/   r0   s          r1   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5r3   c                     t          dd          }|t          |          k    }||k    }t          j        ||           d S )Nr<   r=   rA   )r   ri   r$   rS   )r'   r>   r/   r0   s       r1   test_dti_cmp_listz.TestDatetimeIndexComparisons.test_dti_cmp_list  sF    R000S		!#:
#FH55555r3   1Dr=   rA   m8[ns]c                 *    t          |           j        S N)r   ra   r   s    r1   r   z%TestDatetimeIndexComparisons.<lambda>  s    d1gg& r3   )idsc                    t          ddd          }||k    }t          j        dgdz            }t          |t                    r*t          j        |t	          ||j                             nt          j        ||           ||k    }t          j        dgdz            }t          |t                    r*t          j        |t	          ||j                             n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   F)r   TzInvalid comparison betweenrQ   )r   r!   r"   r   r   r$   r   r   rS   rT   rU   rV   )r'   r,   r+   r/   r0   rW   s         r1   test_dti_cmp_tdi_tzawarenessz9TestDatetimeIndexComparisons.test_dti_cmp_tdi_tzawareness  s    rlCCC8UGbL))eV$$ 	:"66(%++N+N+NOOOO'9998TFRK((eV$$ 	:"66(%++N+N+NOOOO'999*]9C000 	 	%KK	 	 	 	 	 	 	 	 	 	 	 	 	 	 	]9C000 	 	5LL	 	 	 	 	 	 	 	 	 	 	 	 	 	 	]9C000 	 	%KK	 	 	 	 	 	 	 	 	 	 	 	 	 	 	]9C000 	 	5LL	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	sH   D''D+.D+E  E$'E$FF F?GGG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   OTrP   r:   r8   FzB>=' not supported between instances of 'Timestamp' and 'Timedelta'rQ   )r   rl   r!   r"   r$   rS   r   ri   r   rT   rU   rV   )r'   r+   r,   r/   r0   rW   s         r1   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)ra   rb   rc   r   rT   rd   re   r   r   r!   r   r   rf   r   r   r   r   filterwarningsr   r   r   r  rn   ro   	to_seriesasi8viewr  r  rq   r3   r1   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	

 '&     <    r3   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                 t   |}t          dd|d          }t          dd|d          }||                    d           }t          j        ||          }t          j        ||          }||z   }t          j        ||           ||z   }t          j        ||           ||z  }t          j        ||           d S )Nr	  
2000-02-01rH   r   r   z2000-01-01 02:00z2000-02-01 02:00r   
_with_freqr$   r%   r&   r'   r(   	two_hoursr)   r   r>   r0   r/   s           r1   %test_dt64arr_add_timedeltalike_scalarz>TestDatetime64Arithmetic.test_dt64arr_add_timedeltalike_scalar=  s    
 |FFF02DRVWWW>**400Hoc>22?8^<<y
)))S
)))y
X&&&&&r3   c                 @   |}t          dd|d          }t          dd|d          }||                    d           }t          j        ||          }t          j        ||          }||z
  }t          j        ||           ||z  }t          j        ||           d S )Nr	  r  rH   r  z1999-12-31 22:00z2000-01-31 22:00r  r  s           r1   %test_dt64arr_sub_timedeltalike_scalarz>TestDatetime64Arithmetic.test_dt64arr_sub_timedeltalike_scalarU  s     |FFF02DRVWWW>**400Hoc>22?8^<<y
)))y
X&&&&&r3   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   rA   
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 objectsrQ   )
r   r   r$   r%   r   r   r&   rT   rU   rV   r'   r)   t1t2tnaiver/   r0   rW   s           r1   .test_dt64_array_sub_dt_with_different_timezonezGTestDatetime64Arithmetic.test_dt64_array_sub_dt_with_different_timezoneh  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   rA   r   r!  )r"  r"  r"  )r#  r#  r#  r$  rQ   )	r   r   r$   r%   r   r&   rT   rU   rV   r%  s           r1   6test_dt64_array_sub_dt64_array_with_different_timezonezOTestDatetime64Arithmetic.test_dt64_array_sub_dt64_array_with_different_timezone  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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   QSrH   r   r   rE   r   r   rZ   cannot subtractrQ   )r   r!   timedelta64r   as_unitr$   r%   r&   rT   rU   rV   )
r'   r)   r(   r   r+   r,   r0   rL   r/   rW   s
             r1   test_dt64arr_add_sub_td64_natz6TestDatetime64Arithmetic.test_dt64arr_add_sub_td64_nat  sN   qRdNNNu%% %1444<<TBBoc>22?8^<<u
)))
)))u
)))]9C000 	 	CKK	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   (C;;C?C?c                 d   |}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                    g d	          }
t          j        t          |

          5  ||z
   d d d            d S # 1 swxY w Y   d S )Nr   r   r   )-1 Dayr4  r4  z
2015-12-31z
2016-01-02z
2016-01-04|)*cannot subtract DatetimeArray from ndarray0cannot subtract a datelike from a TimedeltaArrayz,cannot subtract DatetimeArray from TimedeltarQ   )
r   r   r   r$   r%   r&   joinrT   rU   rV   )r'   r(   r)   r   r+   tditdarrr0   r-   r/   rW   s              r1    test_dt64arr_add_sub_td64ndarrayz9TestDatetime64Arithmetic.test_dt64arr_add_sub_td64ndarray  s   qR888;;;<<
lL!KKK^44?8^<<
)))
)))lL!KKK?8^<<
)))hh  
 
 ]9C000 	 	EMM	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   D%%D),D)r^   
2013-01-01rC   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   rA   )z0 DaysrB   z2 Days)r   r  r$   r%   r   r&   )r'   r)   r^   idxr0   r/   s         r1   test_dt64arr_sub_dtscalarz2TestDatetime64Arithmetic.test_dt64arr_sub_dtscalar  s     q111<<TBBoc>22!"?"?"?@@?8^<<r
)))c
	***
	*****r3   c                    t          ddddd          }|                    d           }|d         }t          j        ||          }t	          t          j        dd          t          j        dd          gd	
          }t          j        ||          }t          j        ||z
  |           t          j        ||z
  |            d S )Nz
2014-03-17r7   rC   r   rH   )r   rE   r   r   r   r:   r  r[   )r   r  r$   r%   r   r!   r0  r&   )r'   r)   r_   r^   delta_seriesr0   s         r1   "test_dt64arr_sub_timestamp_tzawarez;TestDatetime64Arithmetic.test_dt64arr_sub_timestamp_tzaware  s    qs|RVWWWnnT""Voc>22^As##R^As%;%;<H
 
 
 ?<@@
b(+++
S8),,,,,r3   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   r1  r$   r%   r   r&   r   )	r'   r)   r   r+   r_   r/   r0   dti_tzser_tzs	            r1   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^<<
)))))r3   c                 t   t          dd|          }||z
  }t          j        ||          }t          j        ||                              t                    }t          j        |          5  ||                    t                    z
  }d d d            n# 1 swxY w Y   t          j        ||           d S Nr   r   r   )r   r$   r%   rl   rf   r   r&   )r'   performance_warningr)   r(   r+   r0   rL   r/   s           r1   !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   .BBBc                     t          ddd           }|j        }t          j        ||          }||z
  }||z
  }t          j        ||           ||z
  }t          j        ||           d S rK  )r   r   r$   r%   r&   )r'   r)   r+   dt64valsr-   r0   r/   s          r1   "test_dt64arr_naive_sub_dt64ndarrayz;TestDatetime64Arithmetic.test_dt64arr_naive_sub_dt64ndarray!  su    qT::::^445=!
)))E!
)))))r3   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 datetimerQ   )r   r   r$   r%   rT   rU   rV   )r'   r   r)   r   r+   rO  r-   rW   s           r1   )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   ru   rC   )
r   r   r$   r%   r   r   to_pydatetimer   r!   r   )r'   r(   r)   r   r+   dti2r-   s          r1   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Br3   rE   )rO   rC   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:08rZ   r   r7   )r   rE   r   r   r5   r5  )z Addition/subtraction of integers"cannot subtract DatetimeArray fromz(can only perform ops with numeric valuesz%unsupported operand type.*Categoricalz:unsupported operand type\(s\) for -: 'int' and 'Timestamp'r:   r   r[   )r   r   r!   r"   rl   r8  r   int64rn   Categoricalr   r   )
r'   r\   index_or_series_or_arrayrE   r(   r   r+   rL   r,   rW   s
             r1   test_dt64arr_addsub_intlikez4TestDatetime64Arithmetic.test_dt64arr_addsub_intlikeZ  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;;;;;r3   r,   gQ	@r   r   ru   ry   r:   r7   r   dti_freqc                     t          ddg|          }t          j        ||          }d                    g d          }t	          |||           d S )Nru   
2011-01-02ry   r5  )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%   r8  r   )r'   rc  r,   r)   r+   r-   rW   s          r1   test_dt64arr_add_sub_invalidz5TestDatetime64Arithmetic.test_dt64arr_add_sub_invalid  sh     \<8xHHH^44hh  
 
 	#5%55555r3   pi_freq)rC   rW  QrO   c                     t          ddg|          }|                    |          }t          j        ||          }t          j        ||          }d                    g d          }	t          |||	           d S )Nru   re  ry   r5  )rf  unsupported operandzdescriptor.*requireszufunc.*cannot use operands)r   	to_periodr$   r%   r8  r   )
r'   rc  rh  r)   box_with_array2r+   pir-   parrrW   s
             r1   test_dt64arr_add_sub_parrz2TestDatetime64Arithmetic.test_dt64arr_add_sub_parr  s     \<8xHHH]]7##^44r?33hh  
 
 	#5$44444r3   (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 rq   )r   )r   is     r1   r   zTTestDatetime64Arithmetic.test_dt64arr_addsub_time_objects_raises.<locals>.<listcomp>  s"    000!Q1000r3   r5  rk  r6  )rW   )r   rj   r$   r%   r8  r   )r'   r)   r(   r   obj1obj2rW   s          r1   '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7r3   dt64_seriesrD  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 typerQ   )r$   r%   rT   rU   rV   )r'   r{  ry  r)   rL   rW   s         r1   !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)$ra   rb   rc   rT   rd   arm_slowr  r  r)  r+  r2  r;  re   r   rT  r   r!   r   r?  rB  rI  rM  rP  rR  rV  rb  r"   r   r   rg  rp  r  rx  r   r   r}  rq   r3   r1   r  r  6  s        [' ' '.' ' '&  6  8  *  D [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::  ;:   r3   r  c                      e Zd Zd Zd Zej                            dg d          d             Zd Z	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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%d.fd/d0d1d2ifd0ddif          ej                            d3d4d5g          ej                            d6d+dg          ej                            d7d8d9g          d:                                                             Zej                            d;ej                                        ej                            d%<          gej                            d'=          ej                                        gej                            d'=          ej                            d'=          gg          ej                            d>ej        ej        ej        g          d?                         Zej                            d@dA eddBC           edD           edE           edF           edG          gd8fdA edH           edI           edJ           edK           edL          gdMfdN eddBC           edO           edP           edQ           edR          gd8fdN edH           edS           edT           edU           edV          gdWfg          dX             ZdY Zd8S )Z"TestDatetime64DateOffsetArithmeticc                 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:05rP   )
r   r   dtr1  r$   r%   rn   offsetsSecondr&   )r'   r)   r   r_   r0   r/   result2s          r1   '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&&,
*****r3   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:55rP   z)cannot subtract DatetimeArray from SecondrQ   )r   r   r$   r%   rn   r  r  r&   rT   rU   rV   )r'   r)   r_   r0   r/   r  rW   s          r1   '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'''#-
***9]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  rP   )r   r   r$   r%   r   rn   r  )r'   r  r)   r_   
offset_clss        r1   *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r3   c                 N   |}|dk    rit          dd|d          }|t          j                            d          z   }|d         t          j                            d          z   |d         k    sJ t          d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}	t          j        t          |	          5  ||z
   d d d            n# 1 swxY w Y   d S )Nr   z
2012-11-01r   rH   r   rP   r   z2010-11-01 00:00rO   r.  )z2010-11-01 05:00z2010-11-01 06:00z2010-11-01 07:00)rE   r   )hoursr^  rQ   )r   rn   r  r  r   r1  r$   r%   r!   r0  r   r&   rT   rU   rV   )
r'   r   r)   r   r   offsetr0   scalar	roundtriprW   s
             r1   test_dti_add_tick_tzawarez<TestDatetime64DateOffsetArithmetic.test_dti_add_tick_tzaware   s   |Q2DIIIERZ__Q///F8bjooa000F1I====-qRcPTUUU HHH
 
 
 '$--	 	 ~66?8^<<zq))2>!S+A+A9STCUCUCUV 	 	FV^FOFH---e^FOFH---IOIu---6Cy444                	 	s   FF	 F	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   ))yearsr7   )monthsrP   )r9   r   )r  rP   )minutesr=   )secondsr7   )microsecondsrP   r  rH   usc                     g | ]}|z   S rq   rq   r   r   offs     r1   r   zaTestDatetime64DateOffsetArithmetic.test_dt64arr_add_sub_relativedelta_offsets.<locals>.<listcomp>e      %A%A%A!a#g%A%A%Ar3   c                     g | ]}|z
  S rq   rq   r  s     r1   r   zaTestDatetime64DateOffsetArithmetic.test_dt64arr_add_sub_relativedelta_offsets.<locals>.<listcomp>i  r  r3   r:   c                     g | ]}|z   S rq   rq   r  s     r1   r   zaTestDatetime64DateOffsetArithmetic.test_dt64arr_add_sub_relativedelta_offsets.<locals>.<listcomp>o  r  r3   c                     g | ]}|z
  S rq   rq   r  s     r1   r   zaTestDatetime64DateOffsetArithmetic.test_dt64arr_add_sub_relativedelta_offsets.<locals>.<listcomp>s  r  r3   r^  rQ   rq   )r   r   r1  r$   r%   rn   r   iloc	enumerater
   r&   dictrT   rU   rV   )r'   r)   r   vec	vec_itemsrelative_kwargsru  offset_unitvalueexp_unitr0   rW   r  s               @r1   *test_dt64arr_add_sub_relativedelta_offsetszMTestDatetime64DateOffsetArithmetic.test_dt64arr_add_sub_relativedelta_offsetsB  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6Cy444  c		              5	 	s   -J??K	K	rq  cls_and_kwargs	YearBeginmonthrP   YearEnd
MonthBeginMonthEndSemiMonthEndSemiMonthBeginWeekweekdayr   r   BusinessDayBDay
QuarterEndQuarterBeginCustomBusinessDayCDay
CBMonthEndCBMonthBeginBMonthBegin	BMonthEndBusinessHour
BYearBeginBYearEndBQuarterBeginLastWeekOfMonthr7   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 rq   rq   r   r   r  s     r1   r   zWTestDatetime64DateOffsetArithmetic.test_dt64arr_add_sub_DateOffsets.<locals>.<listcomp>      !@!@!@!f*!@!@!@r3   c                     g | ]}|z
  S rq   rq   r  s     r1   r   zWTestDatetime64DateOffsetArithmetic.test_dt64arr_add_sub_DateOffsets.<locals>.<listcomp>  r  r3   c                     g | ]}|z   S rq   rq   r  s     r1   r   zWTestDatetime64DateOffsetArithmetic.test_dt64arr_add_sub_DateOffsets.<locals>.<listcomp>  s    !@!@!@&1*!@!@!@r3   r^  rQ   )r   tupler   r   r1  r   r$   r%   rn   r   r  r   r  r&   rT   rU   rV   )r'   r)   r  r  r  r   r   r  kwargsr  r  r  r0   rW   r  s                 @r1    test_dt64arr_add_sub_DateOffsetszCTestDatetime64DateOffsetArithmetic.test_dt64arr_add_sub_DateOffsets  s   n 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,///2]9C000 	 	SLL	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   /JJ	Jr,   r  )r  r   c                   
 |}t          dd|          
t          j        
|          }t          j                  t          
fdt          t          
                    D                       }t          j        ||                              t                    }t          j
        |          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
        |          5   |          }	d d d            n# 1 swxY w Y   t          j        |	|           d S )N
2017-01-01r7   r   c                 @    g | ]} |         |                   S rq   rq   r   r  r+   r   r,   s     r1   r   zXTestDatetime64DateOffsetArithmetic.test_dt64arr_add_sub_offset_array.<locals>.<listcomp>  s-    !P!P!P1""SVU1X"6"6!P!P!Pr3   r[   )r   r$   r%   r!   r"   r   rj   r   rl   rf   r   r&   rn   r   radd)r'   rL  r(   r)   r   r,   r   r-   r0   resr+   s       ``    @r1   !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$   9CCCE++E/2E/zop, offset, exp, exp_freq__add__r=   )r  r9   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                 2   |}t          ddd|d          }t          j        ||d          }t          ||          }	 |	|          }
t	          ||                              d          }t          j        ||d          }t          j        |
|           d S )Nz01 Jan 2014z01 Jan 2017YSrH   )startendrE   r   r   FrZ   )r   r$   r%   r   r   r1  r&   )r'   r   r  expexp_freqr   r)   r   rg   mthr/   r0   s               r1   #test_dti_add_sub_nonzero_mth_offsetzFTestDatetime64DateOffsetArithmetic.test_dti_add_sub_nonzero_mth_offset  s    j ]"4
 
 
 t^U;;dBV ,,,44T::?8^UCC
)))))r3   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.012345678rz  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:   )r9   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+   r/   r0   s       r1   -test_dt64arr_series_add_DateOffset_with_millizPTestDatetime64DateOffsetArithmetic.test_dt64arr_series_add_DateOffset_with_milliS  s      
 #
 
 
 zq1111   
 #
 
 
 	fh///zqq9999   
 #
 
 
 	fh/////r3   )ra   rb   rc   r  r  rT   rd   re   r  r  r  r  r  rn   r  r  r  r
   r   addr   r  subr  r   r  r  rq   r3   r1   r  r    s       
+ + +&' ' '( [QQQ 	 	 	  D6 6 6z [ JKK[)	
)	
7A,')	
 )	
 !%	)	

 )	
 )	
 )	
 )	
 )	
 i^$)	
 i^$)	
 )	
 )	
 )	
 )	
   !)	
" #)	
$ %)	
& ')	
( ))	
* +)	
, -)	
. /)	
0 1)	
2 3)	
4 A/5)	
8  +,%& !*	 7)	
H 1qyQQRI)	
J 1556K)	
L M)	
N E1:&O)	
P GQ<(Q)	
, ,Z [[4-88[S1a&))[TD,#788< < 98 *) 98[, , LKb<| [Z  ""BJNNQN$7$78Z"""++RZ-@-@-B-BCZ"""++RZ-B-B-B-K-KL		
  [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 0r3   r  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   r0   r/   s         r1   test_dt64_overflow_maskingz9TestDatetime64OverflowHandling.test_dt64_overflow_maskingw  s    y../x@@@ut^44~66!3%x888?8^<<
)))))r3   c                    t          d          }t          d          }t          d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   rH   )rE   r   r   Overflow in int64 additionrQ   r5   )z
2004-10-03z
2104-10-04z
2204-10-04r   rz  r[   r:   )z
91279 Daysr   r   r   timedelta64[ns])r   r   r   r   rT   rU   OverflowErrorr   r  r$   r   )r'   r  tdr+   r_   rW   r0   r  s           r1   test_dt64_series_arith_overflowz>TestDatetime64OverflowHandling.test_dt64_series_arith_overflow  s   |$$|$$GQTJJJ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   A00A47A4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:19rH   
1950-01-01rz  zdatetime64[D]
1980-01-01r  rQ   r:   )rn   to_datetimer   maxr1  minrT  r   rl   rT   rU   r	  _value)r'   dtimaxdtimintsnegts_neg_variantstsposts_pos_variantsrW   variantr0   r  s              r1   )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  rH   r  r  r:   r  rQ   1us)rn   r  r   r  r1  r  r  rT   rU   r	  r   )r'   r  r  ts_negts_posr0   r/   rW   tminr&  tmaxr'  s               r1   -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)ra   rb   rc   r  r  r  r"  rq   r3   r1   r  r  t  sR        * * */ / /@$! $! $!L         r3   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/  rQ   )r   r$   r&   rT   rU   rV   )r'   r)   abrW   s        r1   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 )NrP   r   r  r  r7   20111230r   20120103201112312012010220120104)r   r   r!   rh   r  r   )r'   td1dt1dt2s       r1   test_operators_datetimelikez9TestTimestampSeriesArithmetic.test_operators_datetimelike  s    i15556:;;f *%%*%%*%%
 
 f*%%*%%*%%
 
 	c		c		 	c		c		c		 	c		c				r3   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[rF  r[   r  rE  )r   r   r   r$   get_finest_unitr\   )r'   r   r^   r  r_   r/   r  s          r1   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9r3   zleft, right, op_failr+  r   r-  r.  r/  r  __rsub__rP   r   r*  )r  __radd__r  r   rZ   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 operandrQ   )r   r   rT   rU   rV   )	r'   r   r   op_failall_arithmetic_operatorsop_strarg1arg2r   s	            r1   #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_PaulorZ   z
2016-02-082daysz-2days)r   r   r  r1  r   r$   r   )r'   r   s1s2r/   r0   s         r1   test_sub_single_tzz0TestTimestampSeriesArithmetic.test_sub_single_tzZ  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0r3   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_   r0   r  s        r1   test_dt64tz_series_sub_dtitzz:TestTimestampSeriesArithmetic.test_dt64tz_series_sub_dtitze  s|     rlCCCSkk.'R8899Ci
sH---Ci
sH-----r3   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   r8  r  rw   )r   r   r   utcr   r  r1  r$   r:  r   r   r   )r'   r   r_   r  r  r  r/   r  s           r1   test_sub_datetime_compatz6TestTimestampSeriesArithmetic.test_sub_datetime_compatq  s    htQBx|DDDcJKKNVV
 
 dAr2hl;;;%dD11i))3/003;;HEEr
vs+++	"%
w,,,,,r3   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  rP   z20130101 9:01:00.005z20130101 9:02:00.005z20130101 9:06:00.005z20130101 9:07:00.005)r   r   rn   r  r  r$   r   r  )r'   sr/   r  r0   s        r1   *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0r3   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 )NrD  zdatetime64[rF  r[   z-bad operand type for unary -: 'DatetimeArray'rQ   )
r   r   r   r  r1  r$   r   rT   rU   rV   )r'   r   datetime_seriesnat_series_dtype_timestampsingle_nat_dtype_datetimerW   s         r1   test_datetime64_ops_natz5TestTimestampSeriesArithmetic.test_datetime64_ops_nat  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:00rP   r   r4   r   r7   z1 days 1 minrO   )r   rE   r:   r   r^  rQ   rf  )r   r   r   r!   rh   r  rn   ro   _valuesrE   r  r   r$   r   rT   rU   rV   )	r'   r   r1  r2  r0  td2r/   r  rW   s	            r1   *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+++2]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)ra   rb   rc   r(  r3  r;  rT   rd   re   r   r   r   rD  rI  rL  rR  rU  rZ  r^  rq   r3   r1   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< < < < <r3   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  rZ   r=   0 daysrA   r   	r   r   rn   ro   r   r  r$   r  r   r'   r(   r   r+   r9  r0   r/   s          r1   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/////r3   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 rb  rd  re  s          r1   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/////r3   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  rZ   r=   rc  rA   -1D)r   r   rE   z cannot subtract .*TimedeltaArrayrQ   r7  )r   r   rn   ro   r   r  r$   r  rT   rU   rV   r   )r'   r(   r   r+   r9  r0   r/   rW   s           r1   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  rZ   r=   rc  r   rj  r.  )outr7  rQ   )r   r   r1  rn   ro   r   r  r$   r  rJ   r   assert_datetime_array_equalr!   subtractrT   rU   rV   r   r\  )r'   r(   r   r   r+   r9  r0   r/   rK   rm  rW   s              r1   test_dti_isub_tdiz-TestDatetimeIndexArithmetic.test_dti_isub_tdiA  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+   rK   r/   r0   r9  s          r1   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/////r3   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   r   r   )r   r   r   r$  rQ   r   z$cannot add indices of unequal lengthrs  z
2012-01-03z
2012-01-02rw   )r   r   r   r1  r$   r  rT   rU   rV   r   r   r!   rh   )	r'   r   r+   rG  r0   r/   rW   dti1rU  s	            r1   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)rC   rO   mrT  r  c            	      x    t          j        t          t          t           j        |                               S r  )r!   sumri   mapr0  )args	intervalss    r1   r0  z_TestDatetimeIndexArithmetic.test_timedelta64_equal_timedelta_supported_ops.<locals>.timedelta64  s)    6$s2>4CCDDEEEr3   r7   rP   )r9   r  r  r  r  )r   r   r   rj   r   r$   r&   )r'   r   r)   r_   rL   r0  drO   rx  rT  r  nptdpytdr   r   r}  s                  @r1   .test_timedelta64_equal_timedelta_supported_opszJTestDatetimeIndexArithmetic.test_timedelta64_equal_timedelta_supported_ops  s   *%%-..-..-..	
 
 nS!!...		F 	F 	F 	F 	F &q
Q8 	& 	&NAq!Q;q!Q2..D!1aQSTTTD"S$--C"S$--COC%%%%	& 	&r3   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1srD  r  r[   rz  zcannot subtract a datelikerQ   )	r   r   r   r   r$   r   rT   rU   rV   )r'   timedelta_seriesrW  nat_series_dtype_timedeltarX  rY  single_nat_dtype_timedeltarW   s           r1   )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 )Nru   r   2Dr   )r   rE   r   r   r:   rC   re  
2010-12-31r7   )re  z
2011-01-05z
2011-01-08r   )r  ru   re  )r   r!   r0  r  r   r   r$   r  rE   ro  r  r"   r1  )r'   r   r>  deltar  r/   s         r1   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!&#...;#(*****	+ 	+r3   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   rH   rP   )r  r7   r:   )r   r   )
r   r1  r   r   r   r\   r$   r   r   r  )r'   r(   namesr   r   r_   r0   r/   r  result3result4s              r1   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0r3   c                 x   |}|}t          dd||d                    |t          j                                        t          j                            d          g|d                   t                    }t          j        |          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  r7   r   )r   r   r   r  r:   r   c                 @    g | ]} |         |                   S rq   rq   r  s     r1   r   zPTestDatetimeIndexArithmetic.test_dti_addsub_offset_arraylike.<locals>.<listcomp>V	  s-    ;;;aRRAa!!;;;r3   infer)r   rE   )r   rn   r  r  r  r   r$   r   r   rj   r   r%   rl   rf   r&   )r'   rL  r(   r  r   r   	other_boxr   r.   r  r0   r+   r,   s       `      @@r1    test_dti_addsub_offset_arraylikez<TestDatetimeIndexArithmetic.test_dti_addsub_offset_arraylikeE	  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   B--B14B1r  c                    |}t          dd|          }t          j        ||          } |t          j                                        t          d          g          }t          ||          }	t          ddg|          }
t          j        |
|	          	                    t                    }
t          j        |          5  ||z   }d d d            n# 1 swxY w Y   t          j        ||
           t          d	d
g|          }
t          j        |
|	          	                    t                    }
t          j        |          5  ||z
  }d d d            n# 1 swxY w Y   t          j        ||
           d S )Nr  r7   r   r   r8   z
2017-01-31z
2017-01-06rZ   z
2016-12-31z
2016-12-29)r   r$   r%   rn   r  r  r   r   r   rl   rf   r   r&   )r'   rL  r(   r)   r  r   r+   r-   r,   r.   r0   r/   s               r1    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)ra   rb   rc   rf  rh  rk  rp  rr  ru  rT   rd   re   r   r  r  r  r  r  r  r   r  r  rn   r   r!   r"   r  rq   r3   r1   r`  r`    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*>??* * @?* * *r3   r`  r  )r5   r   r:   r  )r   r7   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  rP  )resor9  rF  c                 X    g | ]&}|t           j                                       z   'S ))r  r  )rn   r  r
   )r   r   r  r  s     r1   r   z%test_shift_months.<locals>.<listcomp>	  s3    
N
N
NQ1rz$$5$@@@
N
N
Nr3   )r   r   r1  r	   r  rJ   _cresor  r   r$   r  )	r  r  r   r+   shiftedshifted_dt64actualrawr0   s	   ``       r1   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&(+++++r3   c                    t          ddd          }|j                            d          }t          j        d t          d          D                       }|j        |j        k    sJ t          j        |           5  ||z   }d d d            n# 1 swxY w Y   t          j        |           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        |           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   rD   )r   r:   c                 N    g | ]"}t           j                            |          g#S rq   )rn   r  r  )r   r  s     r1   r   z7test_dt64arr_addsub_object_dtype_2d.<locals>.<listcomp>	  s)    <<<arz~~a(()<<<r3   r   r5   r:   c              3   ,   K   | ]}|j         d k    V  dS )r   N)r  )r   r
  s     r1   	<genexpr>z6test_dt64arr_addsub_object_dtype_2d.<locals>.<genexpr>	  s(      88"ryA~888888r3   )r   rJ   reshaper!   r"   rj   shaper$   r   rS   rl   rf   r   ravel)rL  r+   rK   r,   r/   r0   r  s          r1   #test_dt64arr_addsub_object_dtype_2dr  	  sG    \a
8
8
8C
)

F
#
#CH<<588<<<==E;#)####		#$7	8	8  u              		#$7	8	8 < <1Iaaad+44R;;< < < < < < < < < < < < < < < 111		#$7	8	8 + +

6***+ + + + + + + + + + + + + + + =F""""888888888888s6   >BBB/.C))C-0C-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   msr   timedelta64[ms]r   r!   r   r   r$   r   r0  r_   r/   r0   s      r1   (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,,,,,r3   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  r  r  s      r1   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,,,,,r3   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   rC   r   ztimedelta64[s]r  r  s      r1   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,,,,,r3   )2r   r   r   r   	itertoolsr   r   numpyr!   rT   pandas._libs.tslibs.conversionr   pandas._libs.tslibs.offsetsr	   pandasrn   r
   r   r   r   r   r   r   r   r   pandas._testing_testingr$   pandas.corer   pandas.tests.arithmetic.commonr   r   r   r   r   rs   r   r  r  r  r$  r`  rd   re   r  r  r  r  r  rq   r3   r1   <module>r     s                         > > > > > > 4 4 4 4 4 4    
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
       ! ! ! ! ! !           m* m* m* m* m* m* m* m*`wD wD wD wD wD wD wD wDtW W W W W W W W|m m m m m m m m`K0 K0 K0 K0 K0 K0 K0 K0\w w w w w w w wtD D D D D D D DN}* }* }* }* }* }* }* }*@ ***--:::.., , /. .-,&9 9 90	- 	- 	-
- 
- 
-	- 	- 	- 	- 	-r3   