o
    5c&                    @   s  d dl m Z mZ d dlZd dlZd dlmZmZ d dlZ	d dlm
Z
mZmZmZmZmZmZmZmZ d dlmZ d dlmZmZmZ d dlmZmZmZ dd Zd	d
 ZG dd dZ G dd dZ!G dd dZ"G dd dZ#G dd dZ$G dd dZ%G dd dZ&dd Z'dS )    )datetime	timedeltaN)OutOfBoundsDatetimePerformanceWarning)		DataFrameDatetimeIndexNaTSeries	TimedeltaTimedeltaIndex	Timestampoffsetstimedelta_range)Float64Index
Int64IndexUInt64Index)assert_invalid_addsub_typeassert_invalid_comparisonget_upcast_boxc                 C   s   t | }||ks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/gps/gps/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_name2   s   r%   c                   @   s^  e Zd Zdd Zejdeddeddedd	 e
dgdd Zejd	d
dededded  ed  ed edgdd Zejdeedededejedeejddddjeejdddeejdddejdddeejddddjejddddeg
dd Zdd ZdS )#TestTimedelta64ArrayLikeComparisonsc                 C   sz   |}|t j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    Indexr!   npndarrayr   to_numpyr   box_expectedassert_equal)selfbox_with_arrayr"   xboxtdiotherresexpectedr   r   r    test_compare_timedelta64_zerodimG   s   zDTestTimedelta64ArrayLikeComparisons.test_compare_timedelta64_zerodim	td_scalarr   days   c                 C   sr   |}|t jt jfvr|ntj}ttddtddg}t||}||k}tddg}t||}t	|| d S )Nr   r:   r   FT)
r    r+   r!   r,   r-   r	   r   r   r/   r0   )r1   r2   r9   r"   r3   seractualr7   r   r   r   !test_compare_timedeltalike_scalarW   s   zETestTimedelta64ArrayLikeComparisons.test_compare_timedeltalike_scalarinvalidl     x
Ii	 a
2021-01-01UTCr(   c                 C   s,   |}t ddd}t||}t||| d S N1 days
   r)   )r   r   r/   r   )r1   r2   r@   r"   rngr   r   r   r   test_td64_comparisons_invalidl   s   zATestTimedelta64ArrayLikeComparisons.test_td64_comparisons_invalidr5   rF   z
1970-01-01r*   tzr)   z
1971-01-01Dfreqr*   c                 C   s*   t dddj}t||}t||| d S rD   )r   _datar   r/   r   )r1   r5   r2   rG   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 )NrE      r)   r   r   r      rB   )FFFTFzDInvalid comparison between|Cannot compare type|not supported betweenmatch)
r   rN   r,   r!   r   r   assert_numpy_array_equalpytestraises	TypeError)r1   rG   r5   resultr7   msgr   r   r   test_td64arr_cmp_mixed_invalid   s(   



"zBTestTimedelta64ArrayLikeComparisons.test_td64arr_cmp_mixed_invalidN) __name__
__module____qualname__r8   rU   markparametrizer   r
   to_timedelta64r   Hourr?   r   nowto_datetime64to_pydatetimedater,   r!   rH   listrangearangeastypefloat32objectr    
date_rangeperiod_rangerO   rZ   r   r   r   r   r&   B   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 )NrE   3 days)FFT)TTF)FFFTTT)	r   r
   r   rk   ri   r,   r!   r   rT   )r1   r   leftrightlhsrhsrX   r7   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   rK   natr   srP   rQ   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   rT   )r1   rv   idx1rX   r7   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 )NrE   rF   r)   rQ   rp   F   )r   r,   r!   r   rT   rf   )r1   rG   rX   r7   expr   r   r   test_comparisons_coverage  s   z9TestTimedelta64ArrayComparisons.test_comparisons_coverage)r[   r\   r]   rU   r^   r_   rk   ru   r   r   r,   r!   timedelta64r{   r~   r   r   r   r   rn      s*    



%rn   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rM   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_equalrM   dividenegativeabsabsolute)r1   idxrX   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	j
||dd || }t dtdgdd}t	j
||dd || }tg dddd}t	j
||dd || }tdtdgdd}t	
|| d S )NrE   2 daysfoor   20130101rQ   barr*   r   z0cannot subtract a datelike from a TimedeltaArrayrR   z#unsupported operand type\(s\) for -z((bad|unsupported) operand type for unary0 days-1 days-2 daysr   rE   r   r   F)check_namesr   20121231r   20130102rK   r   r   20121230)r   r   r    rl   r
   r   rU   rV   rW   r   r   r   )r1   r4   dtitddtrY   rX   r7   r   r   r   test_subtraction_ops9  sN   




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}t||}t|| d S )Nr   rQ   r)   z
US/EasternCETrE   c                 S   s   | |ksJ t | tsJ d S N)r   r
   rX   r7   r   r   r   _checkv  s   zNTestTimedelta64ArithmeticUnsorted.test_subtraction_ops_with_tz.<locals>._checkr   z<Cannot subtract tz-naive and tz-aware datetime-like objects.rR   z6can't subtract offset-naive and offset-aware datetimesz%Cannot subtract tz-naive and tz-awarer   r   r   rJ   )r    rl   r   r/   r   rd   tz_localizer
   rU   rV   rW   r   r0   r   )r1   r2   r   tsr   dti_tzts_tzts_tz2dt_tzr   r   rX   r7   rY   r   r   r   test_subtraction_ops_with_tzh  s   











