o
    ŀg?4                    @   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)NumpyExtensionArray)assert_invalid_addsub_typeassert_invalid_comparisonget_upcast_boxc                 C   s   t | }||ksJ dS )zT
    Helper to check the dtype for a Series, Index, or single-column DataFrame.
    N)tm	get_dtype)objexpected_dtypedtype r   \/var/www/html/myenv/lib/python3.10/site-packages/pandas/tests/arithmetic/test_timedelta64.pyassert_dtype&   s   
r   c                 C   s<   | t u r
|d }|S | tjtjfv r|d }|S |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   sx   |}|t tjfvr|ntj}tddd}t| d }t||}||k}tg d}t||}t	|| d S )N2h   periodsr   )TFFF)
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vr|ntj}ttddtddg}t||}||k}tddg}t||}t	|| d S )Nr   r8   r   FT)
r   r   r    r*   r+   r
   r   r   r-   r.   )r/   r0   r7   r!   r1   seractualr5   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/   r0   r>   r!   rngr   r   r   r   test_td64_comparisons_invalidg   s   zATestTimedelta64ArrayLikeComparisons.test_td64_comparisons_invalidr3   rD   z
1970-01-01r)   tzr(   z
1971-01-01Dfreqr)   c                 C   s*   t dddj}t||}t||| d S rB   )r   _datar   r-   r   )r/   r3   r0   rE   r   r   r   "test_td64arr_cmp_arraylike_invalid}   s   zFTestTimedelta64ArrayLikeComparisons.test_td64arr_cmp_arraylike_invalidc                 C   sD  t dddj}tddd|d tdg}||k}tg d	}t|| ||k}t||  d
}tjt	|d ||k  W d    n1 sIw   Y  tjt	|d ||k W d    n1 sdw   Y  tjt	|d ||k W d    n1 sw   Y  tjt	|d ||k W d    d S 1 sw   Y  d S )NrC      r(   r   r   r      r@   )FFFTFzDInvalid comparison between|Cannot compare type|not supported betweenmatch)
r   rL   r*   r    r   r   assert_numpy_array_equalpytestraises	TypeError)r/   rE   r3   resultr5   msgr   r   r   test_td64arr_cmp_mixed_invalid   s(   



"zBTestTimedelta64ArrayLikeComparisons.test_td64arr_cmp_mixed_invalidN) __name__
__module____qualname__r6   rS   markparametrizer   r   to_timedelta64r   Hourr=   r   nowto_datetime64to_pydatetimedater*   r    rF   listrangearangeastypefloat32objectr   
date_rangeperiod_rangerM   rX   r   r   r   r   r%   ?   sP    
	

	

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u r(|t|t}}||k}tg d}t|| ||k}tg d}t|| tg d}t|tk| tt|k| tg d}t|tk| tt|k| tg d}t|tk | tt|k| d S )NrC   3 days)FFT)TTF)FFFTTT)	r   r   r	   ri   rg   r*   r    r   rR   )r/   r   leftrightlhsrhsrV   r5   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   rI   natr   srN   rO   c                 C   s   t dtdtddg}||k }tg d}t|| ||k}tg d}t|| ||k}tg d}t|| ||k}tg d}t|| ||k}tg d}t|| ||k}tg d}t|| d S )N1 dayz1 day 00:00:01z5 day 00:00:03)TFFFTF)TFFFTT)FFFFFT)TTTTTF)r   r	   r*   r    r   rR   )r/   rt   idx1rV   r5   r   r   r   test_comparisons_nat   s6   z4TestTimedelta64ArrayComparisons.test_comparisons_natc                 C   s`   t ddd}||d k }tg ddgd  }t|| |t|k}||k}t|| d S )NrC   rD   r(   rO   rn   F   )r   r*   r    r   rR   rd   )r/   rE   rV   r5   expr   r   r   test_comparisons_coverage  s   z9TestTimedelta64ArrayComparisons.test_comparisons_coverage)rY   rZ   r[   rS   r\   r]   ri   rs   r   r	   r*   r    timedelta64ry   r|   r   r   r   r   rl      s*    



%rl   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   sr  t g dddd}|d t|dfD ]}t|t sJ t g dddd}t|| |jdks2J q|d t|dfD ]}t|t sFJ t g dd	dd}t|| |jd	ks\J q=| t|fD ]}t|t snJ t g d
ddd}t|| |jdksJ qet g dd	dd}t	|t
|fD ]}t|t sJ t g dd dd}t|| |jd u sJ qd S )N)r&   4h6h8h10hr&   xrK   namer   )r   r   12h16h20hr   )1hr&   3hr   5hh)-2hz-4hz-6hz-8hz-10hr   )r   z-1h0hr   r&   )r&   r   r   r   r&   )r   r*   multiply
isinstancer   assert_index_equalrK   dividenegativeabsabsolute)r/   idxrV   r{   r   r   r   test_ufunc_coercions  s2   
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 d    n1 s1w   Y  tjt|d
 ||  W d    n1 sLw   Y  d}tjt|d
 ||  W d    n1 siw   Y  d}tjt|d
 ||  W d    n1 sw   Y  || }t g ddd}t	
|| || }t g ddd}t	
|| || }t dtdgdd}t	
|| || }t dtdgdd}t	
|| || }tg ddddd}t	
|| || }tdtdgddd}t	
|| d S )NrC   2 daysfoor   20130101rO   barr)   r   z0cannot subtract a datelike from a TimedeltaArrayrP   z#unsupported operand type\(s\) for -z((bad|unsupported) operand type for unary0 days-1 days-2 daysr   rC   r   r   r   20121231r   20130102M8[ns]rI   )r   rK   r   r   20121230r   r   )r   r	   r   rj   r   r   rS   rT   rU   r   r   r   )r/   r2   dtitddtrW   rV   r5   r   r   r   test_subtraction_ops4  sR   



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 d    n1 s~w   Y  d}tj	t
|d ||  W d    n1 sw   Y  d}tj	t
|d ||  W d    n1 sw   Y  d
}tj	t
|d ||  W d    n1 sw   Y  tj	t
|d ||  W d    n1 sw   Y  tj	t
|d ||  W d    n	1 sw   Y  d}tj	t
|d ||  W d    n	1 s*w   Y  tj	t
|d ||  W d    n	1 sFw   Y  || }tg d}t||}t|| || }tg d}t||}t|| || }tg d}t||}t|| || }tg d}t||}t|| |	|	 }td	}|
|| ||	 }tg dddd}t||}t|| d S )Nr   rO   r(   z
US/EasternCETrC   c                 S   s   | |ksJ t | tsJ d S N)r   r   rV   r5   r   r   r   _checkr  s   zNTestTimedelta64ArithmeticUnsorted.test_subtraction_ops_with_tz.<locals>._checkr   z<Cannot subtract tz-naive and tz-aware datetime-like objects.rP   z6can't subtract offset-naive and offset-aware datetimesz%Cannot subtract tz-naive and tz-awarer   r   r   rH   ns)r   rj   r   r-   r   rb   tz_localizer   rS   rT   rU   r   r.   r   as_unit)r/   r0   r   tsr   dti_tzts_tzts_tz2dt_tzr   r   rV   r5   rW   r   r   r   test_subtraction_ops_with_tze  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dd}t|| d S )NrC   r   r   r   r   rO   r   r   r   4 daysr   r   r   )r   r	   r   rj   r   r   r   )r/   r2   r   rV   r5   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d}t|| || }td	td
gd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 d    n1 sw   Y  t	j
t|d |dd |  W d    n1 sw   Y  d}t	j
t|d |tg dtjd  W d    n1 sw   Y  || }td	tdgdd}t|| || }td	tdgdd}t|| || }td	}||ksJ || }td	}||ksJ d S )NrC   r   r   r   r   rO   r   r   r   20130103r   r   rm   z$cannot add indices of unequal lengthrP   r   r   3Addition/subtraction of integers and integer-arraysr   r   rO   r   20130105)r   r	   r   rj   r   r   r   r   r   rS   rT   
ValueErrorrU   r   r*   int64)r/   r2   r   r   r   rV   r5   rW   r   r   r   test_addition_ops  sV   z3TestTimedelta64ArithmeticUnsorted.test_addition_opsrK   rI   Bc                 C   s   t jdd|d}|td }|td }|d}t|| |dkr@t jjd}|j	|ks1J |j	|ks8J |j	|ks?J n|j	t jj
dksLJ |j	d u sSJ |j	t jj
dks_J |td }|td }t|| d S )Nz1/1/20002   r)   rK   r   inferrI   )r   rj   r   
_with_freqr   r   tseriesr   DayrK   BusinessDay)r/   rK   indexshiftedbackr5   rV   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s2J |	d }t
|| |j|jksEJ |	d }t
|| d S )N20132014r   i )r   rj   r
   r   r_   r   r*   r}   rK   r   r   r   )r/   rE   rv   result1result2result3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 )NrC   r   z
1999-12-31rO   rI   r   )r   r	   r    r   rj   r   r   )r/   r2   tdar   rV   r5   r   r   r   test_tda_add_sub_index1  s   z8TestTimedelta64ArithmeticUnsorted.test_tda_add_sub_indexc           	      C   s   |}t jdd|d}|d }|| }t||}t||}tt ||t }W d    n1 s6w   Y  t	||t d S )N
2016-01-01rO   rG   )
r   rj   r   r   r-   assert_produces_warningr   rg   ri   r.   )	r/   r0   tz_naive_fixturer!   r   r2   r   r3   rV   r   r   r   test_tda_add_dt64_object_arrayD  s   
z@TestTimedelta64ArithmeticUnsorted.test_tda_add_dt64_object_arrayc                 C   sd   t dd}t dddd}t||}t||}|}||7 }t|| |tur0t|| d S d S NrC   10 daysz1 days 02:00:00z10 days 02:00:00rI   rK   r   r   r-   r.   r   r/   	two_hoursr0   rE   r5   orig_rngr   r   r   test_tdi_iadd_timedeltalikeV  s   
z=TestTimedelta64ArithmeticUnsorted.test_tdi_iadd_timedeltalikec                 C   s`   t dd}t dd}t||}t||}|}||8 }t|| |tur.t|| d S d S NrC   r   z0 days 22:00:00z9 days 22:00:00r   r   r   r   r   test_tdi_isub_timedeltalikee  s   

