U
    sVc&                    @   s  d dl m Z mZ d dlZd dlZd dlmZ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mZmZ d dlmZmZmZ dd Zd	d
 ZG dd dZ G dd dZ!G dd dZ"G dd dZ#G dd dZ$G dd dZ%G dd dZ&dd Z'dS )    )datetime	timedeltaN)OutOfBoundsDatetimePerformanceWarning)		DataFrameDatetimeIndexNaTSeries	TimedeltaTimedeltaIndex	Timestampoffsetstimedelta_range)Float64Index
Int64IndexUInt64Index)assert_invalid_addsub_typeassert_invalid_comparisonget_upcast_boxc                 C   s   t | }||kstdS )zT
    Helper to check the dtype for a Series, Index, or single-column DataFrame.
    N)tm	get_dtypeAssertionError)objZexpected_dtypedtype r   L/tmp/pip-unpacked-wheel-xj8nt62q/pandas/tests/arithmetic/test_timedelta64.pyassert_dtype)   s    
r   c                 C   s8   | t kr|d }n"| tjtjfkr,|d }n|d }|S )Nr         )r   r   to_arraypdarray)boxnamesexnamer   r   r   get_expected_name2   s    

r%   c                   @   s^  e Zd Zdd Zejdeddeddedd	 e
dgdd Zejd	d
dededded  ed  ed edgdd Zejdeedededejedeejddddjeejdddeejdddejdddeejddddjejddddeg
dd Zdd ZdS )#TestTimedelta64ArrayLikeComparisonsc                 C   s~   |}|t jt jfkr|ntj}tddd}t| d }t||}||k}tddddg}t||}t	|| d S )N2H   periodsr   TF)
r    Indexr!   npndarrayr   Zto_numpyr   box_expectedassert_equal)selfbox_with_arrayr"   xboxtdiotherresexpectedr   r   r    test_compare_timedelta64_zerodimG   s    zDTestTimedelta64ArrayLikeComparisons.test_compare_timedelta64_zerodim	td_scalarr   days   c                 C   sr   |}|t jt jfkr|ntj}ttddtddg}t||}||k}tddg}t||}t	|| d S )Nr   r9   r   FT)
r    r+   r!   r,   r-   r	   r   r   r.   r/   )r0   r1   r8   r"   r2   seractualr6   r   r   r   !test_compare_timedeltalike_scalarW   s    zETestTimedelta64ArrayLikeComparisons.test_compare_timedeltalike_scalarinvalidl     x
Ii	 a
2021-01-01UTCr(   c                 C   s,   |}t ddd}t||}t||| d S N1 days
   r)   )r   r   r.   r   )r0   r1   r?   r"   rngr   r   r   r   test_td64_comparisons_invalidl   s    zATestTimedelta64ArrayLikeComparisons.test_td64_comparisons_invalidr4   rE   z
1970-01-01r*   tzr)   z
1971-01-01Dfreqr*   c                 C   s*   t dddj}t||}t||| d S rC   )r   _datar   r.   r   )r0   r4   r1   rF   r   r   r   "test_td64arr_cmp_arraylike_invalid   s    zFTestTimedelta64ArrayLikeComparisons.test_td64arr_cmp_arraylike_invalidc              	   C   s   t dddj}tddd|d tdg}||k}td	d	d	d
d	g}t|| ||k}t||  d}tjt	|d ||k  W 5 Q R X tjt	|d ||k W 5 Q R X tjt	|d ||k W 5 Q R X tjt	|d ||k W 5 Q R X d S )NrD      r)   r   r   r      rA   FTzDInvalid comparison between|Cannot compare type|not supported betweenmatch)
r   rM   r,   r!   r   r   assert_numpy_array_equalpytestraises	TypeError)r0   rF   r4   resultr6   msgr   r   r   test_td64arr_cmp_mixed_invalid   s     zBTestTimedelta64ArrayLikeComparisons.test_td64arr_cmp_mixed_invalidN) __name__
__module____qualname__r7   rT   markparametrizer   r
   Zto_timedelta64r   Hourr>   r   nowto_datetime64to_pydatetimedater,   r!   rG   listrangearangeastypeZfloat32objectr    
date_rangeZperiod_rangerN   rY   r   r   r   r   r&   B   sN   	


	