z>TestTimedelta64ArithmeticUnsorted.test_subtraction_ops_with_tzc                 C   s   t dtdgdd}tjdddd}|| }t d	td	gdd}t|| || }t dtd
gdd}t|| || }tdtdg}t|| d S )NrE   r   r   r   r   rQ   r   r   r   4 daysr   )r   r   r    rl   r   r   r   )r1   r4   r   rX   r7   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 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  W d    n1 sw   Y  || }td	tdg}t|| || }td	tdg}t|| || }td	}||ksJ || }td	}||ksJ d S )NrE   r   r   r   r   rQ   r   r   r   20130103ro   z$cannot add indices of unequal lengthrR   r   r   3Addition/subtraction of integers and integer-arraysr   r   rQ   20130105)r   r   r    rl   r
   r   r   r   r   rU   rV   
ValueErrorrW   r   )r1   r4   r   r   r   rX   r7   rY   r   r   r   test_addition_ops  sN   z3TestTimedelta64ArithmeticUnsorted.test_addition_opsrM   rK   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*   rM   r   inferrK   )r    rl   r   
_with_freqr   r   tseriesr   DayrM   BusinessDay)r1   rM   indexshiftedbackr7   rX   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    rl   r	   r   ra   r   r,   r   rM   r   r   r   )r1   rG   rx   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 )NrE   r   z
1999-12-31rQ   rK   r   )r   r   r!   r    rl   r   r   )r1   r4   tdar   rX   r7   r   r   r   test_tda_add_sub_index.  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	|| d S )N
2016-01-01rQ   rI   )
r    rl   r   r   r/   assert_produces_warningr   ri   rk   r0   )	r1   r2   tz_naive_fixturer"   r   r4   r   r5   rX   r   r   r   test_tda_add_dt64_object_arrayA  s   
z@TestTimedelta64ArithmeticUnsorted.test_tda_add_dt64_object_arrayc                 C   sf   t dd}t dddd}t||}t||}|}||7 }t|| |tjur1t|| d S d S NrE   10 daysz1 days 02:00:00z10 days 02:00:00rK   rM   r   r   r/   r0   r    r+   r1   	two_hoursr2   rG   r7   orig_rngr   r   r   test_tdi_iadd_timedeltalikeS  s   

z=TestTimedelta64ArithmeticUnsorted.test_tdi_iadd_timedeltalikec                 C   sb   t dd}t dd}t||}t||}|}||8 }t|| |tjur/t|| d S d S NrE   r   z0 days 22:00:00z9 days 22:00:00r   r   r   r   r   test_tdi_isub_timedeltalikeb  s   