z=TestTimedelta64ArithmeticUnsorted.test_tdi_isub_timedeltalikec                 C   sZ  t ddddd}|d|j  }t ddddd}t|| |jdks$J |d|j  }t d	dddd}t|| |jdks@J |d }t ddd
dd}t|| |jd
ksYJ |d }t ddddd}t|| |jdksrJ | }t d	dddd}t|| |jdksJ t d	dddd}t|}tg ddd}t|| |jd u sJ d S )Nr   rN   2Dr   )r)   rK   r   r   r   r   r   4DrC   rI   z-2D)r   rC   r   rC   r   r   )r   rK   r   r   r   r   )r/   rE   rV   r{   r   r   r   test_tdi_ops_attributesv  s8   z9TestTimedelta64ArithmeticUnsorted.test_tdi_ops_attributesN)rY   rZ   r[   r   r   r   r   r   rS   r\   r]   r   r   r   r   r   r   r   r   r   r   r   r~     s    1V=
r~   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 ]}|| }|tu r9|j	d t
u s8J q%|d t
u sAJ q%d S )Nz24658 days 11:15:00r	   zdatetime64[ns]zdatetime64[D])r   r   r   )r   to_timedeltar   r-   r   rb   ra   rg   r   ilocr	   )	r/   r0   r   tdinattdobjr   ts_variantsvariantr4   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 d    n1 sw   Y  t jtdd tdtdd  W d    n1 s=w   Y  tjd }d}t jt|d tdgdtd  W d    n1 sfw   Y  t jt|d tdtdgd  W d    n1 sw   Y  t jt|d t|gt	d  W d    n1 sw   Y  t jt|d td	|gt	d  W d    n1 sw   Y  t jt|d t|d	d
gtd|dg  W d    n1 sw   Y  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 )N10155196800000000000rP   iT rI   2000r   zOverflow in int64 additionrC   z5 days1 hoursz	7 secondsz4 hoursr   z5 hours)rS   rT   r   r   r   r   r	   _valueOverflowErrorr   r   r   r   )r/   _NaTrW   r{   rV   r   r   r   test_tdi_add_overflow  sH   

z*TestAddSubNaTMasking.test_tdi_add_overflowN)rY   rZ   r[   rS   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g d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g d!eg d!eg d!eg d!ggd"d# d$d%d& Zd'd( Zd)d* Zd+d, Zd-d. Zd/d0 Zej	d1ed2egd3d4 Z d5d6 Z!d7d8 Z"d9d: Z#d;d< Z$d=d> Z%ej	d?ejeegd@dA Z&dBdC Z'dS )D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
   rg   r	   r   assert_series_equal)r/   r;   rV   r5   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}t ttgdd}tdgt j}tdgt j}ttjgt j}t d}t d}t d}	|| }
