U
    >vfB2                    @   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mZ d dl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IndexNaTSeries	TimedeltaTimedeltaIndex	Timestampoffsetstimedelta_range)PandasArray)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)tmZ	get_dtypeAssertionError)objZexpected_dtypedtype r   L/tmp/pip-unpacked-wheel-vdrwu74i/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                   @   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 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   r   r   npndarrayr   to_numpyr   box_expectedassert_equal)selfbox_with_arrayr    xboxtdiotherresexpectedr   r   r    test_compare_timedelta64_zerodimD   s    zDTestTimedelta64ArrayLikeComparisons.test_compare_timedelta64_zerodim	td_scalarr   days   c                 C   sp   |}|t 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   r7   r   FT)
r   r   r   r)   r*   r
   r   r   r,   r-   )r.   r/   r6   r    r0   seractualr4   r   r   r   !test_compare_timedeltalike_scalarR   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   )r.   r/   r=   r    rngr   r   r   r   test_td64_comparisons_invalidg   s    zATestTimedelta64ArrayLikeComparisons.test_td64_comparisons_invalidr2   rC   z
1970-01-01r(   tzr'   z
1971-01-01Dfreqr(   c                 C   s*   t dddj}t||}t||| d S rA   )r   _datar   r,   r   )r.   r2   r/   rD   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 )NrB      r'   r   r   r      r?   FTzDInvalid comparison between|Cannot compare type|not supported betweenmatch)
r   rK   r)   r   r   r   assert_numpy_array_equalpytestraises	TypeError)r.   rD   r2   resultr4   msgr   r   r   test_td64arr_cmp_mixed_invalid   s     zBTestTimedelta64ArrayLikeComparisons.test_td64arr_cmp_mixed_invalidN) __name__
__module____qualname__r5   rR   markparametrizer   r   Zto_timedelta64r   Hourr<   r   nowto_datetime64to_pydatetimedater)   r   rE   listrangearangeastypeZfloat32objectr   
date_rangeZperiod_rangerL   rW   r   r   r   r   r$   ?   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 )NrB   3 daysFT)	r   r   r	   rf   re   r)   r   r   rQ   )r.   r   leftrightlhsrhsrU   r4   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   rH   Znatr   srM   rN   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   rQ   )r.   ro   Zidx1rU   r4   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 )NrB   rC   r'   rN   TF   )r   r)   r   r   rQ   rb   )r.   rD   rU   r4   expr   r   r   test_comparisons_coverage  s    z9TestTimedelta64ArrayComparisons.test_comparisons_coverage)rX   rY   rZ   rR   r[   r\   rf   rn   r   r	   r)   r   timedelta64rr   ru   r   r   r   r   rh      s(   



