U
    f/e4                    @   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 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)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-tiezk1ph/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_name-   s    

r"   c                   @   sJ  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 ede  e  e  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}t
jt|d |tdk W 5 Q R X d S )	N2H   periodsr   TFz Invalid comparison between dtypematch)r   Indexr   npndarrayr   Zto_numpyr   box_expectedassert_equalpytestraises	TypeError)	selfbox_with_arrayr   xboxtdiotherresexpectedmsgr   r   r    test_compare_timedelta64_zerodimB   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   r<   r   FT)
r   r*   r   r+   r,   r	   r   r   r-   r.   )r2   r3   r;   r   r4   seractualr8   r   r   r   !test_compare_timedeltalike_scalarW   s    zETestTimedelta64ArrayLikeComparisons.test_compare_timedeltalike_scalarinvalidl     x
Ii	 aUTCc                 C   s,   |}t ddd}t||}t||| d S N1 days
   r&   )r   r   r-   r   )r2   r3   rB   r   rngr   r   r   r   test_td64_comparisons_invalidl   s    zATestTimedelta64ArrayLikeComparisons.test_td64_comparisons_invalidr6   rG   z
1970-01-01r'   tzr&   z
1971-01-01Dfreqr'   c                 C   s    t dddj}t||tj d S rE   )r   _datar   r   r   )r2   r6   rH   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 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 )NrF      r&   r   r   r      FTzDInvalid comparison between|Cannot compare type|not supported betweenr(   )r   rO   r+   r   r   nowr   assert_numpy_array_equalr/   r0   r1   )r2   rH   r6   resultr8   r9   r   r   r   test_td64arr_cmp_mixed_invalid   s     zBTestTimedelta64ArrayLikeComparisons.test_td64arr_cmp_mixed_invalidN) __name__
__module____qualname__r:   r/   markparametrizer   r
   to_timedelta64r   HourrA   r   rS   to_datetime64to_pydatetimedaterI   listranger+   arangeastypeZfloat32objectr   
date_ranger   Zperiod_rangerP   rV   r   r   r   r   r#   =   sL   	




	

r#   c                   @   s6   e Zd Zejddegdd Z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 )NrF   3 daysFT)	r   r
   r   re   rd   r+   r   r   rT   )r2   r   leftrightlhsrhsrU   r8   r   r   r   test_comp_nat   s(    
z-TestTimedelta64ArrayComparisons.test_comp_natc           	      C   s  t dtdtddg}t ddttddg}ttddtddtd	td	td
dtdd tddtdd g}||f||fg}|D ]\}}||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|| qd S )N1 dayz1 day 00:00:01z5 day 00:00:032 dayz1 day 00:00:02z5 days 00:00:03r   rL   Znatr   srQ   rR   TF)r   r   r+   r   timedelta64r   rT   )	r2   Ztdidx1Ztdidx2tdarrZcasesZidx1Zidx2rU   r8   r   r   r   test_comparisons_nat   sR    


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 )NrF   rG   r&   rR   TF   )r   r+   r   r   rT   ra   )r2   rH   rU   r8   expr   r   r   test_comparisons_coverage  s    z9TestTimedelta64ArrayComparisons.test_comparisons_coverage)
rW   rX   rY   r/   rZ   r[   re   rm   rs   rv   r   r   r   r   rg      s   
7rg   c                   @   sv   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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rN   namer   Z12HZ16HZ20HZ1HZ3HZ5HHz-2Hz-4Hz-6Hz-8Hz-10Hz-1HZ0H)r   r+   multiply
isinstancer   r   assert_index_equalrN   dividenegativeabsabsolute)r2   idxrU   ru   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 )NrF   2 daysfoorz   20130101rR   barr'   rz   z0cannot subtract a datelike from a TimedeltaArrayr(   z#unsupported operand type\(s\) for -z((bad|unsupported) operand type for unary0 days-1 days-2 daysF)Zcheck_names2012123120130102rL   ry   Z20121230)r   r   r   rf   r
   r   r/   r0   r1   r   r~   r   )r2   r5   dtitddtr9   rU   r8   r   r   r   test_subtraction_ops7  sJ      z6TestTimedelta64ArithmeticUnsorted.test_subtraction_opsc              	   C   s
  t jddd}td}| }t jdddd}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 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 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 tjt|d ||  W 5 Q R X || }