|
|ksOJ || }
|
|ksYJ || }
t|
| || }
t|
| || }
t|
| || }
t|
| || }
t|
| | | }
t|
| ||	 }
t|
| |	| }
t|
| ||	 }
t|
| |	 | }
t|
| d}t	j
t|d |tj  W d    n1 sw   Y  t	j
t|d tj|  W d    n1 sw   Y  t	j
t|d |tj  W d    n	1 sw   Y  t	j
t|d tj |  W d    n	1 s/w   Y  |t }
t|
| |t }
t|
| || }
t|
| || }
t|
| || }
t|
| || }
t|
| || }
t|
| || }
t|
| || }
t|
| || }
t|
| ||	 }
t|
| ||	 }
t|
| d}t	j
t|d |tj  W d    n	1 sw   Y  t	j
t|d |tj  W d    n	1 sw   Y  |t }
t|
| |t }
t|
| d S )	Nr   z00:00:02m8[ns]r   r	   unsupported operand typerP   z8cannot subtract a datelike from|unsupported operand type)r   r   r
   r	   r   applyr   r   r   rS   rT   rU   r*   nanassert_frame_equal)r/   s1s2sndf1df2dfnscalar1scalar2timedelta_NaTr<   rW   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s1J td	|i}td
d t	dD }|jdksIJ |d	 |d	 
  }|jdksZJ |d	 | }|jdksgJ |d	  }t|tstJ |d	 |d	   }	|	jdksJ |	|d	  }tdtdtdg}
t|
dd	d}t|| |d	 tddd }tdd t	dD d	d}t|| |jdksJ tddddd}|d	 | }|jdksJ || }	t|d	 |	 tdd}|d	 | }|| }	t|	|d	  |	jdksJ tddd}|d	 | }|| }	t|d	 |	 |	jdks'J |d ttddd }|d  ttddd7  < |d |ksLJ d S )Nz2012-1-1rO   rI   r   z2012-1-2g  S$Br   timedelta64[ns]Ac                 S   s   g | ]}t |d qS )r8   r   .0ir   r   r   
<listcomp>S  s    zNTestTimedeltaArraylikeAddSubOps.test_operators_timedelta64.<locals>.<listcomp>r   201112302012010120120103r   i  r   c                 S   s   g | ]	}t d | dqS )i  r8   r  r  r   r   r   r  l  s    r   r   r'   r8   rN   minutessecondsr   )r   rj   r
   r   rg   r   r   r   r   re   shiftmaxr   r   r   r   r*   r}   )r/   v1v2rsxpdfr   rV   maxaresultbvaluesr5   dresultavaluer   r   r   test_operators_timedelta64I  sV   
z:TestTimedeltaArraylikeAddSubOps.test_operators_timedelta64c                 C   s  t ttdg}t ttgdd}t tgdd}t|t | tt | | t|| | t| | | t|t | tt| | t|| | t|| | t|t | tt| | t|| | t|| | t|t | tt| | t|| | t|| | t|d | td| | t|d | td| | t|d t ttdg td| t ttdg t|tj | ttj| | t|d t ttd	g t|d
 t ttd	g t|tj | d S )N1sr  r         ?r         ?z1.5sr   z0.5s       @)r
   r	   r   r   r   r*   r  )r/   timedelta_seriesnat_series_dtype_timedeltasingle_nat_dtype_timedeltar   r   r   test_timedelta64_ops_nat  s|   