z=TestTimedelta64ArithmeticUnsorted.test_tdi_isub_timedeltalikec                 C   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   rP   2Dr   )r*   rM   r   r   r   r   r   4DrE   rK   z-2D)r   rE   r   rE   r   r   )r   rM   r   r   r   r   )r1   rG   rX   r}   r   r   r   test_tdi_ops_attributess  s8   z9TestTimedelta64ArithmeticUnsorted.test_tdi_ops_attributesN)r[   r\   r]   r   r   r   r   r   rU   r^   r_   r   r   r   r   r   r   r   r   r   r   r   r     s    /U8
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   rd   rc   ri   r   ilocr   )	r1   r2   r   tdinattdobjr   ts_variantsvariantr6   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10155196800000000000rR   iT rK   2000r   zOverflow in int64 additionrE   z5 days1 hoursz	7 secondsz4 hoursr   z5 hours)rU   rV   r   r    r   r   r   valueOverflowErrorr
   r   r   r   )r1   _NaTrY   r}   rX   r   r   r   test_tdi_add_overflow  sH   

z*TestAddSubNaTMasking.test_tdi_add_overflowN)r[   r\   r]   rU   r^   r_   r   r   r   r   r   r   r     s    
r   c                	   @   s  e Zd Zdd Zdd Zdd Zejde	e
ejgdd	 Zd
d Zdd Zdd Zejd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-d. Zejd/ed0egd1d2 Z d3d4 Z!d5d6 Z"d7d8 Z#d9d: Z$d;d< Z%ejd=ejejegd>d? Z&d@dA Z'dS )BTestTimedeltaArraylikeAddSubOpsc                 C   s  t tdg}t tdg}d}tjt|d t ttg W d    n1 s,w   Y  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 d    n1 shw   Y  ttj	gt j}t d}t d}	t d}
|| }||	ksJ |	| }||ksJ || }t
|| || }t
|| || }t
|| || }t
|| || }t
|| | | }t
|| ||
 }t
|| |
| }t
|| ||
 }t
|| |
 | }t
|| d}tjt|d |tj  W d    n	1 sw   Y  tjt|d tj|  W d    n	1 s7w   Y  tjt|d |tj  W d    n	1 sTw   Y  tjt|d tj |  W d    n	1 srw   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 s	w   Y  tjt|d |tj  W d    n	1 s&w   Y  |t }t
|| |t }t
|| d S )
Nz00:00:01z00:00:02z?dtype datetime64\[ns\] cannot be converted to timedelta64\[ns\]rR   m8[ns]r   r   unsupported operand typez8cannot subtract a datelike from|unsupported operand type)r    r   r	   rU   rV   rW   r   r   applyr   r   assert_series_equalr,   nanassert_frame_equal)r1   s1s2rY   sndf1df2dfnscalar1scalar2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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}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sKJ d S )Nz2012-1-1rQ   rK   r   z2012-1-2g  S$Bint64timedelta64[ns]Ac                 S   s   g | ]}t |d qS )r:   r   .0ir   r   r   
<listcomp>S  s    zNTestTimedeltaArraylikeAddSubOps.test_operators_timedelta64.<locals>.<listcomp>zM8[ns]201112302012010120120103r   i  r   c                 S   s   g | ]	}t d | dqS )i  r:   r  r  r   r   r   r  l  s    r   r(   r:   rP   minutessecondsr   )r    rl   r	   r   ri   r   r   r   r   rg   shiftmaxr   r   r   r   r,   r   )r1   v1v2rsxpdfr   rX   maxaresultbvaluesr7   dresultar   r   r   r   test_operators_timedelta64I  sV   
z:TestTimedeltaArraylikeAddSubOps.test_operators_timedelta64c                 C   s  t ttdg}t ttgdd}t tgdd}t|t | tt | | t|| | t| | | t|t | tt| | t|| | t|| | t|t | tt| | t|| | t|| | t|t | tt| | t|| | t|| | t|d | td| | t|d | td| | t|d t ttdg td| t ttdg t|tj | ttj| | t|d t ttd	g t|d
 t ttd	g t|tj | d S )N1sr  r         ?r         ?z1.5sr   z0.5s       @)r	   r   r
   r   r   r,   r   )r1   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d 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 d    d S 1 sw   Y  d S )Nz