r&   c                   @   s   e Zd Zejddegdd Zejdedde	e	ddge
e
d	d
e
d	d
e
de
de
dd
e
d	d e
dd
e
dd ggdd Zdd ZdS )TestTimedelta64ArrayComparisonsr   Nc                 C   s,  t tdttdg}t tttdg}|| }}|tkrP|t|t }}||k}tdddg}t|| ||k}tdddg}t|| tdddg}t|tk| tt|k| tdddg}t|tk| tt|k| tdddg}t|tk | tt|k| d S )NrD   3 daysFT)	r   r
   r   rh   rg   r,   r!   r   rS   )r0   r   leftrightlhsrhsrW   r6   r   r   r   test_comp_nat   s(    
z-TestTimedelta64ArrayComparisons.test_comp_natidx2z2 dayz1 day 00:00:02z5 days 00:00:03r   rJ   Znatr   srO   rP   c                 C   s  t dtdtddg}||k }tddddddg}t|| ||k}tddddddg}t|| ||k}tddddddg}t|| ||k}tddddddg}t|| ||k}tddddddg}t|| ||k}tddddddg}t|| d S )N1 dayz1 day 00:00:01z5 day 00:00:03TF)r   r   r,   r!   r   rS   )r0   rq   Zidx1rW   r6   r   r   r   test_comparisons_nat   s6    z4TestTimedelta64ArrayComparisons.test_comparisons_natc                 C   sb   t ddd}||d k }tdddgdgd  }t|| |t|k}||k}t|| d S )NrD   rE   r)   rP   TF   )r   r,   r!   r   rS   rd   )r0   rF   rW   r6   expr   r   r   test_comparisons_coverage  s    z9TestTimedelta64ArrayComparisons.test_comparisons_coverage)rZ   r[   r\   rT   r]   r^   rh   rp   r   r   r,   r!   timedelta64rt   rw   r   r   r   r   rj      s(   



%rj   c                   @   s~   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zej	
dddgdd Zdd Zdd Zdd Zdd Zdd Zdd ZdS )!TestTimedelta64ArithmeticUnsortedc                 C   s  t dddddgddd}|d t|dfD ]D}t|t s>tt ddd	d
dgddd}t|| |jdks,tq,|d t|dfD ]D}t|t stt dddddgddd}t|| |jdkstq| t	|fD ]D}t|t stt dddddgddd}t|| |jdkstqt dddddgddd}t
|t|fD ]J}t|t s`tt dddddgd dd}t|| |jd ksLtqLd S )Nr'   Z4HZ6HZ8HZ10HxrL   namer   Z12HZ16HZ20HZ1HZ3HZ5HHz-2Hz-4Hz-6Hz-8Hz-10Hz-1HZ0H)r   r,   multiply
isinstancer   r   assert_index_equalrL   dividenegativeabsabsolute)r0   idxrW   rv   r   r   r   test_ufunc_coercions  s4      z6TestTimedelta64ArithmeticUnsorted.test_ufunc_coercionsc              	   C   s  t dtdgdd}tjdddd}td}td}d	}tjt|d
 ||  W 5 Q R X tjt|d
 ||  W 5 Q R X d}tjt|d
 ||  W 5 Q R X d}tjt|d
 ||  W 5 Q R X || }t dddgdd}t	
|| || }t dddgdd}t	
|| || }t dtdgdd}t	j
||dd || }t dtdgdd}t	j
||dd || }tdddgddd}t	j
||dd || }tdtdgdd}t	
|| d S )NrD   2 daysfoor|   20130101rP   barr*   r|   z0cannot subtract a datelike from a TimedeltaArrayrQ   z#unsupported operand type\(s\) for -z((bad|unsupported) operand type for unary0 days-1 days-2 daysF)Zcheck_names2012123120130102rJ   r{   Z20121230)r   r   r    ri   r
   r   rT   rU   rV   r   r   r   )r0   r3   dtitddtrX   rW   r6   r   r   r   test_subtraction_ops9  sJ      z6TestTimedelta64ArithmeticUnsorted.test_subtraction_opsc              	   C   s  t jddd}t||}td}| }t jdddd}t||}tdd}tdd}| }td}	dd }
|| }td	}|
|| || }td	}|
|| || }td	}|
|| d
}tj	t
|d ||  W 5 Q R X d}tj	t
|d ||  W 5 Q R X d}tj	t
|d ||  W 5 Q R X d
}tj	t
|d ||  W 5 Q R X tj	t
|d ||  W 5 Q R X tj	t
|d ||  W 5 Q R X d}tj	t
|d ||  W 5 Q R X tj	t
|d ||  W 5 Q R X || }td	ddg}t||}t|| || }td	ddg}t||}t|| || }td	ddg}t||}t|| || }td	ddg}t||}t|| |	|	 }td	}|
|| ||	 }tdddgdd}t||}t|| d S )Nr   rP   r)   z
US/EasternZCETrD   c                 S   s   | |kst t| tst d S N)r   r   r
   rW   r6   r   r   r   _checkv  s    zNTestTimedelta64ArithmeticUnsorted.test_subtraction_ops_with_tz.<locals>._checkr   z<Cannot subtract tz-naive and tz-aware datetime-like objects.rQ   z6can't subtract offset-naive and offset-aware datetimesz%Cannot subtract tz-naive and tz-awarer   r   r   r   r   rI   )r    ri   r   r.   r   rb   Ztz_localizer
   rT   rU   rV   r   r/   r   )r0   r1   r   tsr   Zdti_tzZts_tzZts_tz2Zdt_tzr   r   rW   r6   rX   r   r   r   test_subtraction_ops_with_tzh  s    



z>TestTimedelta64ArithmeticUnsorted.test_subtraction_ops_with_tzc                 C   s   t dtdgdd}tjdddd}|| }t d	td	gdd}t|| || }t dtd
gdd}t|| || }tdtdg}t|| d S )NrD   r   r   r   r   rP   r   r   r   4 daysr   )r   r   r    ri   r   r   r   )r0   r3   r   rW   r6   r   r   r   test_dti_tdi_numeric_ops  s    z:TestTimedelta64ArithmeticUnsorted.test_dti_tdi_numeric_opsc              	   C   s  t dtdgdd}tjdddd}td}td}|| }td	td
gdd}t|| || }td	td
gdd}t|| || }t dtdgdd}t|| || }t dtdgdd}t|| d}t	j
t|d ||dd   W 5 Q R X t	j
t|d |dd |  W 5 Q R X d}t	j
t|d |tdddg  W 5 Q R X || }td	tdg}t|| || }td	tdg}t|| || }td	}||kst|| }td	}||kstd S )NrD   r   r   r   r   rP   r   r   r   Z20130103rk   z$cannot add indices of unequal lengthrQ   r   r   3Addition/subtraction of integers and integer-arraysr   Z20130105)r   r   r    ri   r
   r   r   r   r   rT   rU   
ValueErrorrV   r   r   )r0   r3   r   r   r   rW   r6   rX   r   r   r   test_addition_ops  sH    z3TestTimedelta64ArithmeticUnsorted.test_addition_opsrL   rJ   Bc                 C   s   t jdd|d}|td }|td }|d}t|| |dkrt jjd}|j	|ksbt
|j	|kspt
|j	|kst
n>|j	t jjdkst
|j	d kst
|j	t jjdkst
|td }|td }t|| d S )Nz1/1/20002   r*   rL   r   inferrJ   )r    ri   r   
_with_freqr   r   Ztseriesr   DayrL   r   ZBusinessDay)r0   rL   indexZshiftedbackr6   rW   r   r   r   test_timedelta  s     
z0TestTimedelta64ArithmeticUnsorted.test_timedeltac                 C   s   t dd}t|}|td }t|td }|td }t|td }|j|jksdt	|
d }t|| |j|jkst	|
d }t|| d S )NZ2013Z2014r   i )r    ri   r	   r   r_   r   r,   rx   rL   r   r   r   r   )r0   rF   rr   Zresult1Zresult2Zresult3Zresult4r   r   r   test_timedelta_tick_arithmetic  s    

z@TestTimedelta64ArithmeticUnsorted.test_timedelta_tick_arithmeticc                 C   s|   t dtdg}|j}tjdddd}|| }|| }t|| || }|| }t|| || }|| }t|| d S )NrD   r   z
1999-12-31rP   rJ   r   )r   r   r!   r    ri   r   r   )r0   r3   Ztdar   rW   r6   r   r   r   test_tda_add_sub_index.  s    z8TestTimedelta64ArithmeticUnsorted.test_tda_add_sub_indexc           	   	   C   sr   |}t jdd|d}|d }|| }t||}t||}tt ||t }W 5 Q R X t	|| d S )N
2016-01-01rP   rH   )
r    ri   r   r   r.   assert_produces_warningr   rg   rh   r/   )	r0   r1   tz_naive_fixturer"   r   r3   r   r4   rW   r   r   r   test_tda_add_dt64_object_arrayA  s    
z@TestTimedelta64ArithmeticUnsorted.test_tda_add_dt64_object_arrayc                 C   sb   t dd}t dddd}t||}t||}|}||7 }t|| |tjk	r^t|| d S NrD   10 daysz1 days 02:00:00z10 days 02:00:00rJ   rL   r   r   r.   r/   r    r+   r0   	two_hoursr1   rF   r6   Zorig_rngr   r   r   test_tdi_iadd_timedeltalikeS  s    

z=TestTimedelta64ArithmeticUnsorted.test_tdi_iadd_timedeltalikec                 C   s^   t dd}t dd}t||}t||}|}||8 }t|| |tjk	rZt|| d S NrD   r   z0 days 22:00:00z9 days 22:00:00r   r   r   r   r   test_tdi_isub_timedeltalikeb  s    


z=TestTimedelta64ArithmeticUnsorted.test_tdi_isub_timedeltalikec                 C   sd  t ddddd}|d|j  }t ddddd}t|| |jdksHt|d|j  }t d	dddd}t|| |jdkst|d }t ddd
dd}t|| |jd
kst|d }t ddddd}t|| |jdkst| }t d	dddd}t|| |jdkstt d	dddd}t|}tdddddgdd}t|| |jd ks`td S )Nr   rO   Z2Drz   )r*   rL   r|   r   r   r   r   Z4DrD   rJ   z-2Dr   r   )r   rL   r   r   r   r   r   )r0   rF   rW   rv   r   r   r   test_tdi_ops_attributess  s:     z9TestTimedelta64ArithmeticUnsorted.test_tdi_ops_attributesN)rZ   r[   r\   r   r   r   r   r   rT   r]   r^   r   r   r   r   r   r   r   r   r   r   r   ry     s   /U8
ry   c                   @   s.   e Zd Zejdddgdd Zdd ZdS )	TestAddSubNaTMaskingstr_tsz
1950-01-01z
1980-01-01c           	      C   s   t ddg}t||}t|}|| | d| dg}|D ]8}|| }|tkrr|j	d t
kstqJ|d t
ksJtqJd S )Nz24658 days 11:15:00r   zdatetime64[ns]zdatetime64[D])r   r   r   )r    to_timedeltar   r.   r   rb   ra   rg   r   ilocr   r   )	r0   r1   r   ZtdinatZtdobjr   Zts_variantsvariantr5   r   r   r   $test_tdarr_add_timestamp_nat_masking  s    z9TestAddSubNaTMasking.test_tdarr_add_timestamp_nat_maskingc              	   C   s  t jtdd tddtd  W 5 Q R X t jtdd tdtdd  W 5 Q R X tjd }d}t jt|d tdgdtd  W 5 Q R X t jt|d tdtdgd  W 5 Q R X t jt|d t|gt	d  W 5 Q R X t jt|d td	|gt	d  W 5 Q R X t jt|d& t|d	d
gtd|dg  W 5 Q R X t
tg}ttgt	d }t|| t
dtg}td	tgt	d }t|| t
ttdg}ttd	d
gtdtdg }t|| d S )NZ10155196800000000000rQ   iT rJ   2000r   zOverflow in int64 additionrD   z5 days1 hoursz	7 secondsz4 hoursr   z5 hours)rT   rU   r   r    r   r   r   valueOverflowErrorr
   r   r   r   )r0   Z_NaTrX   rv   rW   r   r   r   test_tdi_add_overflow  s<    
   