%rh   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rJ   namer   Z12HZ16HZ20HZ1HZ3HZ5HHz-2Hz-4Hz-6Hz-8Hz-10Hz-1HZ0H)r   r)   multiply
isinstancer   r   assert_index_equalrJ   dividenegativeabsabsolute)r.   idxrU   rt   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 )NrB   2 daysfoorz   20130101rN   barr(   rz   z0cannot subtract a datelike from a TimedeltaArrayrO   z#unsupported operand type\(s\) for -z((bad|unsupported) operand type for unary0 days-1 days-2 daysF)Zcheck_names2012123120130102rH   ry   Z20121230)r   r	   r   rg   r   r   rR   rS   rT   r   r~   r   )r.   r1   dtitddtrV   rU   r4   r   r   r   test_subtraction_ops4  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   rN   r'   z
US/EasternZCETrB   c                 S   s   | |kst t| tst d S N)r   r}   r   rU   r4   r   r   r   _checkp  s    zNTestTimedelta64ArithmeticUnsorted.test_subtraction_ops_with_tz.<locals>._checkr   z<Cannot subtract tz-naive and tz-aware datetime-like objects.rO   z6can't subtract offset-naive and offset-aware datetimesz%Cannot subtract tz-naive and tz-awarer   r   r   r   r   rG   )r   rg   r   r,   r   r`   Ztz_localizer   rR   rS   rT   r   r-   r   )r.   r/   r   tsr   Zdti_tzZts_tzZts_tz2Zdt_tzr   r   rU   r4   rV   r   r   r   test_subtraction_ops_with_tzc  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 )NrB   r   r   r   r   rN   r   r   r   4 daysr   )r   r	   r   rg   r   r~   r   )r.   r1   r   rU   r4   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tjd  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 )NrB   r   r   r   r   rN   r   r   r   Z20130103ri   z$cannot add indices of unequal lengthrO   r   r   3Addition/subtraction of integers and integer-arraysr   r   Z20130105)r   r	   r   rg   r   r   r   r   r~   rR   rS   
ValueErrorrT   r   r)   int64r   )r.   r1   r   r   r   rU   r4   rV   r   r   r   test_addition_ops  sH    "z3TestTimedelta64ArithmeticUnsorted.test_addition_opsrJ   rH   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(   rJ   r   inferrH   )r   rg   r   
_with_freqr   r~   Ztseriesr   DayrJ   r   ZBusinessDay)r.   rJ   indexZshiftedbackr4   rU   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   rg   r
   r   r]   r   r)   rv   rJ   r   r   r   r~   )r.   rD   rp   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 )NrB   r   z
1999-12-31rN   rH   r   )r   r	   r   r   rg   r   r~   )r.   r1   Ztdar   rU   r4   r   r   r   test_tda_add_sub_index(  s    z8TestTimedelta64ArithmeticUnsorted.test_tda_add_sub_indexc           	   	   C   sx   |}t jdd|d}|d }|| }t||}t||}tt ||t }W 5 Q R X t	||t d S )N
2016-01-01rN   rF   )
r   rg   r   r   r,   assert_produces_warningr   re   rf   r-   )	r.   r/   tz_naive_fixturer    r   r1   r   r2   rU   r   r   r   test_tda_add_dt64_object_array;  s    
z@TestTimedelta64ArithmeticUnsorted.test_tda_add_dt64_object_arrayc                 C   s`   t dd}t dddd}t||}t||}|}||7 }t|| |tk	r\t|| d S NrB   10 daysz1 days 02:00:00z10 days 02:00:00rH   rJ   r   r   r,   r-   r   r.   	two_hoursr/   rD   r4   Zorig_rngr   r   r   test_tdi_iadd_timedeltalikeM  s    
z=TestTimedelta64ArithmeticUnsorted.test_tdi_iadd_timedeltalikec                 C   s\   t dd}t dd}t||}t||}|}||8 }t|| |tk	rXt|| d S NrB   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   rM   Z2Drx   )r(   rJ   rz   r   r   r   r   Z4DrB   rH   z-2Dr   r   )r   rJ   r   r~   r   r   r   )r.   rD   rU   rt   r   r   r   test_tdi_ops_attributesm  s:     z9TestTimedelta64ArithmeticUnsorted.test_tdi_ops_attributesN)rX   rY   rZ   r   r   r   r   r   rR   r[   r\   r   r   r   r   r   r   r   r   r   r   r   rw     s   /T8
rw   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   r`   r_   re   r   ilocr	   r   )	r.   r/   r   ZtdinatZtdobjr   Zts_variantsvariantr3   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10155196800000000000rO   iT rH   2000r   zOverflow in int64 additionrB   z5 days1 hoursz	7 secondsz4 hoursr   z5 hours)rR   rS   r   r   r   r   r	   _valueOverflowErrorr   r   r   r~   )r.   Z_NaTrV   rt   rU   r   r   r   test_tdi_add_overflow  s<    
   