2012-01-01r   ry   rQ   r)   z
2012-01-02rI   z
2011-12-31z-1D)r*   rM   rJ   zcannot subtract a datelikerR   )r   r   rd   r,   
datetime64rc   r   r    rl   r   r/   r0   rU   rV   rW   )r1   r.  r2   r   rJ   	dt_scalarr   r4   r7   tdarr	expected2rY   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g d}t||}t||}t|| | t|| | d S )Nr   ry   rQ   r)   )r   r   r   )r,   r/  r   r   r   r/   r0   )r1   r2   r5   r4   r7   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   rQ   r)   -1 Dayzcannot subtract a datelike fromrR   )r    rl   r   r"  r   r   r/   rU   rV   rW   r0   )r1   r2   r   r4   dtarrr7   rY   rX   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   rQ   r)   r6  )r    rl   r   r"  r   r   r/   r0   )r1   r2   r   r4   r7  r7   rX   r   r   r   test_td64arr_add_dt64_array"  s   z;TestTimedeltaArraylikeAddSubOps.test_td64arr_add_dt64_arraypi_freq)rK   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 typerR   )r   r   	to_periodr   r/   rU   rV   rW   )
r1   r2   box_with_array2r=  r:  r4   r   piperrY   r   r   r   test_td64arr_sub_periodlike3  s   


"z;TestTimedeltaArraylikeAddSubOps.test_td64arr_sub_periodliker5   rA   r   r(  r   c                 C   s*   t g ddd}t||}t|| d S N59 DaysrE  r   r   r   )r	   r   r/   r   )r1   r2   r5   r4  r1  r   r   r   *test_td64arr_addsub_numeric_scalar_invalidH  s   zJTestTimedeltaArraylikeAddSubOps.test_td64arr_addsub_numeric_scalar_invalidvecr   c                 C   
   t | jS r   typer[   r   r   r   r   <lambda>b     
 z(TestTimedeltaArraylikeAddSubOps.<lambda>idsc                 C   s4   t g ddd}t||}||}t|| d S rC  )r	   r   r/   ri   r   )r1   r2   rG  any_real_numpy_dtyper4  r1  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   rF   rL    Addition/subtraction of integersrR   )r   r   r/   r   rU   rV   rW   )r1   r2   onerG   r1  rY   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 )NrS  r   rQ   rL   )r(   rQ   r   r   )r    r!   r,   r-   r   r   r/   r   )r1   r2   r"   r3   rG   r1  r5   rY   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      rT  )r    r!   r,   r-   r   r   r/   r   )r1   r2   r"   r3   r4   r1  r5   rY   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   rQ   r)   r   r   r   )r    rl   r  r"  r   r/   r0   )	r1   r2   r"   r   r4   r1  r7   rX   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   ry   r   r   rQ   )hoursr(   r   )r;   r^  r  )r%   r   r   r   r    r!   r,   r	   r
   r/   r0   r   )	r1   r2   r#   r"   r$   r4   r=   r7   rX   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/   r0   )r1   r2   rb  r"   r4   r7   r   rX   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/   r0   r1   r   r2   r"   rG   r7   rX   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   rd  re  r   r   r   test_td64arr_sub_timedeltalike  s   

z>TestTimedeltaArraylikeAddSubOps.test_td64arr_sub_timedeltalikec           
         s  |}t ||}tddg|d dtjtjddtjddg|d d |tjtj	fv r1t
	 n  t fdd	ttD d
|d}t fdd	ttD d
|d}t|t||}t||}tt   }W d    n1 sw   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  rk  r5   r4   r   r   r        zUTestTimedeltaArraylikeAddSubOps.test_td64arr_add_sub_offset_index.<locals>.<listcomp>r   r   c                       g | ]
}|  |  qS r   r   rn  ro  r   r   r    rp  )r%   r   r    r+   r   ra   Minuter   r   r!   r,   rg   lenr/   r   r   r0   )
r1   r#   r2   r"   r$   r7   r\  r6   res2res_subr   ro  r   !test_td64arr_add_sub_offset_index  s4   
&