z*TestAddSubNaTMasking.test_tdi_add_overflowN)rZ   r[   r\   rT   r]   r^   r   r   r   r   r   r   r     s   
r   c                	   @   s  e Zd Zdd Zdd Zdd Zejde	e
ejgdd	 Zd
d Zdd Zdd Zejdddddgejdddgdd Zejddddedgdd Zejjd eddd!geddd!geddd!geddd!gggd"d# d$d%d& Zd'd( Zd)d* Zd+d, Zd-d. Zd/d0 Zejd1ed2egd3d4 Z d5d6 Z!d7d8 Z"d9d: Z#d;d< Z$d=d> Z%ejd?ejejegd@dA Z&dBdC Z'dS )DTestTimedeltaArraylikeAddSubOpsc              	   C   s  t tdg}t tdg}d}tjt|d t ttg W 5 Q R X t ttgdd}tdgt j}tdgt j}tjt|d ttgt j W 5 Q R X ttj	gt j}t d}t d}	t d}
|| }||	kst
|	| }||kst
|| }t|| || }t|| || }t|| || }t|| || }t|| | | }t|| ||
 }t|| |
| }t|| ||
 }t|| |
 | }t|| d}tjt|d |tj  W 5 Q R X tjt|d tj|  W 5 Q R X tjt|d |tj  W 5 Q R X tjt|d tj |  W 5 Q R X |t }t|| |t }t|| || }t|| || }t|| || }t|| || }t|| || }t|| || }t|| || }t|| || }t|| ||
 }t|| ||
 }t|| d	}tjt|d |tj  W 5 Q R X tjt|d |tj  W 5 Q R X |t }t|| |t }t|| d S )
Nz00:00:01z00:00:02z?dtype datetime64\[ns\] cannot be converted to timedelta64\[ns\]rQ   m8[ns]r   r   unsupported operand typez8cannot subtract a datelike from|unsupported operand type)r    r   r	   rT   rU   rV   r   r   applyr   r   r   assert_series_equalr,   nanZassert_frame_equal)r0   s1s2rX   ZsnZdf1Zdf2dfnZscalar1Zscalar2Ztimedelta_NaTr=   r   r   r   &test_timedelta_ops_with_missing_values  s    