z*TestAddSubNaTMasking.test_tdi_add_overflowN)rX   rY   rZ   rR   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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/d0 Zd1d2 Zej	d3ed4egd5d6 Z d7d8 Z!d9d: Z"d;d< Z#d=d> Z$d?d@ Z%ej	dAejeegdBdC Z&dDdE Z'dS )FTestTimedeltaArraylikeAddSubOpsc                 C   s<   t tdgd}|t }ttgdd}t|| d S )N00:00:01zm8[s]r   )r   r   r
   re   r	   r   assert_series_equal)r.   r:   rU   r4   r   r   r   test_sub_nat_retain_unit  s    z8TestTimedeltaArraylikeAddSubOps.test_sub_nat_retain_unitc              	   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 )
Nr   z00:00:02z?dtype datetime64\[ns\] cannot be converted to timedelta64\[ns\]rO   m8[ns]r   r	   unsupported operand typez8cannot subtract a datelike from|unsupported operand type)r   r   r
   rR   rS   rT   r	   r   applyr   r   r   r   r)   nanZassert_frame_equal)r.   s1s2rV   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-1rN   rH   r   z2012-1-2g  S$Br   timedelta64[ns]Ac                 S   s   g | ]}t |d qS )r7   r   .0ir   r   r   
<listcomp>T  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  r7   r   r   r   r   r   r   m  s     r   r&   r7   rM   minutessecondsr   )r   rg   r
   r   re   r   r   r   r   r   rc   shiftmaxr}   r   r   r   r)   rv   )r.   Zv1Zv2rsZxpZdfr   rU   ZmaxaZresultbvaluesr4   dZresultavaluer   r   r   test_operators_timedelta64J  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   )r.   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   rq   rN   r'   z
2012-01-02rF   z
2011-12-31z-1D)r(   rJ   rG   zcannot subtract a datelikerO   )r   r   r`   r)   
datetime64r_   r   r   rg   r   r,   r-   rR   rS   rT   )r.   r   r/   r   rG   Z	dt_scalarr   r1   r4   tdarrZ	expected2rV   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	   rq   rN   r'   )r)   r   r   r   r   r,   r-   )r.   r/   r2   r1   r4   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   rN   r'   -1 Dayzcannot subtract a datelike fromrO   )r   rg   r   r   r   r   r,   rR   rS   rT   r-   )r.   r/   r   r1   dtarrr4   rV   rU   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   rN   r'   r   )r   rg   r   r   r   r   r,   r-   )r.   r/   r   r1   r   r4   rU   r   r   r   test_td64arr_add_dt64_array#  s    z;TestTimedeltaArraylikeAddSubOps.test_td64arr_add_dt64_arraypi_freqrH   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 typerO   )r   r   Z	to_periodr   r,   rR   rS   rT   )
r.   r/   Zbox_with_array2r   r   r1   r   piZperrV   r   r   r   test_td64arr_sub_periodlike4  s    
z;TestTimedeltaArraylikeAddSubOps.test_td64arr_sub_periodliker2   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   )r.   r/   r2   r   r   r   r   r   *test_td64arr_addsub_numeric_scalar_invalidI  s    zJTestTimedeltaArraylikeAddSubOps.test_td64arr_addsub_numeric_scalar_invalidvecrN   c                 C   s
   t | jS r   typerX   rx   r   r   r   <lambda>c      z(TestTimedeltaArraylikeAddSubOps.<lambda>idsc                 C   s6   t dddgdd}t||}||}t|| d S r   )r
   r   r,   re   r   )r.   r/   r   any_real_numpy_dtyper   r   vectorr   r   r   'test_td64arr_addsub_numeric_arr_invalid[  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{   rC   rI    Addition/subtraction of integersrO   )r   r   r,   r   rR   rS   rT   )r.   r/   onerD   r   rV   r   r   r   test_td64arr_add_sub_intn  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{   rN   rI   r&   r   r   )r   r   r)   r*   r   r   r,   r   )r.   r/   r    r0   rD   r   r2   rV   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   )r.   r/   r    r0   r1   r   r2   rV   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   rN   r'   r   r   r   )r   rg   r   r   r   r,   r-   )	r.   r/   r    r   r1   r   r4   rU   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   rq   r   r   rN   )hoursr&   r   )r8   r  r   )r#   r   r   r   r   r   r)   r
   r   r,   r-   r   )	r.   r/   r!   r    r"   r1   r:   r4   rU   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-   )r.   r/   r  r    r1   r4   r   rU   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-   r.   r   r/   r    rD   r4   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           
   	      sj  |}t ||}tddg|d dttjddtjddg|d d |tjtj	fkr`t
	 n  t fdd	ttD d