zATestTimedeltaArraylikeAddSubOps.test_td64arr_add_sub_offset_indexc                    sX  |}t ddgttjddtjddg t  fddttD dd	}t  fd
dttD dd	}t	|t	||}t
t   }W d    n1 s[w   Y  t|| t
t   }W d    n1 szw   Y  t|| t	||}t
t   }W d    n1 sw   Y  t|| d S )Nrh  ri  r   rj  rl  c                    rm  r   r   rn  ro  r   r   r  ,  rp  zUTestTimedeltaArraylikeAddSubOps.test_td64arr_add_sub_offset_array.<locals>.<listcomp>r   r   c                    rq  r   r   rn  ro  r   r   r  /  rp  )r   r,   r!   r   ra   rr  rg   rs  r   r/   r   r   r0   )r1   r2   r"   r7   r\  r6   rt  ru  r   ro  r   !test_td64arr_add_sub_offset_array%  s0   


zATestTimedeltaArraylikeAddSubOps.test_td64arr_add_sub_offset_arrayc                    s  |}|t j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 |d}t|}t||}tt |  }W d    n1 scw   Y  t|| tt  | }	W d    n1 sw   Y  t|	| t fd
d	ttD |d}
t|
|}
tt |  }W d    n1 sw   Y  t||
 d S )Nrh  ri  r   r   r   rj  rl  c                    rm  r   r   rn  ro  r   r   r  K  rp  zSTestTimedeltaArraylikeAddSubOps.test_td64arr_with_offset_series.<locals>.<listcomp>c                    rq  r   r   rn  ro  r   r   r  W  rp  )r    r+   r   r   r!   r	   r%   r   r   ra   rr  rg   rs  r/   r   r   r0   )r1   r#   r2   r"   box2r$   expected_addr   r6   rt  r\  res3r   ro  r   test_td64arr_with_offset_seriesB  s,   
$$

$
z?TestTimedeltaArraylikeAddSubOps.test_td64arr_with_offset_seriesoboxc              	   C   s  t ddg}t||}|t tjddg}d}tjt|d! t	t
 ||  W 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 )Nrh  ri  r   rj  z/has incorrect type|cannot add the type MonthEndrR   )r   r   r/   r   MonthEndr   rU   rV   rW   r   r   )r1   r|  r2   r4   anchoredrY   r   r   r   -test_td64arr_addsub_anchored_offset_arraylike^  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|| 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|| d S )Nry   rQ   rK   r   r   r:   r   z
2000-01-04r(   z
2000-01-07z3unsupported operand type|cannot subtract a datelikerR   r   z
2000-01-01)r    r!   r,   r-   r   r   r/   r
   r   r   r   r   r   r+   r0   rU   rV   rW   )
r1   r2   r"   r3   r4   r1  r5   rX   r7   rY   r   r   r   !test_td64arr_add_sub_object_arrayy  s4    