zFTestTimedeltaArraylikeAddSubOps.test_timedelta_ops_with_missing_valuesc              	   C   s  t jdddd}t jdddd}t|t| }td|jdd}t|| |jdksbtt	d	|i}td
d t
dD }|jdkst|d	 |d	   }|jdkst|d	 | }|jdkst|d	  }t|tst|d	 |d	   }	|	jdkst|	|d	  }tdtdtdg}
t|
d	d}t|| |d	 tddd }tdd t
dD d	d}t|| |jdksttddddd}|d	 | }|jdkst|| }	t|d	 |	 tdd}|d	 | }|| }	t|	|d	  |	jdksttddd}|d	 | }|| }	t|d	 |	 |	jdksRt|d ttddd }|d  ttddd7  < |d |kstd S )Nz2012-1-1rP   rJ   r   z2012-1-2g  S$Bint64timedelta64[ns]Ac                 S   s   g | ]}t |d qS )r9   r   .0ir   r   r   
<listcomp>S  s     zNTestTimedeltaArraylikeAddSubOps.test_operators_timedelta64.<locals>.<listcomp>zM8[ns]Z20111230Z20120101Z20120103r   i  r   c                 S   s   g | ]}t d | dqS )i  r9   r   r   r   r   r   r   l  s     r   r(   r9   rO   minutessecondsr   )r    ri   r	   r   rg   r   r   r   r   r   re   shiftmaxr   r   r   r   r,   rx   )r0   Zv1Zv2rsZxpZdfr   rW   ZmaxaZresultbvaluesr6   dZresultar   r   r   r   test_operators_timedelta64I  sV    
z:TestTimedeltaArraylikeAddSubOps.test_operators_timedelta64c                 C   s  t ttdg}t ttgdd}t tgdd}t|t | tt | | t|| | t| | | t|t | tt| | t|| | t|| | t|t | tt| | t|| | t|| | t|t | tt| | t|| | t|| | t|d | td| | t|d | td| | t|d t ttdg td| t ttdg t|tj | ttj| | t|d t ttd	g t|d
 t ttd	g t|tj | d S )N1sr   r         ?r         ?z1.5sr   z0.5s       @)r	   r   r
   r   r   r,   r   )r0   Ztimedelta_seriesZnat_series_dtype_timedeltaZsingle_nat_dtype_timedeltar   r   r   test_timedelta64_ops_nat  s              z8TestTimedeltaArraylikeAddSubOps.test_timedelta64_ops_natclsc              	   C   s  |}t d|d}|tkr"| }n$|tjkrB|d k	r8d S | }n|}tddd}tjdd|d}t	
||}	t	
||}t	||	 | t	|	| | tjddd	|d
}
t	
|
|}
t	||	 |
 t	||	  |
 d}tjt|d |	|  W 5 Q R X d S )Nz
2012-01-01r   rs   rP   r)   z
2012-01-02rH   z
2011-12-31z-1D)r*   rL   rI   zcannot subtract a datelikerQ   )r   r   rb   r,   
datetime64ra   r   r    ri   r   r.   r/   rT   rU   rV   )r0   r   r1   r   rI   Z	dt_scalarr   r3   r6   tdarrZ	expected2rX   r   r   r   (test_td64arr_add_sub_datetimelike_scalar  s,    


zHTestTimedeltaArraylikeAddSubOps.test_td64arr_add_sub_datetimelike_scalarc                 C   s`   t d}tddd}tdddg}t||}t||}t|| | t|| | d S )Nr   rs   rP   r)   )r,   r   r   r   r   r.   r/   )r0   r1   r4   r3   r6   tdserr   r   r   test_td64arr_add_datetime64_nat  s    
z?TestTimedeltaArraylikeAddSubOps.test_td64arr_add_datetime64_natc              	   C   s   t jddd}tdgd }|j}t|| }t||}t||}d}tjt	|d ||  W 5 Q R X || }t
|| d S )Nr   rP   r)   -1 Dayzcannot subtract a datelike fromrQ   )r    ri   r   r   r   r   r.   rT   rU   rV   r/   )r0   r1   r   r3   dtarrr6   rX   rW   r   r   r   test_td64arr_sub_dt64_array  s    z;TestTimedeltaArraylikeAddSubOps.test_td64arr_sub_dt64_arrayc                 C   sr   t jddd}tdgd }|j}t|| }t||}t||}|| }t|| || }t|| d S )Nr   rP   r)   r   )r    ri   r   r   r   r   r.   r/   )r0   r1   r   r3   r   r6   rW   r   r   r   test_td64arr_add_dt64_array"  s    z;TestTimedeltaArraylikeAddSubOps.test_td64arr_add_dt64_arraypi_freqrJ   WQr}   tdi_freqNc           
   	   C   s   t ddg|d}td| }||}|d }t||}t||}d}	tjt|	d ||  W 5 Q R X tjt|	d ||  W 5 Q R X d S )Nr   z2 hoursr   z2018-03-07 17:16:40r   z(cannot subtract|unsupported operand typerQ   )r   r   Z	to_periodr   r.   rT   rU   rV   )
r0   r1   Zbox_with_array2r   r   r3   r   piZperrX   r   r   r   test_td64arr_sub_periodlike3  s    
z;TestTimedeltaArraylikeAddSubOps.test_td64arr_sub_periodliker4   r@   r   r   r   c                 C   s,   t dddgdd}t||}t|| d S N59 Daysr   r   r   )r	   r   r.   r   )r0   r1   r4   r   r   r   r   r   *test_td64arr_addsub_numeric_scalar_invalidH  s    zJTestTimedeltaArraylikeAddSubOps.test_td64arr_addsub_numeric_scalar_invalidvecrP   c                 C   s
   t | jS r   typerZ   rz   r   r   r   <lambda>b      z(TestTimedeltaArraylikeAddSubOps.<lambda>idsc                 C   s6   t dddgdd}t||}||}t|| d S r   )r	   r   r.   rg   r   )r0   r1   r   any_real_numpy_dtyper   r   vectorr   r   r   'test_td64arr_addsub_numeric_arr_invalidZ  s    
zGTestTimedeltaArraylikeAddSubOps.test_td64arr_addsub_numeric_arr_invalidc              	   C   sr   t dddd}t||}d}t||| tjt|d ||7 }W 5 Q R X tjt|d ||8 }W 5 Q R X d S )N1 days 09:00:00r}   rE   rK    Addition/subtraction of integersrQ   )r   r   r.   r   rT   rU   rV   )r0   r1   onerF   r   rX   r   r   r   test_td64arr_add_sub_intm  s    z8TestTimedeltaArraylikeAddSubOps.test_td64arr_add_sub_intc                 C   sX   |}|t jkrtjn|}tdddd}t||}tdddg|}d}t||| d S )Nr  r}   rP   rK   r(   r   r   )r    r!   r,   r-   r   r   r.   r   )r0   r1   r"   r2   rF   r   r4   rX   r   r   r   "test_td64arr_add_sub_integer_array{  s    zBTestTimedeltaArraylikeAddSubOps.test_td64arr_add_sub_integer_arrayc                 C   sX   |}|t jkrtjn|}tdddg}t||}tdddg|}d}t||| d S )N1 Dayr   z3 Hours   r      r  )r    r!   r,   r-   r   r   r.   r   )r0   r1   r"   r2   r3   r   r4   rX   r   r   r   )test_td64arr_addsub_integer_array_no_freq  s    zITestTimedeltaArraylikeAddSubOps.test_td64arr_addsub_integer_array_no_freqc           	      C   s   |}t jddd}||d }|j}d| }t||}t||}|| }t|| || }t|| d| }|| }t|| || }t|| d S )Nr   rP   r)   r   r   r   )r    ri   r   r   r   r.   r/   )	r0   r1   r"   r   r3   r   r6   rW   expected_subr   r   r   test_td64arr_add_sub_td64_array  s     z?TestTimedeltaArraylikeAddSubOps.test_td64arr_add_sub_td64_arrayc           	      C   s>  |}t ||}tddg|d d}|tjtjfkr<t|n|}ttddtddg|d d}ttddtddd	g|d}t	||}t	||}|| }t
|| t|d
 || }t
|| t|d
 ttddtddd	g|d}t	||}|| }t
|| t|d
 || }t
||  t|d
 d S )Nr   rs   r   r   rP   )hoursr(   r   )r:   r  r   )r%   r   r   r   r    r!   r,   r	   r
   r.   r/   r   )	r0   r1   r#   r"   r$   r3   r<   r6   rW   r   r   r   test_td64arr_add_sub_tdi  s2    
 

 
z8TestTimedeltaArraylikeAddSubOps.test_td64arr_add_sub_tditdnatr   c                 C   s   |}t ttdg}t dgd }t||}t||}|| }t|| || }t|| || }t|| || }t|| d S )Nr   r   r   )r   r   r
   r   r.   r/   )r0   r1   r  r"   r3   r6   r   rW   r   r   r   test_td64arr_add_sub_td64_nat  s    z=TestTimedeltaArraylikeAddSubOps.test_td64arr_add_sub_td64_natc                 C   s`   |}t dd}t dddd}t||}t||}|| }t|| || }t|| d S r   r   r   r.   r/   r0   r   r1   r"   rF   r6   rW   r   r   r   test_td64arr_add_timedeltalike  s    