z8TestTimedeltaArraylikeAddSubOps.test_timedelta64_ops_natclsc                 C   s*  |}t d|d}|tu r| }n|tju r)|d ur$t| d|  | }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 d    d S 1 sw   Y  d S )Nz
2012-01-01r   z doesn support rw   rO   r(   z
2012-01-02rG   z
2011-12-31z-1D)r)   rK   rH   zcannot subtract a datelikerP   )r   r   rb   r*   
datetime64rS   skipra   r   r   rj   r   r-   r.   rT   rU   )r/   r2  r0   r   rH   	dt_scalarr   r2   r5   tdarr	expected2rW   r   r   r   (test_td64arr_add_sub_datetimelike_scalar  s.   



"zHTestTimedeltaArraylikeAddSubOps.test_td64arr_add_sub_datetimelike_scalarc                 C   sb   t d}tddd}tg ddd}t||}t||}t|| | t|| | d S )Nr	   rw   rO   r(   )r	   r	   r	   r   r   )r*   r3  r   r   r   r-   r.   )r/   r0   r3   r2   r5   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 d    n1 s;w   Y  || }t
|| d S )Nr   rO   r(   -1 Dayzcannot subtract a datelike fromrP   )r   rj   r   r%  r   r   r-   rS   rT   rU   r.   )r/   r0   r   r2   dtarrr5   rW   rV   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   rO   r(   r;  )r   rj   r   r%  r   r   r-   r.   )r/   r0   r   r2   r<  r5   rV   r   r   r   test_td64arr_add_dt64_array"  s   z;TestTimedeltaArraylikeAddSubOps.test_td64arr_add_dt64_arraypi_freq)rI   WQr   tdi_freqNr   c           
      C   s   t ddg|d}td| }||}|d }t||}t||}d}	tjt|	d ||  W d    n1 s;w   Y  tjt|	d ||  W d    d S 1 sWw   Y  d S )Nr   z2 hoursr   z2018-03-07 17:16:40r   z(cannot subtract|unsupported operand typerP   )r   r   	to_periodr   r-   rS   rT   rU   )
r/   r0   box_with_array2rB  r?  r2   r   piperrW   r   r   r   test_td64arr_sub_periodlike3  s   


"z;TestTimedeltaArraylikeAddSubOps.test_td64arr_sub_periodliker3   r?   r   r,  r   c                 C   s*   t g ddd}t||}t|| d S N59 DaysrJ  r	   r   r   )r
   r   r-   r   )r/   r0   r3   r9  r6  r   r   r   *test_td64arr_addsub_numeric_scalar_invalidH  s   zJTestTimedeltaArraylikeAddSubOps.test_td64arr_addsub_numeric_scalar_invalidvecr   c                 C   
   t | jS r   typerY   r   r   r   r   <lambda>b     
 z(TestTimedeltaArraylikeAddSubOps.<lambda>idsc                 C   s4   t g ddd}t||}||}t|| d S rH  )r
   r   r-   rg   r   )r/   r0   rL  any_real_numpy_dtyper9  r6  vectorr   r   r   'test_td64arr_addsub_numeric_arr_invalidZ  s   
zGTestTimedeltaArraylikeAddSubOps.test_td64arr_addsub_numeric_arr_invalidc                 C   s   t dddd}t||}d}t||| tjt|d ||7 }W d    n1 s+w   Y  tjt|d ||8 }W d    d S 1 sGw   Y  d S )N1 days 09:00:00r   rD   rJ    Addition/subtraction of integersrP   )r   r   r-   r   rS   rT   rU   )r/   r0   onerE   r6  rW   r   r   r   test_td64arr_add_sub_intm  s   

"z8TestTimedeltaArraylikeAddSubOps.test_td64arr_add_sub_intc                 C   sV   |}|t ju r
tjn|}tdddd}t||}tg d|}d}t||| d S )NrX  r   rO   rJ   )r'   rO   r   r   )r   r    r*   r+   r   r   r-   r   )r/   r0   r!   r1   rE   r6  r3   rW   r   r   r   "test_td64arr_add_sub_integer_array{  s   zBTestTimedeltaArraylikeAddSubOps.test_td64arr_add_sub_integer_arrayc                 C   sT   |}|t ju r
tjn|}tg d}t||}tg d|}d}t||| d S )N)1 Dayr	   z3 Hours)   r      rY  )r   r    r*   r+   r   r   r-   r   )r/   r0   r!   r1   r2   r6  r3   rW   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   rO   r(   r   r   r   )r   rj   r  r%  r   r-   r.   )	r/   r0   r!   r   r2   r6  r5   rV   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v 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   rw   r   r   rO   )hoursr'   r   )r9   rc  r  )r$   r   r   r   r   r    r*   r
   r   r-   r.   r   )	r/   r0   r"   r!   r#   r2   r;   r5   rV   r   r   r   test_td64arr_add_sub_tdi  s0   
 


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/   r0   rg  r!   r2   r5   r   rV   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   r0   r!   rE   r5   rV   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   ri  rj  r   r   r   test_td64arr_sub_timedeltalike  s   

z>TestTimedeltaArraylikeAddSubOps.test_td64arr_sub_timedeltalikec           
         s  |}t ||}tddg|d dttjddtjddg|d d |tjtj	fv r0t
	 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 d    n1 sw   Y  t|| tt   }W d    n1 sw   Y  t|| tt   }	W d    n1 sw   Y  t|	| d S )N1 days 00:00:003 days 04:00:00r   r   r   nc                       g | ]
}|  |  qS r   r   r  rp  r3   r2   r   r   r        zUTestTimedeltaArraylikeAddSubOps.test_td64arr_add_sub_offset_index.<locals>.<listcomp>r   r   c                       g | ]
}|  |  qS r   r   rs  rt  r   r   r    ru  F)copy)r$   r   r   r   r_   Minuter   r   r   r    r*   re   lenr-   rg   ri   r   r   r.   )
r/   r"   r0   r!   r#   r5   ra  r4   res2res_subr   rt  r   !test_td64arr_add_sub_offset_index  s4   
$