zATestTimedeltaArraylikeAddSubOps.test_td64arr_add_sub_object_array)(r[   r\   r]   r
  r%  r-  rU   r^   r_   r   r   r,   r/  r3  r5  r8  r9  rB  r!   rF  r    r+   r	   r   rR  rV  rW  r[  r]  ra  r   r   rc  rf  rg  rv  rw  r{  r  r  r   r   r   r   r     s\    jBU
#



	#
 
r   c                
   @   s2  e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd Ze	j
jdeddeeddeeddeeddeddgdd ddd Zdd Zdd Zdd Zdd Ze	j
d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d-d. Zd/d0 Z d1d2 Z!d3d4 Z"d5d6 Z#d7d8 Z$d9d: Z%d;d< Z&e	j
d=d>d?e'd>e'd?gd@dA Z(e	j
d=d>d?e'd>e'd?gdBdC Z)e	j
jdDe'g dEe*g dEe+g dEgdFd ddGdH Z,e	j
jdDe'g dEe*g dEe+g dEgdId ddJdK Z-dLdM Z.dNdO Z/dPdQ Z0dRS )STestTimedeltaArraylikeMulDivOpsc                 C   sJ   t tjddd}t||}|d }t|| d| }t|| d S )NrP   r  r   r   )r   r,   rh   r   r/   r0   r1   r2   r   rX   r   r   r   test_td64arr_mul_int  s   z4TestTimedeltaArraylikeMulDivOps.test_td64arr_mul_intc                 C   sZ   t dddd}t||}d}tjt|d ||  W d    d S 1 s&w   Y  d S )NrE   r   r   r   z@argument must be an integer|cannot use operands with types dtyperR   )r   r   r/   rU   rV   rW   )r1   r   r2   rG   rY   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 )NrP   r  r   )r,   rh   r   r   r/   r!   r0   r1   r2   rng5r   r7   rX   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 NrP   r  r   r   )r,   rh   r   r   r/   r0   r  r   r   r   test_tdi_mul_int_array  s   z6TestTimedeltaArraylikeMulDivOps.test_tdi_mul_int_arrayc                 C   s   |}|t jtjt jf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,   rh   r/   r0   )r1   r2   r"   r3   r   r7   rX   r   r   r   test_tdi_mul_int_series  s   z7TestTimedeltaArraylikeMulDivOps.test_tdi_mul_int_seriesc                 C   s   |}|t j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 )NrP   r  r   float64r'  r  )r1   r2   r"   r3   r   rng5fr7   rX   r   r   r   test_tdi_mul_float_series  s   z9TestTimedeltaArraylikeMulDivOps.test_tdi_mul_float_seriesr5   r      c                 C   rH  r   rI  rK  r   r   r   rL    rM  z(TestTimedeltaArraylikeMulDivOps.<lambda>rN  c           	      C   sp   |}t dgd }tddd }t||}t||}t||}|| }t|| || }t|| d S )NrX  rF   rE   r   )r   r   r   r   r/   r   r0   )	r1   r5   r2   r"   r4   r7   r3   rX   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 )NrE   r   r   r   r   rR   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/   rU   rV   rW   r   r,   r/  join)r1   r2   rG   dt64natrY   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 )NrE   r   r   rF   )
r    r!   r,   r-   r   r   r/   r   r   r0   )r1   r2   r"   r3   rG   r5   r7   rX   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 )NrP   r  r   r   Cannot dividerR   	r   r,   rh   r   r/   r0   rU   rV   rW   r  r   r   r   test_td64arr_div_int,  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 dd}t||}t||}|| }t	|| || }d| }t	|| d S )NrE   r   r   r   rF   r      )
r    r!   r,   r-   r   r   rh   r   r/   r0   r1   r   r2   r"   r3   rG   r7   rX   r   r   r   test_td64arr_div_tdlike_scalar7  s   z>TestTimedeltaArraylikeMulDivOps.test_td64arr_div_tdlike_scalarm)r   rQ   rF   unit)rK   hr  rx   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;   r:   rQ   r   c                    s   g | ]
}|t   qS r   )r,   r   r  r   r  r  r   r   r  U  rp  zPTestTimedeltaArraylikeMulDivOps.test_td64arr_div_td64_scalar.<locals>.<listcomp>c                    s    g | ]}t t | qS r   )r
   r,   r   r  r  r   r   r  [  s     )r    r!   r,   r-   r	   r
   r   r   r/   r   r0   )
r1   r  r  r2   r"   r3   r=   flatr7   rX   r   r  r   test_td64arr_div_td64_scalarI  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dd}t	||}t	||}|| }t
|| || }d| }t
|| d S )NrE   r   r   r   r  r<   r   )r    r!   r,   r-   r   r   r   r   r   r/   r0   r  r   r   r   'test_td64arr_div_tdlike_scalar_with_nat`  s   zGTestTimedeltaArraylikeMulDivOps.test_td64arr_div_tdlike_scalar_with_natc                 C   s0  |}|t ju r
tjn|}tdtdg}tdtjdg}t	||}t	||}tjg ddd}|| }t
|| |t	|| }t
|| ||t }t
|| |t| }t
|| d| }|| }t
|| t	||| }t
|| |t| }t
|| t|| }t
|| d S )	NrE   r   r  r<   )r   r(   r   zm8[h]r   r   )r    r!   r,   r-   r   r   r   r   r   r/   r0   ri   rk   rf   )r1   r2   r"   r3   rG   r7   r5   rX   r   r   r   test_td64arr_div_td64_ndarrayq  s0   z=TestTimedeltaArraylikeMulDivOps.test_td64arr_div_td64_ndarrayc              
   C   s   t dtdg}g d}t||}d}||d d fD ]F}|t|t|fD ]8}tj	t