|d}t fdd	ttD d
|d}t|t||jtdd}t||jtdd}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  r2   r1   r   r   r     s     zUTestTimedeltaArraylikeAddSubOps.test_td64arr_add_sub_offset_index.<locals>.<listcomp>r   ry   c                    s   g | ]}|  |  qS r   r   r   r!  r   r   r     s     F)copy)r#   r   r   r   r]   Minuter   r   r   r   r)   rc   lenr,   re   rf   r   r   r-   )
r.   r!   r/   r    r"   r4   r  r3   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t   }W 5 Q R X t|| tt   }W 5 Q R X t|| 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   0  s     )r   r)   r   r   r]   r#  rc   r$  r   r,   re   rf   r   r   r-   )r.   r/   r    r4   r  r3   r%  r&  r   r!  r   !test_td64arr_add_sub_offset_array&  s.      zATestTimedeltaArraylikeAddSubOps.test_td64arr_add_sub_offset_arrayc              	      s^  |}|t 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 |td
}t|}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 |t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   M  s     zSTestTimedeltaArraylikeAddSubOps.test_td64arr_with_offset_series.<locals>.<listcomp>)rz   r   c                    s   g | ]}|  |  qS r   r   r   r!  r   r   r   [  s     )r   r   r   r   r   r
   r#   r   r   r]   r#  rc   r$  rf   r,   re   r   r   r-   )r.   r!   r/   r    Zbox2r"   Zexpected_addr   r3   r%  r  Zres3r   r!  r   test_td64arr_with_offset_seriesC  s6    
$    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 MonthEndrO   )r   r   r,   r   ZMonthEndr   rR   rS   rT   r   r   )r.   r*  r/   r1   ZanchoredrV   r   r   r   -test_td64arr_addsub_anchored_offset_arraylikec  s     zMTestTimedeltaArraylikeAddSubOps.test_td64arr_addsub_anchored_offset_arraylikec           
   
   C   sB  |}|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}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}t|| d S )Nrq   rN   rH   r   r   r7   r   z
2000-01-04r&   z
2000-01-07z3unsupported operand type|cannot subtract a datelikerO   r   z
2000-01-01)r   r   r)   r*   r   r   r,   r   r   r   r   r   r   r   re   rf   r-   rR   rS   rT   )
r.   r/   r    r0   r1   r   r2   rU   r4   rV   r   r   r   !test_td64arr_add_sub_object_array~  s*     zATestTimedeltaArraylikeAddSubOps.test_td64arr_add_sub_object_array)(rX   rY   rZ   r   r   r   r   rR   r[   r\   r   r   r)   r   r   r   r   r   r   r   r   r   r
   r   r  r	  r
  r  r  r  rv   r	   r  r  r  r'  r(  r)  r+  r,  r   r   r   r   r     s\   	jBU
#


	#
  
r   c                   @   sh  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jeeddejeeddej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e	j
 d3d4d5 Z!d6d7 Z"d8d9 Z#d:d; Z$d<d= Z%d>d? Z&d@dA Z'dBdC Z(dDdE Z)e	j
dFdGdHe*dGe*dHgdIdJ Z+e	j
dFdGdHe*dGe*dHgdKdL Z,e	j
jdMe*dNdOdPgedNdOdPge-dNdOdPggdQd ddRdS Z.e	j
jdMe*dNdOdPgedNdOdPge-dNdOdPggdTd ddUdV Z/dWdX Z0dYdZ Z1d[d\ Z2d]S )^TestTimedeltaArraylikeMulDivOpsc                 C   sJ   t tjddd}t||}|d }t|| d| }t|| d S )NrM   r   r   r   )r   r)   rd   r   r,   r-   r.   r/   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 )NrB   r   r   r   z@argument must be an integer|cannot use operands with types dtyperO   )r   r   r,   rR   rS   rT   )r.   r   r/   rD   rV   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 )NrM   r   r   )r)   rd   r   r   r,   r   r-   r.   r/   Zrng5r   r4   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 NrM   r   r   r   )r)   rd   r   r   r,   r-   r1  r   r   r   test_tdi_mul_int_array  s    z6TestTimedeltaArraylikeMulDivOps.test_tdi_mul_int_arrayc                 C   s   |}|t 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 r3  r   r   r   r   r   r
   r   r)   rd   r,   r-   )r.   r/   r    r0   r   r4   rU   r   r   r   test_tdi_mul_int_series  s    z7TestTimedeltaArraylikeMulDivOps.test_tdi_mul_int_seriesc                 C   s   |}|t 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 )NrM   r   r   float64r   r5  )r.   r/   r    r0   r   Zrng5fr4   rU   r   r   r   test_tdi_mul_float_series  s    z9TestTimedeltaArraylikeMulDivOps.test_tdi_mul_float_seriesr2   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  rC   rB   r   )r   r   r   r   r,   r   r-   )	r.   r2   r/   r    r1   r4   r0   rU   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 )NrB   r   r   r   r   rO   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,   rR   rS   rT   r	   r)   r   join)r.   r/   rD   Zdt64natrV   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 )NrB   r   r	   rC   )