t	d	ddg}t
|
| || }
t	d	ddg}t
|
| || }
t	d	ddg}t
|
| || }
t	d	ddg}t
|
| || }
td	}|	|
| || }
tdddgdd}t
|
| d S )Nr   rR   r&   z
US/EasternZCETrF   c                 S   s   | |kst t| tst d S N)r   r}   r
   rU   r8   r   r   r   _checkr  s    zNTestTimedelta64ArithmeticUnsorted.test_subtraction_ops_with_tz.<locals>._checkr   zBTimestamp subtraction must have the same timezones or no timezonesr(   z6can't subtract offset-naive and offset-aware datetimesr   r   r   r   r   rK   )r   rf   r   r_   Ztz_localizer
   r/   r0   r1   r   r   r~   r   )r2   r   tsr   Zdti_tzZts_tzZts_tz2Zdt_tzr   r   rU   r8   r9   r   r   r   test_subtraction_ops_with_tzf  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 )NrF   r   r   r   r   rR   r   r   r   4 daysr   )r   r   r   rf   r   r~   r   )r2   r5   r   rU   r8   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 )NrF   r   r   r   r   rR   r   r   r   Z20130103rh   z$cannot add indices of unequal lengthr(   r   r   3Addition/subtraction of integers and integer-arraysr   Z20130105)r   r   r   rf   r
   r   r   r   r~   r/   r0   
ValueErrorr1   
Int64Indexr   )r2   r5   r   r   r   rU   r8   r9   r   r   r   test_addition_ops  sH    z3TestTimedelta64ArithmeticUnsorted.test_addition_opsrN   rL   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|| t dd	}t|}|td }	t|td
 }
|td
 }t|td }|	j	|j	ksHt
|	d }	t|	| |j	|j	kspt
|d }t|
| d S )Nz1/1/20002   r'   rN   r   inferrL   Z2013Z2014i )r   rf   r   
_with_freqr   r~   Ztseriesr   DayrN   r   ZBusinessDayr	   r]   r   r+   rq   )r2   rN   indexZshiftedbackr8   rU   rH   rp   Zresult1Zresult2Zresult3Zresult4r   r   r   test_timedelta  s8    


z0TestTimedelta64ArithmeticUnsorted.test_timedeltac                 C   s|   t dtdg}|j}tjdddd}|| }|| }t|| || }|| }t|| || }|| }t|| d S )NrF   r   z
1999-12-31rR   rL   r   )r   r   r   r   rf   r   r~   )r2   r5   Ztdar   rU   r8   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-01rR   rJ   )
r   rf   r   r   r-   assert_produces_warningr   rd   re   r.   )	r2   r3   tz_naive_fixturer   r   r5   r   r6   rU   r   r   r   test_tda_add_dt64_object_array=  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 NrF   10 daysz1 days 02:00:00z10 days 02:00:00rL   rN   r   r   r-   r.   r   r*   r2   	two_hoursr3   rH   r8   Zorig_rngr   r   r   test_tdi_iadd_timedeltalikeO  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 NrF   r   z0 days 22:00:00z9 days 22:00:00r   r   r   r   r   test_tdi_isub_timedeltalike^  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   rQ   Z2Drx   )r'   rN   rz   r   r   r   r   Z4DrF   rL   z-2Dr   r   )r   rN   r   r~   r   r   r   )r2   rH   rU   ru   r   r   r   test_tdi_ops_attributeso  s:     z9TestTimedelta64ArithmeticUnsorted.test_tdi_ops_attributesN)rW   rX   rY   r   r   r   r   r   r/   rZ   r[   r   r   r   r   r   r   r   r   r   r   rw     s   /T8
&rw   c                   @   s   e Zd Zdd Zdd ZdS )TestAddSubNaTMaskingc                 C   s   t ddg}td}|| | d| dg}td}|| | d| dg}|| D ]}|| }|d tksntqnd S )Nz24658 days 11:15:00r   z
1950-01-01zdatetime64[ns]zdatetime64[D]z
1980-01-01r   )r   to_timedeltar   r_   r^   rd   r   r   )r2   ZtdinatZtsnegZts_neg_variantsZtsposZts_pos_variantsvariantr7   r   r   r   "test_tdi_add_timestamp_nat_masking  s     z7TestAddSubNaTMasking.test_tdi_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10155196800000000000r(   iT rL   2000r   zOverflow in int64 additionrF   z5 days1 hoursz	7 secondsz4 hoursr   z5 hours)r/   r0   r   r   r   r   r   valueOverflowErrorr
   r   r   r~   )r2   Z_NaTr9   ru   rU   r   r   r   test_tdi_add_overflow  s<    
   