|d ||  W d    n1 s@w   Y  tj	t
|d ||  W d    n1 s[w   Y  q(qd S )NrE   r   )r   r   rQ   r(   z0Cannot divide vectors|Unable to coerce to Seriesr   rR   )r   r   r   r/   r,   r!   r    r+   rU   rV   r   )r1   r2   rG   
mismatchedrY   r   r5   r   r   r   test_tdarr_div_length_mismatch  s   

z>TestTimedeltaArraylikeMulDivOps.test_tdarr_div_length_mismatchc           	      C   s   |}|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|| t|| }t|| d S )	N)  zd    r  r   )r  r  Nr'  r   r   r  )r    r!   r,   r-   r	   r   r/   r   r  r   ri   r0   asarray)	r1   r2   using_array_managerr"   r3   rq   rr   r7   rX   r   r   r   &test_td64arr_floordiv_td64arr_with_nat  s   zFTestTimedeltaArraylikeMulDivOps.test_td64arr_floordiv_td64arr_with_natc           	      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   F)	transposer   r   )r    r!   r,   r-   r
   r	   r   r   r/   r   r0   __rfloordiv__)	r1   r2   	scalar_tdr"   r3   r   td1r7   rX   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 )NrP   r  r   r   z@floor_divide cannot use operands|Cannot divide int by Timedelta*rR   r  )r1   r2   r   rX   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 r1t|tjr1t	}t
| t||}W d    n1 sFw   Y  t|d | t|d ||  d S )NrX  9 days)rX  z2 Days0 DaysrQ   r   r   )r   r   r/   r   r0   r   r   r    
DateOffsetr   r   divmod)r1   r2   
three_daysr4   r1  r7   rX   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 nsrF   r)   z0 nsrP   r   zCannot divide int byrR   r   r   )	r   r   r/   r   r0   rU   rV   rW   r  )r1   r2   r4   r1  r7   rX   rY   r   r   r   test_td64arr_mod_int  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 )NrX  r  )r  rX  r  z3 Days   r   r   )r   r   r/   r   r0   r  )r1   r2   r  r4   r1  r7   rX   r   r   r   test_td64arr_rmod_tdscalar  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 NrP   rQ   r  r   z(operate|unsupported|cannot|not supportedrR   
r	   r   r,   r   r   r   r/   rU   rV   rW   )r1   r2   r  r  r  r   r   r   !test_td64arr_mul_tdscalar_invalid&  s   

"zATestTimedeltaArraylikeMulDivOps.test_td64arr_mul_tdscalar_invalidc                 C   s   t tjddd}t||}d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 )
NrP   r  r   r  )$cannot use operands with types dtypez$Cannot multiply with unequal lengthszUnable to coerce to SeriesrR   rQ   r   r   )r   r,   rh   r   r/   r  rU   rV   rW   r   r!   r1   r2   r   rY   r   r   r   !test_td64arr_mul_too_short_raises5  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 )NrP   r  r   r  rR   )r   r,   rh   r   r/   rU   rV   rW   r  r   r   r   test_td64arr_mul_td64arr_raisesE  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 )NrD  r   r   )-59 Daysr  r   r  )118 Daysr  r   r   )r	   r   r/   r0   )r1   r2   rU  r4  r7   rX   r   r   r   test_td64arr_mul_numeric_scalarO  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 NrD  r   r   )29.5Dr  r   r  r  rR   r	   r   r/   r0   rU   rV   rW   r1   r2   r  r4  r7   rX   r   r   r   test_td64arr_div_numeric_scalare  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_scalaru  s   
"zDTestTimedeltaArraylikeMulDivOps.test_td64arr_floordiv_numeric_scalarrQ  )   r  (   c                 C   rH  r   rI  rK  r   r   r   rL    rM  c                 C   sx   t g ddd}||}t g ddd}t||}t||}t||}|| }t|| || }t|| d S )NrD  r   r   )z	1180 Daysz	1770 Daysr   r  )r	   ri   r   r/   r   r0   )r1   r2   rQ  rP  r4  r7   r3   rX   r   r   r   test_td64arr_rmul_numeric_array  s   