zATestTimedeltaArraylikeAddSubOps.test_td64arr_add_sub_offset_indexc                    sd  |}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 d    n1 s^w   Y  t|| tt   }W d    n1 s}w   Y  t|| t	||
t}tt   }W d    n1 sw   Y  t|| d S )Nrm  rn  r   ro  rq  c                    rr  r   r   rs  rt  r   r   r  ,  ru  zUTestTimedeltaArraylikeAddSubOps.test_td64arr_add_sub_offset_array.<locals>.<listcomp>r   r   c                    rv  r   r   rs  rt  r   r   r  /  ru  )r   r*   r    r   r_   rx  re   ry  r   r-   rg   ri   r   r   r.   )r/   r0   r!   r5   ra  r4   rz  r{  r   rt  r   !test_td64arr_add_sub_offset_array%  s0   


zATestTimedeltaArraylikeAddSubOps.test_td64arr_add_sub_offset_arrayc                    s  |}|t tjtjfv 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 d    n1 sfw   Y  t|| tt  | }	W d    n1 sw   Y  t|	| t fdd	ttD |td
}
t|
|t}
tt |  }W d    n1 sw   Y  t||
 d S )Nrm  rn  r   r   r   ro  rq  c                    rr  r   r   rs  rt  r   r   r  L  ru  zSTestTimedeltaArraylikeAddSubOps.test_td64arr_with_offset_series.<locals>.<listcomp>)r   r   c                    rv  r   r   rs  rt  r   r   r  Z  ru  )r   r   r   r   r    r
   r$   r   r   r_   rx  re   ry  ri   r-   rg   r   r   r.   )r/   r"   r0   r!   box2r#   expected_addr   r4   rz  ra  res3r   rt  r   test_td64arr_with_offset_seriesB  s4   
$


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 d    n1 s6w   Y  W d    n1 sEw   Y  tjt|d! t	t
 ||  W d    n1 sfw   Y  W d    n1 suw   Y  tjt|d! t	t
 ||  W d    n1 sw   Y  W d    n1 sw   Y  tjt|d* t	t
 ||  W d    n1 sw   Y  W d    d S W d    d S 1 sw   Y  d S )Nrm  rn  r   ro  z/has incorrect type|cannot add the type MonthEndrP   )r   r   r-   r   MonthEndr   rS   rT   rU   r   r   )r/   r  r0   r2   anchoredrW   r   r   r   -test_td64arr_addsub_anchored_offset_arraylikeb  s:   



"zMTestTimedeltaArraylikeAddSubOps.test_td64arr_addsub_anchored_offset_arraylikec           
   	   C   s  |}|t ju r
tjn|}tdddd}t||}ttddt	dt
dg}tt || }W d    n1 s=w   Y  ttddtd	dt
d
g}t||t}t|| d}	tjt|	d! tt ||  W d    n1 s~w   Y  W d    n1 sw   Y  tt || }W d    n1 sw   Y  ttdtdt
dg}t||t}t|| d S )Nrw   rO   rI   r   r   r8   r   z
2000-01-04r'   z
2000-01-07z3unsupported operand type|cannot subtract a datelikerP   r   z
2000-01-01)r   r    r*   r+   r   r   r-   r   r   r   r   r   r   r   rg   ri   r.   rS   rT   rU   )
r/   r0   r!   r1   r2   r6  r3   rV   r5   rW   r   r   r   !test_td64arr_add_sub_object_array}  s4    


zATestTimedeltaArraylikeAddSubOps.test_td64arr_add_sub_object_array)(rY   rZ   r[   r   r  r)  r1  rS   r\   r]   r   r   r*   r3  r8  r:  r=  r>  rG  r    rK  r   r
   r   rW  r[  r\  r`  rb  rf  r}   r	   rh  rk  rl  r|  r}  r  r  r  r   r   r   r   r     s^    	`BU
#




	#
  
r   c                
   @   sP  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g de	j
dg d d!d" Zd#d$ Zd%d& Zd'd( Zd)d* Zd+d, Ze	j
 d-d.d/ Z!d0d1 Z"d2d3 Z#d4d5 Z$d6d7 Z%d8d9 Z&d:d; Z'd<d= Z(d>d? Z)e	j
d@dAdBe*dAe*dBgdCdD Z+e	j
d@dAdBe*dAe*dBgdEdF Z,e	j
jdGe*g dHeg dHe-g dHgdId ddJdK Z.e	j
jdGe*g dHeg dHe-g dHgdLd ddMdN Z/dOdP Z0dQdR Z1dSdT Z2dUS )VTestTimedeltaArraylikeMulDivOpsc                 C   sJ   t tjddd}t||}|d }t|| d| }t|| d S )NrN   r   r   r   )r   r*   rf   r   r-   r.   r/   r0   r   rV   r   r   r   test_td64arr_mul_int  s   z4TestTimedeltaArraylikeMulDivOps.test_td64arr_mul_intc                 C   sd   t dddd}t||}dg d}tjt|d ||  W d    d S 1 s+w   Y  d S )NrC   r   r   r   |)zargument must be an integer$cannot use operands with types dtypezCannot multiply withrP   )r   r   r-   joinrS   rT   rU   )r/   r   r0   rE   rW   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 )NrN   r   r   )r*   rf   r   r   r-   r    r.   r/   r0   rng5r   r5   rV   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 NrN   r   r   r   )r*   rf   r   r   r-   r.   r  r   r   r   test_tdi_mul_int_array  s   z6TestTimedeltaArraylikeMulDivOps.test_tdi_mul_int_arrayc                 C   s   |}|t tjtjfv 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 r  r   r   r   r   r    r
   r   r*   rf   r-   r.   )r/   r0   r!   r1   r   r5   rV   r   r   r   test_tdi_mul_int_series  s   z7TestTimedeltaArraylikeMulDivOps.test_tdi_mul_int_seriesc                 C   s   |}|t tjtjfv rtn|}ttjddd}t	||}tjddd}t||d  }t	||}|t|d  }t