z*TestAddSubNaTMasking.test_tdi_add_overflowN)rW   rX   rY   r   r   r   r   r   r   r     s   r   c                	   @   s  e Zd Zdd Zdd Zdd Zdd Zd	d
 Zej	
deded ed 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d0d1 Zd2d3 Zd4d5 Zd6d7 Z d8d9 Z!d:d; Z"d<d= Z#d>d? Z$d@dA Z%dBdC Z&dDdE Z'dFdG Z(dHdI Z)ej	
dJejejegdKdL Z*dMdN Z+dS )O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\]r(   m8[ns]r   r   unsupported operand typez8cannot subtract a datelike from|unsupported operand type)r   r   r	   r/   r0   r1   r   r   applyr   r   r   assert_series_equalr+   nanZassert_frame_equal)r2   s1s2r9   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-1rR   rL   r   z2012-1-2g  S$Bint64timedelta64[ns]Ac                 S   s   g | ]}t |d qS )r<   r   .0ir   r   r   
<listcomp>R  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  r<   r   r   r   r   r   r   k  s     r   r%   r<   rQ   minutessecondsr   )r   rf   r	   r   rd   r   r   r   r   r   rb   shiftmaxr}   r   r   r   r+   rq   )r2   Zv1Zv2rsZxpZdfr   rU   ZmaxaZresultbvaluesr8   dZresultar   r   r   r   test_operators_timedelta64H  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   )r2   Ztimedelta_seriesZnat_series_dtype_timedeltaZsingle_nat_dtype_timedeltar   r   r   test_timedelta64_ops_nat  s              z8TestTimedeltaArraylikeAddSubOps.test_timedelta64_ops_natc              	   C   sF   t ddg}t||}d}tjt|d |td  W 5 Q R X d S )Nrn   ro   zJcannot subtract a datelike from|Could not operate|cannot perform operationr(   
2011-01-01)r   r   r-   r/   r0   r1   r   r2   r3   r   r9   r   r   r   !test_td64arr_sub_timestamp_raises  s    zATestTimedeltaArraylikeAddSubOps.test_td64arr_sub_timestamp_raisesc                 C   sp   |}t d|d}tddg}tddg|d}t||}t||}|| }t|| || }t|| d S )Nr   r   rn   ro   z
2011-01-02z
2011-01-03)r   r   r   r   r-   r.   )r2   r3   r   rK   r6   r   r8   rU   r   r   r   test_td64arr_add_timestamp  s    z:TestTimedeltaArraylikeAddSubOps.test_td64arr_add_timestampr   z
2012-01-01c              	   C   s   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 )
Nrn   rR   r&   z
2012-01-02z
2011-12-31z-1Dr   zcannot subtract a dateliker(   )	r   r   rf   r   r-   r.   r/   r0   r1   )r2   r   r3   r5   r8   rr   Z	expected2r9   r   r   r   (test_td64arr_add_sub_datetimelike_scalar  s    
zHTestTimedeltaArraylikeAddSubOps.test_td64arr_add_sub_datetimelike_scalarc              	   C   s   t jddd}||d }|j}t|| }t||}t||}d}tjt	|d ||  W 5 Q R X || }t
|| d S )Nr   rR   r&   r   zcannot subtract a datelike fromr(   )r   rf   r   r   r   r   r-   r/   r0   r1   r.   )r2   r3   r   r5   dtarrr8   r9   rU   r   r   r   test_tdi_sub_dt64_array  s    z7TestTimedeltaArraylikeAddSubOps.test_tdi_sub_dt64_arrayc                 C   sr   t jddd}||d }|j}t|| }t||}t||}|| }t|| || }t|| d S )Nr   rR   r&   r   )r   rf   r   r   r   r   r-   r.   )r2   r3   r   r5   r   r8   rU   r   r   r   test_tdi_add_dt64_array,  s    z7TestTimedeltaArraylikeAddSubOps.test_tdi_add_dt64_arrayc                 C   s`   t d}tddd}tdddg}t||}t||}t|| | t|| | d S )Nr   rn   rR   r&   )r+   Z
datetime64r   r   r   r-   r.   )r2   r3   r6   r5   r8   tdserr   r   r   test_td64arr_add_datetime64_nat:  s    
z?TestTimedeltaArraylikeAddSubOps.test_td64arr_add_datetime64_natpi_freqrL   WQr{   tdi_freqNc              	   C   s   t ddg|d}td| }||}t||}d}tjt|d ||  W 5 Q R X tjt|d ||d   W 5 Q R X d S )Nr   z2 hoursr   z2018-03-07 17:16:40z(cannot subtract|unsupported operand typer(   r   )r   r   Z	to_periodr   r-   r/   r0   r1   )r2   r3   r   r   r5   r   pir9   r   r   r   test_td64arr_sub_periodlikeJ  s    
z;TestTimedeltaArraylikeAddSubOps.test_td64arr_sub_periodliker6   rC   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   )r2   r3   r6   r   rr   r   r   r   *test_td64arr_addsub_numeric_scalar_invalid\  s    zJTestTimedeltaArraylikeAddSubOps.test_td64arr_addsub_numeric_scalar_invalidvecrR   c                 C   s
   t | jS r   typerW   rx   r   r   r   <lambda>v      z(TestTimedeltaArraylikeAddSubOps.<lambda>idsc                 C   s6   t dddgdd}t||}||}t|| d S r   )r	   r   r-   rd   r   )r2   r3   r   any_real_dtyper   rr   vectorr   r   r   'test_td64arr_addsub_numeric_arr_invalidn  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{   rG   rM    Addition/subtraction of integersr(   )r   r   r-   r   r/   r0   r1   )r2   r3   onerH   rr   r9   r   r   r   test_td64arr_add_sub_int  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{   rR   rM   r%   r   r   )r   r   r+   r,   r   r   r-   r   )r2   r3   r   r4   rH   rr   r6   r9   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   )r2   r3   r   r4   r5   rr   r6   r9   r   r   r   )test_td64arr_addsub_integer_array_no_freq  s    zITestTimedeltaArraylikeAddSubOps.test_td64arr_addsub_integer_array_no_freqc                 C   sr   |}t jddd}||d }|j}d| }t||}t||}|| }t|| || }t|| d S )Nr   rR   r&   r   r   r   rf   r   r   r   r-   r.   r2   r3   r   r   r5   rr   r8   rU   r   r   r   test_td64arr_add_td64_array  s    z;TestTimedeltaArraylikeAddSubOps.test_td64arr_add_td64_arrayc                 C   sr   |}t jddd}||d }|j}d| }t||}t||}|| }t|| || }t|| d S )Nr   rR   r&   r   r   r
  r  r   r   r   test_td64arr_sub_td64_array  s    z;TestTimedeltaArraylikeAddSubOps.test_td64arr_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   rn   r   r   rR   )hoursr%   r   )r=   r  r   )r"   r   r   r   r   r   r+   r	   r
   r-   r.   r   )	r2   r3   r    r   r!   r5   r?   r8   rU   r   r   r   test_td64arr_add_sub_tdi  s2    
 

 
z8TestTimedeltaArraylikeAddSubOps.test_td64arr_add_sub_tdic                 C   s   |}t ttdg}td}t dgd }t||}t||}|| }t|| || }t|| || }t|| || }t|| d S )Nr   r   r   )r   r   r
   r+   rq   r   r-   r.   )r2   r3   r   r5   r6   r8   r   rU   r   r   r   test_td64arr_add_sub_td64_nat  s    
z=TestTimedeltaArraylikeAddSubOps.test_td64arr_add_sub_td64_natc                 C   sT   |}t ttdg}t ttgdd}t||}t||}|t }t|| d S )Nr   r   r   )r	   r   r
   r   r-   r.   )r2   r3   r   r?   r8   r7   r   r   r   test_td64arr_sub_NaT   s    z4TestTimedeltaArraylikeAddSubOps.test_td64arr_sub_NaTc                 C   s`   |}t dd}t dddd}t||}t||}|| }t|| || }t|| d S r   r   r   r-   r.   r2   r   r3   r   rH   r8   rU   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              	      s   |}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|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  r6   r5   r   r   r   8  s     zQTestTimedeltaArraylikeAddSubOps.test_td64arr_add_offset_index.<locals>.<listcomp>r   ry   )r"   r   r   r*   r   r]   Minuter   r   r   r+   rb   lenr-   r   r   r.   )r2   r    r3   r   r!   r8   r7   res2r   r  r   test_td64arr_add_offset_index.  s$    