r   r   r)   r*   r   r   r,   rv   r   r-   )r.   r/   r    r0   rD   r2   r4   rU   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 )NrM   r   r   r   Cannot dividerO   	r   r)   rd   r   r,   r-   rR   rS   rT   r.  r   r   r   test_td64arr_div_int1  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 tjdd}t	||}t	||}|| }t
|| || }d| }t
|| d S )	NrB   r   r   r   rC   r      r   rz   )r   r   r)   r*   r   r   rd   r7  r   r,   r-   r.   r   r/   r    r0   rD   r4   rU   r   r   r   test_td64arr_div_tdlike_scalar<  s    z>TestTimedeltaArraylikeMulDivOps.test_td64arr_div_tdlike_scalarmrN   rC   unitrH   hrp   msusr;  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;   r7   rN   r   c                    s   g | ]}|t   qS r   )r)   rv   r   rx   rG  rH  r   r   r   Z  s     zPTestTimedeltaArraylikeMulDivOps.test_td64arr_div_td64_scalar.<locals>.<listcomp>c                    s    g | ]}t t | qS r   )r   r)   rv   rM  rN  r   r   r   `  s     )r   r   r)   r*   r
   r   r   r   r,   rv   r-   )
r.   rG  rH  r/   r    r0   r:   Zflatr4   rU   r   rN  r   test_td64arr_div_td64_scalarN  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tjdd}t	
||}t	
||}|| }t	|| || }d| }t	|| d S )	NrB   r   r   r   rC  r9   rD  r   )r   r   r)   r*   r   r	   r   r   r7  r   r,   r-   rE  r   r   r   'test_td64arr_div_tdlike_scalar_with_nate  s    zGTestTimedeltaArraylikeMulDivOps.test_td64arr_div_tdlike_scalar_with_natc                 C   s>  |}|t jkrtjn|}tdtdg}tdtjdgtjd}t	
||}t	
||}tjdddgdd}|| }t	|| |t	
|| }t	|| ||t }t	||t |t| }t	|| d	| }|| }t	|| t	
||| }t	|| |t| }t	|| t|| }t	|| d S )
NrB   r   rC  r9   r   r   r&   zm8[h]r   )r   r   r)   r*   r   r	   r   r   r7  r   r,   r-   re   rf   rb   )r.   r/   r    r0   rD   r4   r2   rU   r   r   r   test_td64arr_div_td64_ndarrayv  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 ]b}|t|t|fD ]H}tjt	|d ||  W 5 Q R X tjt	|d ||  W 5 Q R X qRq:d S )	NrB   r   r   r   rN   r&   z0Cannot divide vectors|Unable to coerce to SeriesrO   )
r   r	   r   r,   r)   r   r   rR   rS   r   )r.   r/   rD   Z
mismatchedrV   r   r2   r   r   r   test_tdarr_div_length_mismatch  s    z>TestTimedeltaArraylikeMulDivOps.test_tdarr_div_length_mismatchc                 C   sD  t ddddt}tj||dd}tj|d dd	|d
 gtd}tj||dd}|| }tdt	dd|d dgtd}tj||dd}t
|tr| }t|| |tkrt
|jd tj	st|| }tdt	dd|d dgtd}tj||dd}t
|tr| }t|| |tkr@t
|jd tj	s@td S )Nr  rN   r'   r   FZ	transposer   r   r   r   r   r   r	   r;  )r   r   )r   insertr	   r   r,   r)   r   rf   r   rv   r}   r   r+   r-   r   r   r   )r.   r/   origr1   r2   r3   r4   r   r   r   !test_td64_div_object_mixed_result  s(     
 
zATestTimedeltaArraylikeMulDivOps.test_td64_div_object_mixed_resultc           	   	   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jt|t jkd
d || }W 5 Q R X t|| tjt|t jkd
d t|| }W 5 Q R X t|| d S )Ni  izd    r   r   r   r   r   r   F)Zcheck_stacklevel)r   r   r)   r*   r
   r   r,   r   r7  r   re   Zmaybe_produces_warningRuntimeWarningr-   Zasarray)	r.   r/   Zusing_array_managerr    r0   rj   rk   r4   rU   r   r   r   &test_td64arr_floordiv_td64arr_with_nat  s0        zFTestTimedeltaArraylikeMulDivOps.test_td64arr_floordiv_td64arr_with_natz/ignore:invalid value encountered:RuntimeWarningc           	      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   FrS  r   r   )r   r   r)   r*   r   r
   r	   r   r,   r   r-   __rfloordiv__)	r.   r/   	scalar_tdr    r0   r   td1r4   rU   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 )NrM   r   r   r   z@floor_divide cannot use operands|Cannot divide int by Timedelta*rO   rA  )r.   r/   r   rU   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rnt|tjrnt	}|
t}t| t||}W 5 Q R X t|d | t|d ||  d S )Nr  9 daysz2 Days0 DaysrN   r   r   )r   r   r,   r   r-   r   r}   r   Z
DateOffsetr   re   rf   r   divmod)r.   r/   
three_daysr1   r   r4   rU   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 nsrC   r'   z0 nsrM   r   zCannot divide int byrO   r   r   )	r   r   r,   r   r-   rR   rS   rT   rb  )r.   r/   r1   r   r4   rU   rV   r   r   r   test_td64arr_mod_int1  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  r`  ra  z3 Days   r   r   )r   r   r,   r   r-   rb  )r.   r/   rc  r1   r   r4   rU   r   r   r   test_td64arr_rmod_tdscalarC  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 NrM   rN   r   r   z(operate|unsupported|cannot|not supportedrO   
r
   r   r)   r   r   r   r,   rR   rS   rT   )r.   r/   r[  r\  r^  r   r   r   !test_td64arr_mul_tdscalar_invalidU  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 )NrM   r   r   r<  $cannot use operands with types dtypez$Cannot multiply with unequal lengthszUnable to coerce to SeriesrO   rN   r   r   )r   r)   rd   r   r,   r=  rR   rS   rT   r   r   r.   r/   r   rV   r   r   r   !test_td64arr_mul_too_short_raisesd  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 )NrM   r   r   rl  rO   )r   r)   rd   r   r,   rR   rS   rT   rm  r   r   r   test_td64arr_mul_td64arr_raisest  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-   )r.   r/   r  r   r4   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@  rO   r
   r   r,   r-   rR   rS   rT   r.   r/   rq  r   r4   rU   r   r   r   test_td64arr_div_numeric_scalar  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 rr  rs  rt  r   r   r   $test_td64arr_floordiv_numeric_scalar  s    zDTestTimedeltaArraylikeMulDivOps.test_td64arr_floordiv_numeric_scalarr     rW  (   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
   re   r   r,   r   r-   )r.   r/   r  r  r   r4   r0   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 dddgdd |t dddgdd}t | t }t||}  }t|| d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 }t||t
}nT fddtt D }dd |D }|tjkr*t|t
}n||t
d}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@  z-ufunc 'divide' cannot use operands with typesrO   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   rz  r   r   r     s     c                 S   s$   g | ]}|t k	r|n
td dqS )r	   r;  )r	   r)   rv   rM  r   r   r   r     s    )r
   re   r   r,   r   r-   r=  rR   rS   rT   rf   r   rc   r$  r   )r.   r/   r  r  r4   r0   rU   r^  r   rz  r   test_td64arr_div_numeric_array  sB    


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   rN   r&   rD  Z9daysZ16daysr   )	r#   r   r
   r)   r   r   r,   r   r-   )