z>TestTimedeltaArraylikeAddSubOps.test_td64arr_add_timedeltalikec                 C   s^   |}t dd}t dd}t||}t||}|| }t|| || }t||  d S r   r  r  r   r   r   test_td64arr_sub_timedeltalike  s    

z>TestTimedeltaArraylikeAddSubOps.test_td64arr_sub_timedeltalikec           
   	      sX  |}t ||}tddg|d dtjtjddtjddg|d d |tjtj	fkrbt
	 n  t fdd	ttD d
|d}t fdd	ttD d
|d}t|t||}t||}tt   }W 5 Q R X t|| tt   }W 5 Q R X t|| tt   }	W 5 Q R X t|	| d S )N1 days 00:00:003 days 04:00:00r   r   r   nc                    s   g | ]}|  |  qS r   r   r   r  r4   r3   r   r   r     s     zUTestTimedeltaArraylikeAddSubOps.test_td64arr_add_sub_offset_index.<locals>.<listcomp>r   r{   c                    s   g | ]}|  |  qS r   r   r  r   r   r   r     s     )r%   r   r    r+   r   r_   Minuter   r   r!   r,   re   lenr.   r   r   r/   )
r0   r#   r1   r"   r$   r6   r  r5   res2res_subr   r   r   !test_td64arr_add_sub_offset_index  s6    
&    zATestTimedeltaArraylikeAddSubOps.test_td64arr_add_sub_offset_indexc              	      s  |}t ddgttjddtjddg t  fddttD dd	}t  fd
dttD dd	}t	|t	||}t
t   }W 5 Q R X t|| t
t   }W 5 Q R X t|| t	||}t
t   }W 5 Q R X t|| d S )Nr  r  r   r  r  c                    s   g | ]}|  |  qS r   r   r  r   r   r   r   ,  s     zUTestTimedeltaArraylikeAddSubOps.test_td64arr_add_sub_offset_array.<locals>.<listcomp>r   r   c                    s   g | ]}|  |  qS r   r   r  r   r   r   r   /  s     )r   r,   r!   r   r_   r!  re   r"  r   r.   r   r   r/   )r0   r1   r"   r6   r  r5   r#  r$  r   r   r   !test_td64arr_add_sub_offset_array%  s.      zATestTimedeltaArraylikeAddSubOps.test_td64arr_add_sub_offset_arrayc              	      sP  |}|t jtjt jfkrtn|}t||}tddg|d dttj	ddtj
ddg|d d t fdd	ttD |d}t|}t||}tt |  }W 5 Q R X t|| tt  | }	W 5 Q R X t|	| t fd
d	ttD |d}
t|
|}
tt |  }W 5 Q R X t||
 d S )Nr  r  r   r   r   r  r  c                    s   g | ]}|  |  qS r   r   r  r   r   r   r   K  s     zSTestTimedeltaArraylikeAddSubOps.test_td64arr_with_offset_series.<locals>.<listcomp>c                    s   g | ]}|  |  qS r   r   r  r   r   r   r   W  s     )r    r+   r   r   r!   r	   r%   r   r   r_   r!  re   r"  r.   r   r   r/   )r0   r#   r1   r"   Zbox2r$   Zexpected_addr   r5   r#  r  Zres3r   r   r   test_td64arr_with_offset_seriesB  s&    
$$$z?TestTimedeltaArraylikeAddSubOps.test_td64arr_with_offset_seriesoboxc              
   C   s  t ddg}t||}|t tjddg}d}tjt|d$ t	t
 ||  W 5 Q R X W 5 Q R X tjt|d$ t	t
 ||  W 5 Q R X W 5 Q R X tjt|d$ t	t
 ||  W 5 Q R X W 5 Q R X tjt|d$ t	t
 ||  W 5 Q R X W 5 Q R X d S )Nr  r  r   r  z/has incorrect type|cannot add the type MonthEndrQ   )r   r   r.   r   ZMonthEndr   rT   rU   rV   r   r   )r0   r(  r1   r3   ZanchoredrX   r   r   r   -test_td64arr_addsub_anchored_offset_arraylike^  s     zMTestTimedeltaArraylikeAddSubOps.test_td64arr_addsub_anchored_offset_arraylikec           
   
   C   s:  |}|t jkrtjn|}tdddd}t||}ttddt	dt
dg}tt || }W 5 Q R X t tddtd	dt
d
g}t||}t|| d}	tjt|	d$ tt ||  W 5 Q R X W 5 Q R X tt || }W 5 Q R X t tdtdt
dg}t||}t|| d S )Nrs   rP   rJ   r   r   r9   r   z
2000-01-04r(   z
2000-01-07z3unsupported operand type|cannot subtract a datelikerQ   r   z
2000-01-01)r    r!   r,   r-   r   r   r.   r
   r   r   r   r   r   r+   r/   rT   rU   rV   )
r0   r1   r"   r2   r3   r   r4   rW   r6   rX   r   r   r   !test_td64arr_add_sub_object_arrayy  s*     zATestTimedeltaArraylikeAddSubOps.test_td64arr_add_sub_object_array)(rZ   r[   r\   r   r   r   rT   r]   r^   r   r   r,   r   r   r   r   r   r   r!   r   r    r+   r	   r   r  r  r	  r  r  r  rx   r   r  r  r  r%  r&  r'  r)  r*  r   r   r   r   r     sZ   jBU
#


	#
 