&  z=TestTimedeltaArraylikeAddSubOps.test_td64arr_add_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	|t	||}t
t   }W 5 Q R X 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   N  s     zQTestTimedeltaArraylikeAddSubOps.test_td64arr_add_offset_array.<locals>.<listcomp>r   r   r   r+   r   r   r]   r  rb   r   r   r-   r   r   r.   )r2   r3   r   r8   r7   r!  r   r  r   test_td64arr_add_offset_arrayG  s     z=TestTimedeltaArraylikeAddSubOps.test_td64arr_add_offset_arrayc              	      s   |}|t jtjfkr|ntj}t||}tddg|d dtjtjddtj	ddg|d d t fdd	t
tD d
|d}t |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   f  s     zQTestTimedeltaArraylikeAddSubOps.test_td64arr_sub_offset_index.<locals>.<listcomp>r   ry   )r   r   r   r   r*   r"   r   r   r]   r  rb   r   r-   r   r   r.   )r2   r    r3   r   r4   r!   r8   r7   r   r  r   test_td64arr_sub_offset_index\  s    
&  z=TestTimedeltaArraylikeAddSubOps.test_td64arr_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	|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   v  s     zQTestTimedeltaArraylikeAddSubOps.test_td64arr_sub_offset_array.<locals>.<listcomp>r   r   r#  )r2   r3   r8   r7   r   r  r   test_td64arr_sub_offset_arrayp  s     z=TestTimedeltaArraylikeAddSubOps.test_td64arr_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     s     zSTestTimedeltaArraylikeAddSubOps.test_td64arr_with_offset_series.<locals>.<listcomp>c                    s   g | ]}|  |  qS r   r   r  r  r   r   r     s     )r   r*   r   r   r   r	   r"   r   r   r]   r  rb   r   r-   r   r   r.   )r2   r    r3   r   Zbox2r!   Zexpected_addr   r7   r!  Zexpected_subZres3r   r  r   test_td64arr_with_offset_series  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 MonthEndr(   )r   r   r-   r   ZMonthEndr   r/   r0   r1   r   r   )r2   r(  r3   r5   Zanchoredr9   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 )Nrn   rR   rL   r   r   r<   r   z
2000-01-04r%   z
2000-01-07z3unsupported operand type|cannot subtract a dateliker(   r   z
2000-01-01)r   r   r+   r,   r   r   r-   r
   r   r   r   r   r   r*   r.   r/   r0   r1   )