|| d S )NrN   r   r   float64r+  r  )r/   r0   r!   r1   r   rng5fr5   rV   r   r   r   test_tdi_mul_float_series  s   z9TestTimedeltaArraylikeMulDivOps.test_tdi_mul_float_seriesr3   r      c                 C   rM  r   rN  rP  r   r   r   rQ    rR  z(TestTimedeltaArraylikeMulDivOps.<lambda>rS  c           	      C   sp   |}t dgd }tddd }t||}t||}t||}|| }t|| || }t|| d S )Nr]  rD   rC   r   )r   r   r   r   r-   r   r.   )	r/   r3   r0   r!   r2   r5   r1   rV   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 d    n1 s#w   Y  tjtdd t|  W d    n1 s>w   Y  tdd	}d
	g d}tjt|d ||  W d    n1 sfw   Y  tjt|d ||  W d    d S 1 sw   Y  d S )NrC   r   r   r   r  rP   zCannot divide NaTType byr	   r   r  )z0ufunc '(true_divide|divide)' cannot use operandszcannot perform __r?truediv__z*Cannot divide datetime64 by TimedeltaArray)
r   r   r-   rS   rT   rU   r	   r*   r3  r  )r/   r0   rE   dt64natrW   r   r   r   test_td64arr_div_nat_invalid  s$   



"z<TestTimedeltaArraylikeMulDivOps.test_td64arr_div_nat_invalidc                 C   s   |}|t ju r
tjn|}tdd}t||}td}ttjgd }t||}|| }t	|| || }t	|| d S )NrC   r   r	   rD   )
r   r    r*   r+   r   r   r-   r}   r  r.   )r/   r0   r!   r1   rE   r3   r5   rV   r   r   r   test_td64arr_div_td64nat#  s   

z8TestTimedeltaArraylikeMulDivOps.test_td64arr_div_td64natc                 C   sn   t tjddd}t||}|d }t|| tjtdd d|  W d    d S 1 s0w   Y  d S )NrN   r   r   r   Cannot dividerP   	r   r*   rf   r   r-   r.   rS   rT   rU   r  r   r   r   test_td64arr_div_int6  s   
"z4TestTimedeltaArraylikeMulDivOps.test_td64arr_div_intc                 C   s   |}|t ju 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 )	NrC   r   r   r   rD   r      r   )r   r    r*   r+   r   r   rf   r  r   r-   r.   r/   r   r0   r!   r1   rE   r5   rV   r   r   r   test_td64arr_div_tdlike_scalarA  s   z>TestTimedeltaArraylikeMulDivOps.test_td64arr_div_tdlike_scalarm)r   rO   rD   unit)rI   r   r  rv   msusr   c           
         s   |}|t ju 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;   r8   rO   r   c                    s   g | ]
}|t   qS r   )r*   r}   r  r   r  r  r   r   r  _  ru  zPTestTimedeltaArraylikeMulDivOps.test_td64arr_div_td64_scalar.<locals>.<listcomp>c                    s    g | ]}t t | qS r   )r   r*   r}   r  r  r   r   r  e  s     )r   r    r*   r+   r
   r   r  r   r-   r}   r.   )
r/   r  r  r0   r!   r1   r;   flatr5   rV   r   r  r   test_td64arr_div_td64_scalarS  s   
z<TestTimedeltaArraylikeMulDivOps.test_td64arr_div_td64_scalarc                 C   s   |}|t ju 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 )	NrC   r   r   r   r  r:   r   r   )r   r    r*   r+   r   r	   r   r  r  r   r-   r.   r  r   r   r   'test_td64arr_div_tdlike_scalar_with_natj  s   zGTestTimedeltaArraylikeMulDivOps.test_td64arr_div_tdlike_scalar_with_natc                 C   s<  |}|t ju r
tjn|}tdtdg}tdtjdgtjd}t	
||}t	
||}tjg ddd}|| }t	|| |t	
|| }t	|| ||t }t	||t |t| }t	|| d| }|| }t	|| t	
||| }t	|| |t| }t	|| t|| }t	|| d S )	NrC   r   r  r:   r   )r   r'   r   zm8[h]r   )r   r    r*   r+   r   r	   r   r  r  r   r-   r.   rg   ri   rd   )r/   r0   r!   r1   rE   r5   r3   rV   r   r   r   test_td64arr_div_td64_ndarray{  s0   z=TestTimedeltaArraylikeMulDivOps.test_td64arr_div_td64_ndarrayc              
   C   s   t dtdg}g d}t||}d}||d d fD ]E}|t|t|fD ]8}tjt	|d ||  W d    n1 s?w   Y  tjt	|d ||  W d    n1 sZw   Y  q'qd S )NrC   r   )r   r   rO   r'   z0Cannot divide vectors|Unable to coerce to Seriesr   rP   )
r   r	   r   r-   r*   r    r   rS   rT   r   )r/   r0   rE   
mismatchedrW   r   r3   r   r   r   test_tdarr_div_length_mismatch  s   

z>TestTimedeltaArraylikeMulDivOps.test_tdarr_div_length_mismatchc                 C   sB  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rN| }t|| |tu rct
|jd tj	scJ || }tdt	dd|d dgtd}tj||dd}t
|tr| }t|| |tu rt
|jd tj	sJ d S d S )Nr]  rO   r(   r   F	transposer   r,  r-  r   r   r+  r	   r   )r   r   )r   insertr	   r   r-   r*   r    ri   r   r}   r   r   r,   r.   r   r   )r/   r0   origr2   r3   r4   r5   r   r   r   !test_td64_div_object_mixed_result  s,    
 