z?TestTimedeltaArraylikeMulDivOps.test_td64arr_rmul_numeric_arrayc                 C   rH  r   rI  rK  r   r   r   rL    rM  c                    sj  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 rl fd	d
ttD }n fdd
tt D }t|}t||}t|dksJ t|| tjt	|d t
   W d    d S 1 sw   Y  d S )NrD  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  rR   c                    s"   g | ]} j d |f |  qS )r   )r   rn  r4  rQ  r   r   r    s   " zRTestTimedeltaArraylikeMulDivOps.test_td64arr_div_numeric_array.<locals>.<listcomp>c                    s   g | ]
} | |  qS r   r   rn  r  r   r   r    rp  )r	   ri   r   r/   r   r0   r  rU   rV   rW   rk   r   rg   rs  r    r+   r   )r1   r2   rQ  rP  r7   r3   rX   r  r   r  r   test_td64arr_div_numeric_array  s2   

	

"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   rQ   r(   r   r   r   )r  r  r  9days16daysr  )	r%   r   r	   r,   r  r   r/   r   r0   )
r1   r2   r#   r"   r$   r4   r=   r7   r3   rX   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(  rQ   g      @r  g      @r   r  r   c                    s   g | ]
}|  |  qS r   r   rn  r=   r4   r   r   r    rp  zRTestTimedeltaArraylikeMulDivOps.test_float_series_rdiv_td64arr.<locals>.<listcomp>r  )r   r	   r,   r  r   r   r    r!   rg   rs  r/   r   __rtruediv__r   NotImplementedr0   )r1   r2   r#   r"   xnamer7   r3   rX   r   r  r   test_float_series_rdiv_td64arr  s$    

z>TestTimedeltaArraylikeMulDivOps.test_float_series_rdiv_td64arrc                 C   sV   t ttg}t||}tjddgtd}|| }t|| || }t|| d S )Nr   r)  r   )r   r   r   r/   r,   r!   rk   r0   )r1   r2   r4   rq   rr   rX   r   r   r   -test_td64arr_all_nat_div_object_dtype_numeric  s   zMTestTimedeltaArraylikeMulDivOps.test_td64arr_all_nat_div_object_dtype_numericN)1r[   r\   r]   r  r  r  r  r  r  rU   r^   r_   r,   rh   r   rg   r   r   r    
RangeIndexr  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r!   r  r  r+   r	   r  r  r  r  r  r   r   r   r   r    sr    



&
 
 
$
$
,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  )r1   r  r2   r  r  r   r   r   test_td64arr_pow_invalid  s   

"z;TestTimedelta64ArrayLikeArithmetic.test_td64arr_pow_invalidN)r[   r\   r]   r  r   r   r   r   r    s    r  c                     sD   t d  tdddd } t fddtdD }t| | d S )NrB   0sr&     r)   c                    s6   g | ]} t d | t dt|dd    qS )z0.033333333sz0.000000001srQ   r   )r    r   r  r  	timestampr   r   r  1  s    z3test_add_timestamp_to_timedelta.<locals>.<listcomp>)r   r   r   rg   r   r   r   r   r  r   test_add_timestamp_to_timedelta,  s   

r  )(r   r   numpyr,   rU   pandas.errorsr   r   pandasr    r   r   r   r	   r
   r   r   r   r   pandas._testing_testingr   pandas.core.apir   r   r   pandas.tests.arithmetic.commonr   r   r   r   r%   r&   rn   r   r   r   r  r  r  r   r   r   r   <module>   s@   ,	mg   A     C     