r2   r3   r   r4   r5   rr   r6   rU   r8   r9   r   r   r   !test_td64arr_add_sub_object_array  s*     zATestTimedeltaArraylikeAddSubOps.test_td64arr_add_sub_object_array),rW   rX   rY   r   r   r   r   r   r/   rZ   r[   r   r_   r^   r   r   r   r   r   r+   r   r   r   r*   r	   r   r   r  r  r	  r  r  r  r  r  r  r  r"  r$  r%  r&  r'  r)  r*  r   r   r   r   r     sp   jBU





	#
r   c                   @   sn  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"e	j
jd;e#dd<d=e$d>e$d>% gd?d dd@dA Z&dBdC Z'dDdE Z(dFdG Z)dHdI Z*dJdK Z+dLdM Z,dNdO Z-e	j
dPdQdRe.dQe.dRgdSdT Z/e	j
jdUe.dVdWdXge0dVdWdXge1dVdWdXggdYd ddZd[ Z2e	j
jdUe.dVdWdXge0dVdWdXge1dVdWdXggd\d dd]d^ Z3d_d` Z4dadb Z5dcS )dTestTimedeltaArraylikeMulDivOpsc                 C   sJ   t tjddd}t||}|d }t|| d| }t|| d S )NrQ   r   r   r   )r   r+   rc   r   r-   r.   r2   r3   r   rU   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 )NrF   r   r   r   z@argument must be an integer|cannot use operands with types dtyper(   )r   r   r-   r/   r0   r1   )r2   r   r3   rH   r9   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 )NrQ   r   r   )r+   rc   r   r   r-   r   r.   r2   r3   Zrng5r   r8   rU   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 NrQ   r   r   r   )r+   rc   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+   rc   r-   r.   )r2   r3   r   r4   r   r8   rU   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 )NrQ   r   r   float64r   r3  )r2   r3   r   r4   r   Zrng5fr8   rU   r   r   r   test_tdi_mul_float_series  s    z9TestTimedeltaArraylikeMulDivOps.test_tdi_mul_float_seriesr6   r      c                 C   s
   t | jS r   r   r   r   r   r   r   *  r   z(TestTimedeltaArraylikeMulDivOps.<lambda>r   c           	      C   sr   |}t ||}tdgd }tdd}d |j_t||}t||}|| }t|| || }t|| d S )Nr  rG   rF   r   )r   r   r   rO   rN   r   r-   r.   )	r2   r6   r3   r   r4   r5   r8   rU   Zcommuter   r   r   test_tdi_rmul_arraylike!  s    

z7TestTimedeltaArraylikeMulDivOps.test_tdi_rmul_arraylikec              	   C   sb   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 d S )NrF   r   r   r   r   r(   zCannot divide NaTType by)r   r   r-   r/   r0   r1   r   )r2   r3   rH   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 )NrF   r   r   rG   )
r   r   r+   r,   r   r   r-   rq   r   r.   )r2   r3   r   r4   rH   r6   r8   rU   r   r   r   test_td64arr_div_td64natI  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 )NrQ   r   r   r   Cannot divider(   	r   r+   rc   r   r-   r.   r/   r0   r1   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 jtdd d dd}t||}t||}|| }t	|| || }d| }t	|| d S NrF   r   r   r   rG   r      )
r   r   r+   r,   r   Float64Indexrc   r   r-   r.   r2   r   r3   r   r4   rH   r8   rU   r   r   r   test_td64arr_div_tdlike_scalarg  s    z>TestTimedeltaArraylikeMulDivOps.test_td64arr_div_tdlike_scalarmrR   rG   unitrL   hrp   msusnsc                    s   |}|t jkrtjn|}tt dd}tt dd}|| }tj|d< |}	t||}t fdd|	D }
t|
|}
|t	  }t
||
 t fdd|	D }
t|
|}
t	 | }t
||
 d S )	Nz
2013-01-01z
2013-01-03z
2013-03-01z
2013-03-03r   c                    s   g | ]}|t   qS r   )r+   rq   r   rx   rC  rD  r   r   r     s     zPTestTimedeltaArraylikeMulDivOps.test_td64arr_div_td64_scalar.<locals>.<listcomp>c                    s    g | ]}t t | qS r   )r
   r+   rq   rI  rJ  r   r   r     s     )r   r   r+   r,   r	   rf   r   r   r-   rq   r.   )r2   rC  rD  r3   r   r4   Z	startdateZenddater?   Zflatr8   rU   r   rJ  r   test_td64arr_div_td64_scalary  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 jdtjdgdd}t	||}t	||}|| }t
|| || }d| }t
|| d S )NrF   r   r   r   r?  r>   r   )r   r   r+   r,   r   r   r@  r   r   r-   r.   rA  r   r   r   'test_td64arr_div_tdlike_scalar_with_nat  s    zGTestTimedeltaArraylikeMulDivOps.test_td64arr_div_tdlike_scalar_with_natc                 C   s4  |}|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 )
NrF   r   r?  r>   r   r%   zm8[h]r   r   )r   r   r+   r,   r   r   r@  r   r   r-   r.   rd   re   ra   )r2   r3   r   r4   rH   r8   r6   rU   r   r   r   test_td64arr_div_td64_ndarray  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 )	NrF   r   r   r   rR   r%   z0Cannot divide vectors|Unable to coerce to Seriesr(   )r   r   r   r-   r+   r   r   r*   r/   r0   r   )r2   r3   rH   Z
mismatchedr9   r   r6   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   rd   r.   Zasarray)	r2   r3   using_array_managerr   r4   ri   rj   r8   rU   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tdddgd }tj|jd< tddtjg}tj	||dd}tj	||dd}|| }t
|| d S )NrQ   rR   r   r   r   FZ	transposer   r   r+   r,   r	   r   r   ilocr   r-   r.   r2   r3   	scalar_tdr   r4   td1r8   rU   r   r   r   test_td64arr_floordiv_tdscalar  s    z>TestTimedeltaArraylikeMulDivOps.test_td64arr_floordiv_tdscalarc                 C   s   |}|t jkrtjn|}ttdddgd }tj|jd< tddtjg}tj	||dd}tj	||dd}|| }t
|| d S NrQ   rR   r   r   r   FrR  rS  rU  r   r   r   test_td64arr_rfloordiv_tdscalar  s    z?TestTimedeltaArraylikeMulDivOps.test_td64arr_rfloordiv_tdscalarc                 C   s   |}|t jkrtjn|}ttdddgd }tj|jd< tddtjg}tj	||dd}tj	||dd}|
|}t|| d S rY  )r   r   r+   r,   r	   r   r   rT  r   r-   __rfloordiv__r.   rU  r   r   r   (test_td64arr_rfloordiv_tdscalar_explicit  s    
zHTestTimedeltaArraylikeMulDivOps.test_td64arr_rfloordiv_tdscalar_explicitc              	   C   s\   t tjddd}t||}|d }t|| d}tjt|d d|  W 5 Q R X d S )NrQ   r   r   r   z@floor_divide cannot use operands|Cannot divide int by Timedelta*r(   r<  )r2   r3   r   rU   patternr   r   r   test_td64arr_floordiv_int*  s    z9TestTimedeltaArraylikeMulDivOps.test_td64arr_floordiv_intc                 C   sr   |}|t jkrtjn|}tdddd}t jtdd d dd}t||}t||}|| }t	|| d S r>  )
r   r   r+   r,   r   r   rc   r   r-   r.   )r2   r   r3   r   r4   r5   r8   rU   r   r   r   #test_td64arr_floordiv_tdlike_scalar4  s    zCTestTimedeltaArraylikeMulDivOps.test_td64arr_floordiv_tdlike_scalarrV  rt   r   Z10m7sc                 C   s
   t | jS r   r   r   r   r   r   r   I  r   c                 C   s   |}|t jkrtjn|}tddtgd d}t ddtjg}tj	||dd}tj	||dd}|
|}t|| t ddtjg}tj	||dd}|| }t|| d S )Nz00:05:03r   r   FrR  g        )r   r   r+   r,   r   r   r*   r   r   r-   r[  r.   )r2   rV  r3   r   r4   r5   r8   r7   r   r   r   $test_td64arr_rfloordiv_tdlike_scalarB  s    
zDTestTimedeltaArraylikeMulDivOps.test_td64arr_rfloordiv_tdlike_scalarc              	   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 DaysrR   r   r   )r   r   r-   r   r.   r   r}   r   Z
DateOffsetr   r   divmod)r2   r3   
three_daysr5   rr   r8   rU   warnr   r   r   test_td64arr_mod_tdscalard  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 nsrG   r&   z0 nsrQ   r   zCannot divide int byr(   r   r   )	r   r   r-   r   r.   r/   r0   r1   rc  )r2   r3   r5   rr   r8   rU   r9   r   r   r   test_td64arr_mod_intx  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  ra  rb  z3 Days   r   r   )r   r   r-   r   r.   rc  )r2   r3   rd  r5   rr   r8   rU   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 NrQ   rR   r   r   z(operate|unsupported|cannot|not supportedr(   
r	   r   r+   r   rT  r   r-   r/   r0   r1   )r2   r3   rV  rW  r]  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}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 )	NrQ   r   r   zdcannot use operands with types dtype|Cannot multiply with unequal lengths|Unable to coerce to Seriesr(   rR   r   r   )
r   r+   rc   r   r-   r/   r0   r1   r   r   r   r   r   r   !test_td64arr_mul_too_short_raises  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 )NrQ   r   r   z$cannot use operands with types dtyper(   )r   r+   rc   r   r-   r/   r0   r1   r   r   r   r   test_td64arr_mul_td64arr_raises  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.   )r2   r3   r  r   r8   rU   r   r   r   test_td64arr_mul_numeric_scalar  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;  r(   )r	   r   r-   r.   r/   r0   r1   )r2   r3   rp  r   r8   rU   r   r   r   test_td64arr_div_numeric_scalar  s    z?TestTimedeltaArraylikeMulDivOps.test_td64arr_div_numeric_scalarr      rO  (   c                 C   s
   t | jS r   r   r   r   r   r   r     r   c                 C   s|   t ||}tdddgdd}||}tdddgdd}t||}t||}|| }t|| || }t|| d S )Nr   r   r   r   z	1180 Daysz	1770 Daysr   )r   r	   rd   r   r-   r.   )r2   r3   r   r   r4   r   r8   rU   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           	   	      sn  t |}tdddgdd |tdddgdd}t | t||}  }t|| d}tjt|d	    W 5 Q R X t	t
jsB t }|tkṙ fd
dttD }n fddtt D }t
|}t||}t|dkst|r6|tkr6tttgtd|d< t|| tjt|d	 t   W 5 Q R X d S )Nr   r   r   r   z2.95Dz
1D 23H 12mr   zutrue_divide'? cannot use operands|cannot perform __div__|cannot perform __truediv__|unsupported operand|Cannot divider(   c                    s"   g | ]} j d |f |  qS )r   )rT  r  r   r   r   r   r   &  s     zRTestTimedeltaArraylikeMulDivOps.test_td64arr_div_numeric_array.<locals>.<listcomp>c                    s   g | ]} | |  qS r   r   r  ru  r   r   r   (  s     r   )r   r	   rd   r   r-   r.   r/   r0   r1   r}   r   r*   re   r   rb   r   r   r   r   )	r2   r3   r   r   rP  r4   r8   rU   r]  r   ru  r   test_td64arr_div_numeric_array  s2    



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
kr|
tkstnt|
| d S )N0days1day2days3days4daysr   r   r   r   rR   r%   r   rz   Z9daysZ16daysr   )r"   r   r	   r+   r   r   r-   r   r.   __rmul__r   NotImplementedr   )r2   r3   r    requestr   r!   r5   r?   r8   r4   rU   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 )Nrw  rx  ry  rz  r{  r   r   r   rR   g      @rh  g      @r   r|  r   c                    s   g | ]}|  |  qS r   r   r  r?   r5   r   r   r   g  s     zRTestTimedeltaArraylikeMulDivOps.test_float_series_rdiv_td64arr.<locals>.<listcomp>r   )r   r	   r+   r5  r   r   r   r   rb   r   r   r-   __rtruediv__r   r~  r   r.   )r2   r3   r    r   Zxnamer8   r4   rU   r   r  r   test_float_series_rdiv_td64arr[  s&      

z>TestTimedeltaArraylikeMulDivOps.test_float_series_rdiv_td64arrN)6rW   rX   rY   r-  r.  r0  r2  r4  r6  r/   rZ   r[   r+   rc   r   r   rb   ZUInt64Indexr@  Z
RangeIndexr8  r9  r:  r=  rB  rK  rL  rM  rN  rQ  rX  rZ  r\  r^  r_  r   r
   r\   r`  rf  rg  ri  rl  rm  rn  ro  r   rq  r*   r	   rt  rv  r  r  r   r   r   r   r+    s   




&


	

 
*
*
4!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 rj  rk  )r2   rV  r3   rW  r]  r   r   r   test_td64arr_pow_invalid~  s    z;TestTimedelta64ArrayLikeArithmetic.test_td64arr_pow_invalidN)rW   rX   rY   r  r   r   r   r   r  y  s   r  c                     sD   t    tdddd } t fddtdD }t| | d S )NZ0sr      r&   c                    s6   g | ].} t d | t dt|dd    qS )z0.033333333sz0.000000001srR   r   )r   r   rc  r   	timestampr   r   r     s   z3test_add_timestamp_to_timedelta.<locals>.<listcomp>)r   rS   r   r   rb   r   r~   r   r   r  r   test_add_timestamp_to_timedelta  s    

r  )$r   r   Znumpyr+   r/   Zpandas.errorsr   r   Zpandasr   r   r   r   r	   r
   r   r   r   r   Zpandas._testingZ_testingr   Zpandas.tests.arithmetic.commonr   r   r   r   r"   r#   rg   rw   r   r   r+  r  r  r   r   r   r   <module>   s>   ,	pg   D           (