zATestTimedeltaArraylikeMulDivOps.test_td64_div_object_mixed_resultc           	      C   s8  |}|t ju r
tjn|}tg ddd}tg ddd}t||}t||}tjddtjgtjd}t||}|t	u rM|rM|ddg 
d|ddg< tjt|t ju d	d
 || }W d    n1 sgw   Y  t|| tjt|t ju d	d
 t|| }W d    n1 sw   Y  t|| d S )N)  zd    r  r   )r  r  Nr+  r   r   r   F)check_stacklevel)r   r    r*   r+   r
   r   r-   r  r  r   rg   maybe_produces_warningRuntimeWarningr.   asarray)	r/   r0   using_array_managerr!   r1   ro   rp   r5   rV   r   r   r   &test_td64arr_floordiv_td64arr_with_nat  s,   
zFTestTimedeltaArraylikeMulDivOps.test_td64arr_floordiv_td64arr_with_natz/ignore:invalid value encountered:RuntimeWarningc           	      C   s   |}|t ju 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 )N5m3sr   r   Fr  r   r   )r   r    r*   r+   r   r
   r	   r   r-   r  r.   __rfloordiv__)	r/   r0   	scalar_tdr!   r1   r   td1r5   rV   r   r   r   test_td64arr_floordiv_tdscalar  s   
z>TestTimedeltaArraylikeMulDivOps.test_td64arr_floordiv_tdscalarc                 C   sr   t tjddd}t||}|d }t|| d}tjt|d d|  W d    d S 1 s2w   Y  d S )NrN   r   r   r   z@floor_divide cannot use operands|Cannot divide int by Timedelta*rP   r  )r/   r0   r   rV   patternr   r   r   test_td64arr_floordiv_int  s   
"z9TestTimedeltaArraylikeMulDivOps.test_td64arr_floordiv_intc                 C   s   t dd}t||}tg dd }t||}|| }t|| d }|tu r6t|tjr6t	}|
t}t| t||}W d    n1 sKw   Y  t|d | t|d ||  d S )Nr]  9 days)r]  z2 Days0 DaysrO   r   r   )r   r   r-   r   r.   r   r   r   
DateOffsetr   rg   ri   r   divmod)r/   r0   
three_daysr2   r6  r5   rV   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 d    n1 s=w   Y  t|d}t|d
 | t|d |d  d S )Nz1 nsz10 nsrD   r(   z0 nsrN   r   zCannot divide int byrP   r   r   )	r   r   r-   r   r.   rS   rT   rU   r  )r/   r0   r2   r6  r5   rV   rW   r   r   r   test_td64arr_mod_int6  s   

z4TestTimedeltaArraylikeMulDivOps.test_td64arr_mod_intc                 C   s   t dd}t||}g ddgd  }t|}t||}|| }t|| t||}t|d | t|d ||  d S )Nr]  r  )r  r]  r  z3 Days   r   r   )r   r   r-   r   r.   r  )r/   r0   r  r2   r6  r5   rV   r   r   r   test_td64arr_rmod_tdscalarH  s   

z:TestTimedeltaArraylikeMulDivOps.test_td64arr_rmod_tdscalarc                 C   s   t tdddgd }tj|jd< t||}d}tjt	|d ||  W d    n1 s/w   Y  tjt	|d ||  W d    d S 1 sKw   Y  d S NrN   rO   r  r   z(operate|unsupported|cannot|not supportedrP   
r
   r   r*   r  r   r   r-   rS   rT   rU   )r/   r0   r  r  r  r   r   r   !test_td64arr_mul_tdscalar_invalidZ  s   

"zATestTimedeltaArraylikeMulDivOps.test_td64arr_mul_tdscalar_invalidc                 C   s   t tjddd}t||}dg d}tjt|d ||d d   W d    n1 s0w   Y  tjt	|d |t
dd	g  W d    d S 1 sQw   Y  d S )
NrN   r   r   r  )r  z$Cannot multiply with unequal lengthszUnable to coerce to SeriesrP   rO   r   r   )r   r*   rf   r   r-   r  rS   rT   rU   r   r    r/   r0   r   rW   r   r   r   !test_td64arr_mul_too_short_raisesi  s   "zATestTimedeltaArraylikeMulDivOps.test_td64arr_mul_too_short_raisesc                 C   s^   t tjddd}t||}d}tjt|d ||  W d    d S 1 s(w   Y  d S )NrN   r   r   r  rP   )r   r*   rf   r   r-   rS   rT   rU   r  r   r   r   test_td64arr_mul_td64arr_raisesy  s   
"z?TestTimedeltaArraylikeMulDivOps.test_td64arr_mul_td64arr_raisesc                 C   s   t g ddd}t g ddd}t||}t||}||  }t|| | | }t|| t g ddd}t||}|d|  }t|| d| | }t|| d S )NrI  r   r   )-59 Daysr  r	   r  )118 Daysr  r	   r   )r
   r   r-   r.   )r/   r0   rZ  r9  r5   rV   r   r   r   test_td64arr_mul_numeric_scalar  s   

z?TestTimedeltaArraylikeMulDivOps.test_td64arr_mul_numeric_scalartwor   r-  c                 C   s   t g ddd}t g ddd}t||}t||}|| }t|| tjtdd ||  W d    d S 1 s=w   Y  d S NrI  r   r   )29.5Dr  r	   r  r  rP   r
   r   r-   r.   rS   rT   rU   r/   r0   r  r9  r5   rV   r   r   r   test_td64arr_div_numeric_scalar  s   
"z?TestTimedeltaArraylikeMulDivOps.test_td64arr_div_numeric_scalarc                 C   s   t g ddd}t g ddd}t||}t||}|| }t|| tjtdd ||  W d    d S 1 s=w   Y  d S r  r  r  r   r   r   $test_td64arr_floordiv_numeric_scalar  s   
"zDTestTimedeltaArraylikeMulDivOps.test_td64arr_floordiv_numeric_scalarrV  )   r  (   c                 C   rM  r   rN  rP  r   r   r   rQ    rR  c                 C   sx   t g ddd}||}t g ddd}t||}t||}t||}|| }t|| || }t|| d S )NrI  r   r   )z	1180 Daysz	1770 Daysr	   r  )r
   rg   r   r-   r   r.   )r/   r0   rV  rU  r9  r5   r1   rV   r   r   r   test_td64arr_rmul_numeric_array  s   