r   c                   @   sJ  e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd Ze	j
jdeddeeddeeddeeddeddgdd ddd Zdd Zdd Zdd Zdd Ze	j
ddddge	j
d d!d"dd#d$d%d&gd'd( Zd)d* Zd+d, Zd-d. Zd/d0 Zd1d2 Zd3d4 Zd5d6 Z d7d8 Z!d9d: Z"d;d< Z#d=d> Z$d?d@ Z%dAdB Z&e	j
dCdDdEe'dDe'dEgdFdG Z(e	j
dCdDdEe'dDe'dEgdHdI Z)e	j
jdJe'dKdLdMge*dKdLdMge+dKdLdMggdNd ddOdP Z,e	j
jdJe'dKdLdMge*dKdLdMge+dKdLdMggdQd ddRdS Z-dTdU Z.dVdW Z/dXdY Z0dZS )[TestTimedeltaArraylikeMulDivOpsc                 C   sJ   t tjddd}t||}|d }t|| d| }t|| d S )NrO   r   r   r   )r   r,   rf   r   r.   r/   r0   r1   r   rW   r   r   r   test_td64arr_mul_int  s    z4TestTimedeltaArraylikeMulDivOps.test_td64arr_mul_intc              	   C   sD   t dddd}t||}d}tjt|d ||  W 5 Q R X d S )NrD   r   r   r   z@argument must be an integer|cannot use operands with types dtyperQ   )r   r   r.   rT   rU   rV   )r0   r   r1   rF   rX   r   r   r   %test_td64arr_mul_tdlike_scalar_raises  s
    zETestTimedeltaArraylikeMulDivOps.test_td64arr_mul_tdlike_scalar_raisesc                 C   s\   t jddd}t|}t|d }t||}t||}|t jddd }t|| d S )NrO   r   r   )r,   rf   r   r   r.   r!   r/   r0   r1   Zrng5r   r6   rW   r   r   r   test_tdi_mul_int_array_zerodim  s    z>TestTimedeltaArraylikeMulDivOps.test_tdi_mul_int_array_zerodimc                 C   sR   t jddd}t|}t|d }t||}t||}|| }t|| d S NrO   r   r   r   )r,   rf   r   r   r.   r/   r/  r   r   r   test_tdi_mul_int_array  s    z6TestTimedeltaArraylikeMulDivOps.test_tdi_mul_int_arrayc                 C   s   |}|t jtjt jfkrtn|}ttjddd}ttjdddd }t	||}t	||}|ttjddd }t
|| d S r1  r    r+   r   r   r!   r	   r   r,   rf   r.   r/   )r0   r1   r"   r2   r   r6   rW   r   r   r   test_tdi_mul_int_series  s    z7TestTimedeltaArraylikeMulDivOps.test_tdi_mul_int_seriesc                 C   s   |}|t jtjt jfkrtn|}ttjddd}t	||}tjddd}t||d  }t	||}|t|d  }t
|| d S )NrO   r   r   float64r   r3  )r0   r1   r"   r2   r   Zrng5fr6   rW   r   r   r   test_tdi_mul_float_series  s    z9TestTimedeltaArraylikeMulDivOps.test_tdi_mul_float_seriesr4   r      c                 C   s
   t | jS r   r   r   r   r   r   r     r   z(TestTimedeltaArraylikeMulDivOps.<lambda>r   c           	      C   sp   |}t dgd }tddd }t||}t||}t||}|| }t|| || }t|| d S )Nr
  rE   rD   r   )r   r   r   r   r.   r   r/   )	r0   r4   r1   r"   r3   r6   r2   rW   Zcommuter   r   r   test_tdi_rmul_arraylike  s    
z7TestTimedeltaArraylikeMulDivOps.test_tdi_rmul_arraylikec              	   C   s   t dddd}t||}tjtdd |t  W 5 Q R X tjtdd t|  W 5 Q R X tdd	}d
	dddg}tjt|d ||  W 5 Q R X tjt|d ||  W 5 Q R X d S )NrD   r   r   r   r   rQ   zCannot divide NaTType byr   ns|z0ufunc '(true_divide|divide)' cannot use operandszcannot perform __r?truediv__z*Cannot divide datetime64 by TimedeltaArray)
r   r   r.   rT   rU   rV   r   r,   r   join)r0   r1   rF   Zdt64natrX   r   r   r   test_td64arr_div_nat_invalid  s"    z<TestTimedeltaArraylikeMulDivOps.test_td64arr_div_nat_invalidc                 C   s   |}|t jkrtjn|}tdd}t||}td}ttjgd }t||}|| }t	|| || }t	|| d S )NrD   r   r   rE   )
r    r!   r,   r-   r   r   r.   rx   r   r/   )r0   r1   r"   r2   rF   r4   r6   rW   r   r   r   test_td64arr_div_td64nat  s    

z8TestTimedeltaArraylikeMulDivOps.test_td64arr_div_td64natc              	   C   sX   t tjddd}t||}|d }t|| tjtdd d|  W 5 Q R X d S )NrO   r   r   r   Cannot dividerQ   	r   r,   rf   r   r.   r/   rT   rU   rV   r,  r   r   r   test_td64arr_div_int,  s    z4TestTimedeltaArraylikeMulDivOps.test_td64arr_div_intc                 C   s   |}|t jkrtjn|}tdddd}ttdd d dd}t||}t||}|| }t	|| || }d| }t	|| d S )NrD   r   r   r   rE   r      )
r    r!   r,   r-   r   r   rf   r   r.   r/   r0   r   r1   r"   r2   rF   r6   rW   r   r   r   test_td64arr_div_tdlike_scalar7  s    z>TestTimedeltaArraylikeMulDivOps.test_td64arr_div_tdlike_scalarmrP   rE   unitrJ   hrr   msusr9  c           
         s   |}|t jkrtjn|}ttddgd }tj|d< |}t||}t fdd|D }t||}|t	  }	t
|	| t fdd|D }t||}t	 | }	t
|	| d S )N;   r9   rP   r   c                    s   g | ]}|t   qS r   )r,   rx   r   rz   rD  rE  r   r   r   U  s     zPTestTimedeltaArraylikeMulDivOps.test_td64arr_div_td64_scalar.<locals>.<listcomp>c                    s    g | ]}t t | qS r   )r
   r,   rx   rJ  rK  r   r   r   [  s     )r    r!   r,   r-   r	   r
   r   r   r.   rx   r/   )