r.   r/   r!   r    r"   r1   r:   r4   r0   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 )Nr|  r}  r~  r  r  r   r   r   rN   g      @rg  g      @r   rD  r   c                    s   g | ]}|  |  qS r   r   r   r:   r1   r   r   r   .  s     zRTestTimedeltaArraylikeMulDivOps.test_float_series_rdiv_td64arr.<locals>.<listcomp>r   )r   r
   r)   r7  r   r   r   r   rc   r$  r,   r   __rtruediv__r   NotImplementedr   r-   )r.   r/   r!   r    Zxnamer4   r0   rU   r   r  r   test_float_series_rdiv_td64arr$  s&      

z>TestTimedeltaArraylikeMulDivOps.test_float_series_rdiv_td64arrc                 C   s   t ttg}t||}tjddgtd}ttddgd td}|tk	r^t||	t}|| }t
|| || }t
|| d S )Nr   r   r   r	   r;  )r   r	   r   r,   r)   r   rf   r   rv   re   r-   )r.   r/   r1   rj   rk   r4   rU   r   r   r   -test_td64arr_all_nat_div_object_dtype_numeric=  s    zMTestTimedeltaArraylikeMulDivOps.test_td64arr_all_nat_div_object_dtype_numericN)3rX   rY   rZ   r/  r0  r2  r4  r6  r8  rR   r[   r\   r)   rd   r   r   rc   Zuint64r7  r   Z
RangeIndexr:  r>  r?  rB  rF  rO  rP  rQ  rR  rV  rY  filterwarningsr]  r_  re  rf  rh  rk  rn  ro  rp  r   ru  rv  r
   ry  r{  r  r  r  r   r   r   r   r-    st   



&"#


 
 
(
(
2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 ri  rj  )r.   r[  r/   r\  r^  r   r   r   test_td64arr_pow_invalidT  s    z;TestTimedelta64ArrayLikeArithmetic.test_td64arr_pow_invalidN)rX   rY   rZ   r  r   r   r   r   r  O  s   r  c                     sD   t d  tdddd } t fddtdD }t| | d S )Nr?   Z0sr      r'   c                    s6   g | ].} t d | t dt|dd    qS )z0.033333333sz0.000000001srN   r   )r   r   rb  r   	timestampr   r   r   j  s   z3test_add_timestamp_to_timedelta.<locals>.<listcomp>)r   r   r   rc   r   r~   r   r   r  r   test_add_timestamp_to_timedeltae  s    

r  )'r   r   Znumpyr)   rR   Zpandas.errorsr   r   Zpandasr   r   r   r   r	   r
   r   r   r   r   r   Zpandas._testingZ_testingr   Zpandas.core.arraysr   Zpandas.tests.arithmetic.commonr   r   r   r   r#   r$   rh   rw   r   r   r-  r  r  r   r   r   r   <module>   s>   0	kg   A     N     7