z?TestTimedeltaArraylikeMulDivOps.test_td64arr_rmul_numeric_arrayc                 C   rM  r   rN  rP  r   r   r   rQ    rR  c           	         s  t g ddd |t g ddd}t | t }t||}  }t|| dg d}tjt	|d    W d    n1 sMw   Y   t
 }|tu r fd	d
ttD }t||t
}d}tjt|d |d jtdddd|d< W d    n1 sw   Y  n) fdd
tt D }dd
 |D }|tju rt|t
}n||t
d}t|| tjt	|d t
   W d    d S 1 sw   Y  d S )NrI  r   r   )z2.95Dz
1D 23h 12mr	   r  r  )z!true_divide'? cannot use operandszcannot perform __div__zcannot perform __truediv__zunsupported operandr  z-ufunc 'divide' cannot use operands with typesrP   c                    s"   g | ]} j d |f |  qS )r   )r   rs  r9  rV  r   r   r    s   " zRTestTimedeltaArraylikeMulDivOps.test_td64arr_div_numeric_array.<locals>.<listcomp>z The 'downcast' keyword in fillnar   r	   r   Fdowncastc                    s   g | ]
} | |  qS r   r   rs  r  r   r   r    ru  c                 S   s$   g | ]}|t ur
|ntd dqS )r	   r   )r	   r*   r}   r  r   r   r   r    s    )r
   rg   r   r-   r   r.   r  rS   rT   rU   ri   r   re   ry  r   FutureWarningfillnar*   r}   r   )	r/   r0   rV  rU  r5   r1   rV   r  rW   r   r  r   test_td64arr_div_numeric_array  sH   




"z>TestTimedeltaArraylikeMulDivOps.test_td64arr_div_numeric_arrayc           
      C   s   |}t ||}tg d|d d}tg dtj|d d}tg dd|d}t||}t||}t||}|| }	t|	| || }	t|	| d S )	N0days1day2days3days4daysr   r   )r   r   r   rO   r'   r   r   )r  r  r  9days16daysr  )	r$   r   r
   r*   r   r   r-   r   r.   )
r/   r0   r"   r!   r#   r2   r;   r5   r1   rV   r   r   r   test_td64arr_mul_int_series  s$   

z;TestTimedeltaArraylikeMulDivOps.test_td64arr_mul_int_seriesc                    s   |}t g d|d dtg dtj|d d |tjtjfvr$|d n|d }t fdd	tt	 D d
|d}t
|t }t
||} }|tu r]|tu s[J d S t|| d S )Nr  r   r   )r,  rO   g      @r  g      @r   r   r   c                    s   g | ]
}|  |  qS r   r   rs  r;   r2   r   r   r  9  ru  zRTestTimedeltaArraylikeMulDivOps.test_float_series_rdiv_td64arr.<locals>.<listcomp>r  )r   r
   r*   r  r   r   r   r    re   ry  r-   r   __rtruediv__r   NotImplementedr.   )r/   r0   r"   r!   xnamer5   r1   rV   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dd}t|gd td}|turWt||	t}|t
tfv rWd}tjt|d |j|dd	}W d    n1 sRw   Y  || }t|| || }t|| d S )
Nr   r-  r   r	   r   z.The 'downcast' keyword in fillna is deprecatedrP   Fr  )r   r	   r   r-   r*   r    ri   r}   r   rg   r
   r   r   r  r  r.   )	r/   r0   r2   ro   rp   rg  r5   rW   rV   r   r   r   -test_td64arr_all_nat_div_object_dtype_numericH  s    zMTestTimedeltaArraylikeMulDivOps.test_td64arr_all_nat_div_object_dtype_numericN)3rY   rZ   r[   r  r  r  r  r  r  rS   r\   r]   r*   rf   r   r   re   uint64r  r   
RangeIndexr  r  r  r  r  r  r  r  r  r  r  filterwarningsr  r  r  r  r  r  r  r  r  r    r  r  r
   r  r  r  r  r  r   r   r   r   r    sv    



&"
#

 
 
"
"
8r  c                   @   s   e Zd Zdd ZdS )"TestTimedelta64ArrayLikeArithmeticc                 C   s   t tdddgd }tj|jd< t||}d}tjt	|d ||  W d    n1 s/w   Y  tjt	|d ||  W d    d S 1 sKw   Y  d S r  r  )r/   r  r0   r  r  r   r   r   test_td64arr_pow_invalidd  s   

"z;TestTimedelta64ArrayLikeArithmetic.test_td64arr_pow_invalidN)rY   rZ   r[   r  r   r   r   r   r  _  s    r  c                     sD   t d  tdddd } t fddtdD }t| | d S )Nr@   0sr*     r(   c                    s6   g | ]} t d | t dt|dd    qS )z0.033333333sz0.000000001srO   r   )r   r   r  r  	timestampr   r   r  z  s    z3test_add_timestamp_to_timedelta.<locals>.<listcomp>)r   r   r   re   r   r   r   r   r  r   test_add_timestamp_to_timedeltau  s   

r  )'r   r   numpyr*   rS   pandas.errorsr   r   pandasr   r   r   r   r	   r
   r   r   r   r   r   pandas._testing_testingr   pandas.core.arraysr   pandas.tests.arithmetic.commonr   r   r   r   r$   r%   rl   r~   r   r   r  r  r  r   r   r   r   <module>   s@   0	kg   A     D     H