r0   rD  rE  r1   r"   r2   r<   Zflatr6   rW   r   rK  r   test_td64arr_div_td64_scalarI  s    
z<TestTimedeltaArraylikeMulDivOps.test_td64arr_div_td64_scalarc                 C   s   |}|t jkrtjn|}tdtdgdd}tdtjdgdd}t	||}t	||}|| }t
|| || }d| }t
|| d S )NrD   r   r   r   rA  r;   r   )r    r!   r,   r-   r   r   r   r   r   r.   r/   rB  r   r   r   'test_td64arr_div_tdlike_scalar_with_nat`  s    zGTestTimedeltaArraylikeMulDivOps.test_td64arr_div_tdlike_scalar_with_natc                 C   s2  |}|t jkrtjn|}tdtdg}tdtjdg}t	||}t	||}tjdddgdd}|| }t
|| |t	|| }t
|| ||t }t
|| |t| }t
|| d	| }|| }t
|| t	||| }t
|| |t| }t
|| t|| }t
|| d S )
NrD   r   rA  r;   r   r(   zm8[h]r   r   )r    r!   r,   r-   r   r   r   r   r   r.   r/   rg   rh   rd   )r0   r1   r"   r2   rF   r6   r4   rW   r   r   r   test_td64arr_div_td64_ndarrayq  s0    z=TestTimedeltaArraylikeMulDivOps.test_td64arr_div_td64_ndarrayc                 C   s   t dtdg}ddddg}t||}d}||d d fD ]d}|t|t|fD ]H}tj	t
|d ||  W 5 Q R X tj	t
|d ||  W 5 Q R X qTq:d S )	NrD   r   r   r   rP   r(   z0Cannot divide vectors|Unable to coerce to SeriesrQ   )r   r   r   r.   r,   r!   r    r+   rT   rU   r   )r0   r1   rF   Z
mismatchedrX   r   r4   r   r   r   test_tdarr_div_length_mismatch  s    z>TestTimedeltaArraylikeMulDivOps.test_tdarr_div_length_mismatchc           	      C   s   |}|t jkrtjn|}tdddgdd}tddd gdd}t||}t||}tjddtjgtjd}t||}|t	kr|r|ddg 
d	|ddg< || }t|| t|| }t|| d S )
Ni  izd    r   r   r   r   r   r   )r    r!   r,   r-   r	   r   r.   r   r5  r   rg   r/   Zasarray)	r0   r1   Zusing_array_managerr"   r2   rl   rm   r6   rW   r   r   r   &test_td64arr_floordiv_td64arr_with_nat  s    zFTestTimedeltaArraylikeMulDivOps.test_td64arr_floordiv_td64arr_with_natc           	      C   s   |}|t jkrtjn|}td}t||tgdd}tj||dd}tddtj	g}tj||dd}|| }t
|| tddtj	g}tj||dd}|| }t
|| ||}t
|| d S )NZ5m3sr   r   F)Z	transposer   r   )r    r!   r,   r-   r
   r	   r   r   r.   r   r/   __rfloordiv__)	r0   r1   	scalar_tdr"   r2   r   td1r6   rW   r   r   r   test_td64arr_floordiv_tdscalar  s    
z>TestTimedeltaArraylikeMulDivOps.test_td64arr_floordiv_tdscalarc              	   C   s\   t tjddd}t||}|d }t|| d}tjt|d d|  W 5 Q R X d S )NrO   r   r   r   z@floor_divide cannot use operands|Cannot divide int by Timedelta*rQ   r?  )r0   r1   r   rW   patternr   r   r   test_td64arr_floordiv_int  s    z9TestTimedeltaArraylikeMulDivOps.test_td64arr_floordiv_intc              	   C   s   t dd}t||}tdddgd }t||}|| }t|| d }|tkrdt|tjrdt	}t
| t||}W 5 Q R X t|d | t|d ||  d S )Nr
  9 daysz2 Days0 DaysrP   r   r   )r   r   r.   r   r/   r   r   r    Z
DateOffsetr   r   divmod)r0   r1   
three_daysr3   r   r6   rW   warnr   r   r   test_td64arr_mod_tdscalar  s    
z9TestTimedeltaArraylikeMulDivOps.test_td64arr_mod_tdscalarc              	   C   s   t dddd}t||}tddgd }t||}|d }t|| d}tjt|d	 d|  W 5 Q R X t|d}t|d
 | t|d |d  d S )Nz1 nsz10 nsrE   r)   z0 nsrO   r   zCannot divide int byrQ   r   r   )	r   r   r.   r   r/   rT   rU   rV   rZ  )r0   r1   r3   r   r6   rW   rX   r   r   r   test_td64arr_mod_int  s    
z4TestTimedeltaArraylikeMulDivOps.test_td64arr_mod_intc                 C   s   t dd}t||}dddgdgd  }t|}t||}|| }t|| t||}t|d | t|d ||  d S )Nr
  rX  rY  z3 Days   r   r   )r   r   r.   r   r/   rZ  )r0   r1   r[  r3   r   r6   rW   r   r   r   test_td64arr_rmod_tdscalar  s    

z:TestTimedeltaArraylikeMulDivOps.test_td64arr_rmod_tdscalarc              	   C   sz   t tdddgd }tj|jd< t||}d}tjt	|d ||  W 5 Q R X tjt	|d ||  W 5 Q R X d S NrO   rP   r   r   z(operate|unsupported|cannot|not supportedrQ   
r	   r   r,   r   r   r   r.   rT   rU   rV   )r0   r1   rS  rT  rV  r   r   r   !test_td64arr_mul_tdscalar_invalid&  s    zATestTimedeltaArraylikeMulDivOps.test_td64arr_mul_tdscalar_invalidc              	   C   s   t tjddd}t||}ddddg}tjt|d ||d d	   W 5 Q R X tjt	|d |t
d
dg  W 5 Q R X d S )NrO   r   r   r:  $cannot use operands with types dtypez$Cannot multiply with unequal lengthszUnable to coerce to SeriesrQ   rP   r   r   )r   r,   rf   r   r.   r;  rT   rU   rV   r   r!   r0   r1   r   rX   r   r   r   !test_td64arr_mul_too_short_raises5  s    zATestTimedeltaArraylikeMulDivOps.test_td64arr_mul_too_short_raisesc              	   C   sH   t tjddd}t||}d}tjt|d ||  W 5 Q R X d S )NrO   r   r   rd  rQ   )r   r,   rf   r   r.   rT   rU   rV   re  r   r   r   test_td64arr_mul_td64arr_raisesE  s
    z?TestTimedeltaArraylikeMulDivOps.test_td64arr_mul_td64arr_raisesc                 C   s   t dddgdd}t dddgdd}t||}t||}||  }t|| | | }t|| t dddgdd}t||}|d|  }t|| d| | }t|| d S )	Nr   r   r   r   z-59 Daysr   z118 Daysr   )r	   r   r.   r/   )r0   r1   r  r   r6   rW   r   r   r   test_td64arr_mul_numeric_scalarO  s    

z?TestTimedeltaArraylikeMulDivOps.test_td64arr_mul_numeric_scalartwor   r   c              	   C   sv   t dddgdd}t dddgdd}t||}t||}|| }t|| tjtdd ||  W 5 Q R X d S 	Nr   r   r   r   z29.5Dr   r>  rQ   r	   r   r.   r/   rT   rU   rV   r0   r1   ri  r   r6   rW   r   r   r   test_td64arr_div_numeric_scalare  s    z?TestTimedeltaArraylikeMulDivOps.test_td64arr_div_numeric_scalarc              	   C   sv   t dddgdd}t dddgdd}t||}t||}|| }t|| tjtdd ||  W 5 Q R X d S rj  rk  rl  r   r   r   $test_td64arr_floordiv_numeric_scalaru  s    zDTestTimedeltaArraylikeMulDivOps.test_td64arr_floordiv_numeric_scalarr     rP  (   c                 C   s
   t | jS r   r   r   r   r   r   r     r   c                 C   s|   t dddgdd}||}t dddgdd}t||}t||}t||}|| }t|| || }t|| d S )Nr   r   r   r   z	1180 Daysz	1770 Daysr   )r	   rg   r   r.   r   r/   )r0   r1   r  r  r   r6   r2   rW   r   r   r   test_td64arr_rmul_numeric_array  s    

z?TestTimedeltaArraylikeMulDivOps.test_td64arr_rmul_numeric_arrayc                 C   s
   t | jS r   r   r   r   r   r   r     r   c              	      sL  t dddgdd |t dddgdd}t | t }t||}  }t|| dd	d
dddg}tjt	|d    W 5 Q R X  t
 }|tkr· fddttD }n fddtt D }t|}t||}t|dkstt|| tjt	|d t
   W 5 Q R X d S )Nr   r   r   r   z2.95Dz
1D 23H 12mr   r:  z!true_divide'? cannot use operandszcannot perform __div__zcannot perform __truediv__zunsupported operandr>  rQ   c                    s"   g | ]} j d |f |  qS )r   )r   r  r   r  r   r   r     s     zRTestTimedeltaArraylikeMulDivOps.test_td64arr_div_numeric_array.<locals>.<listcomp>c                    s   g | ]} | |  qS r   r   r  rr  r   r   r     s     )r	   rg   r   r.   r   r/   r;  rT   rU   rV   rh   r   re   r"  r    r+   r   r   )r0   r1   r  r  r6   r2   rW   rV  r   rr  r   test_td64arr_div_numeric_array  s8    

	
z>TestTimedeltaArraylikeMulDivOps.test_td64arr_div_numeric_arrayc           
      C   s   |}t ||}tdddddg|d d}tddd	d
dgtj|d d}tdddddgd|d}t||}t||}t||}|| }	t|	| || }	t|	| d S )N0days1day2days3days4daysr   r   r   r   rP   r(   r   r|   Z9daysZ16daysr   )	r%   r   r	   r,   r   r   r.   r   r/   )
r0   r1   r#   r"   r$   r3   r<   r6   r2   rW   r   r   r   test_td64arr_mul_int_series  s&    
 
z;TestTimedeltaArraylikeMulDivOps.test_td64arr_mul_int_seriesc                    s   |}t dddddg|d dtdd	d
ddgtj|d d |tjtjfkrT|d n|d }t fddtt	 D d|d}t
|t }t
||} }|tkr|tkstnt|| d S )Nrt  ru  rv  rw  rx  r   r   r   rP   g      @r_  g      @r   ry  r   c                    s   g | ]}|  |  qS r   r   r  r<   r3   r   r   r     s     zRTestTimedeltaArraylikeMulDivOps.test_float_series_rdiv_td64arr.<locals>.<listcomp>r   )r   r	   r,   r5  r   r   r    r!   re   r"  r.   r   __rtruediv__r   NotImplementedr   r/   )r0   r1   r#   r"   Zxnamer6   r2   rW   r   r{  r   test_float_series_rdiv_td64arr  s&      

z>TestTimedeltaArraylikeMulDivOps.test_float_series_rdiv_td64arrc                 C   sV   t ttg}t||}tjddgtd}|| }t|| || }t|| d S )Nr   r   r   )r   r   r   r.   r,   r!   rh   r/   )r0   r1   r3   rl   rm   rW   r   r   r   -test_td64arr_all_nat_div_object_dtype_numeric  s    zMTestTimedeltaArraylikeMulDivOps.test_td64arr_all_nat_div_object_dtype_numericN)1rZ   r[   r\   r-  r.  r0  r2  r4  r6  rT   r]   r^   r,   rf   r   re   r   r   r    Z
RangeIndexr8  r<  r=  r@  rC  rL  rM  rN  rO  rQ  rU  rW  r]  r^  r`  rc  rf  rg  rh  r!   rm  rn  r+   r	   rq  rs  rz  r~  r  r   r   r   r   r+    sp   



&
 
 
*
*
,r+  c                   @   s   e Zd Zdd ZdS )"TestTimedelta64ArrayLikeArithmeticc              	   C   sz   t tdddgd }tj|jd< t||}d}tjt	|d ||  W 5 Q R X tjt	|d ||  W 5 Q R X d S ra  rb  )r0   rS  r1   rT  rV  r   r   r   test_td64arr_pow_invalid  s    z;TestTimedelta64ArrayLikeArithmetic.test_td64arr_pow_invalidN)rZ   r[   r\   r  r   r   r   r   r    s   r  c                     sD   t d  tdddd } t fddtdD }t| | d S )NrA   Z0sr      r)   c                    s6   g | ].} t d | t dt|dd    qS )z0.033333333sz0.000000001srP   r   )r    r   rZ  r   	timestampr   r   r   1  s   z3test_add_timestamp_to_timedelta.<locals>.<listcomp>)r   r   r   re   r   r   r   r   r  r   test_add_timestamp_to_timedelta,  s    

r  )(r   r   Znumpyr,   rT   Zpandas.errorsr   r   Zpandasr    r   r   r   r	   r
   r   r   r   r   Zpandas._testingZ_testingr   Zpandas.core.apir   r   r   Zpandas.tests.arithmetic.commonr   r   r   r   r%   r&   rj   ry   r   r   r+  r  r  r   r   r   r   <module>   s>   ,	mg   A     C     