a
    é´«j?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)ÚtmZ	get_dtype)ÚobjZexpected_dtypeÚdtype© r   úg/var/www/html/laksyashrimp/venv/lib/python3.9/site-packages/pandas/tests/arithmetic/test_timedelta64.pyÚassert_dtype&   s    
r   c                 C   s8   | t u r|d }n"| tjtjfv r,|d }n|d }|S )Nr   é   é   )r   r   Úto_arrayÚpdÚarray)ÚboxÚnamesÚexnamer   r   r   Úget_expected_name/   s    

r"   c                   @   s^  e Zd Zdd„ Zej dedd�edd�edd� 	¡ e
 d¡g¡dd„ ƒZej d	d
dedƒedƒ d¡edƒ ¡  ¡ edƒ ¡  ¡ edƒ ¡ e d¡g¡dd„ ƒZej deedƒƒe d¡e d¡ ej¡e d¡ e¡ejdddd�je ejddd�¡eejddd�ƒejddd� e¡ejdddd�jejdddd� e¡g
¡dd„ ƒZdd„ ZdS )Ú#TestTimedelta64ArrayLikeComparisonsc                 C   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   r6   r   FT)
r   r   r   r(   r)   r
   r   r   r+   r,   )r-   r.   r5   r   r/   ÚserÚactualr3   r   r   r   Ú!test_compare_timedeltalike_scalarR   s    zETestTimedelta64ArrayLikeComparisons.test_compare_timedeltalike_scalarÚinvalidl     x
Ii	 Úaú
2021-01-01ÚUTCr%   c                 C   s,   |}t ddd�}t ||¡}t|||ƒ d S ©Nú1 daysé
   r&   )r   r   r+   r   )r-   r.   r<   r   Úrngr   r   r   r   Útest_td64_comparisons_invalidg   s    zATestTimedelta64ArrayLikeComparisons.test_td64_comparisons_invalidr1   rB   z
1970-01-01©r'   Útzr&   z
1971-01-01ÚD©Úfreqr'   c                 C   s*   t ddd�j}t ||¡}t|||ƒ d S r@   )r   Ú_datar   r+   r   )r-   r1   r.   rC   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 s’0    Y  tjt	|d�� ||k W d   ƒ n1 sÈ0    Y  tjt	|d�� ||k W d   ƒ n1 sþ0    Y  tjt	|d�� ||k W d   ƒ n1 �s60    Y  d S )NrA   é   r&   r   r   r   é   r>   )FFFTFzDInvalid comparison between|Cannot compare type|not supported between©Úmatch)
r   rJ   r(   r   r   r   Úassert_numpy_array_equalÚpytestÚraisesÚ	TypeError)r-   rC   r1   Úresultr3   Úmsgr   r   r   Útest_td64arr_cmp_mixed_invalid”   s     &&&zBTestTimedelta64ArrayLikeComparisons.test_td64arr_cmp_mixed_invalidN) Ú__name__Ú
__module__Ú__qualname__r4   rQ   ÚmarkÚparametrizer   r   Zto_timedelta64r   ÚHourr;   r   ÚnowÚto_datetime64Úto_pydatetimeÚdater(   r   rD   ÚlistÚrangeÚarangeÚastypeZfloat32Úobjectr   Ú
date_rangeZperiod_rangerK   rV   r   r   r   r   r#   ?   sN   üþ	

øþ
	
öþ
r#   c                   @   s®   e Zd Zej ddeg¡dd„ ƒZej dedde	e	ddgƒe
 e
 d	d
¡e
 d	d
¡e
 d¡e
 d¡e
 dd
¡e
 d	d¡ e
 dd
¡e
 dd¡ g¡g¡dd„ ƒZdd„ ZdS )ÚTestTimedelta64ArrayComparisonsr   Nc                 C   s"  t tdƒttdƒgƒ}t tttdƒgƒ}|| }}|tu rP| 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 )NrA   ú3 days)FFT)TTF)FFF©TTT)	r   r   r	   re   rd   r(   r   r   rP   )r-   r   ÚleftÚrightÚlhsÚrhsrT   r3   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   rG   Znatr   ÚsrL   rM   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   rP   )r-   ro   Zidx1rT   r3   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 )NrA   rB   r&   rM   ri   Fé   )r   r(   r   r   rP   ra   )r-   rC   rT   r3   Úexpr   r   r   Útest_comparisons_coverage  s    z9TestTimedelta64ArrayComparisons.test_comparisons_coverage)rW   rX   rY   rQ   rZ   r[   re   rn   r   r	   r(   r   Útimedelta64rr   ru   r   r   r   r   rg   ª   s(   
ÿ

úÿüþ
%rg   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   sx  t g d¢ddd�}|d t |d¡fD ]>}t|t ƒs8J ‚t g d¢ddd�}t ||¡ |jdks&J ‚q&|d t |d¡fD ]>}t|t ƒsŒJ ‚t g d¢d	dd�}t ||¡ |jd	kszJ ‚qz| t |¡fD ]>}t|t ƒsÜJ ‚t g d
¢ddd�}t ||¡ |jdksÊJ ‚qÊt g d¢d	dd�}t	|ƒt 
|¡fD ]D}t|t ƒ�sBJ ‚t g d¢d dd�}t ||¡ |jd u �s.J ‚�q.d S )N)r$   Ú4hZ6hÚ8hZ10hr$   Úx©rI   Únamer   )rx   ry   Z12hZ16hZ20hrx   )Ú1hr$   Z3hrx   Z5hÚh)ú-2hz-4hz-6hz-8hz-10hr   )r   z-1hÚ0hr}   r$   )r$   r}   r€   r}   r$   )r   r(   ÚmultiplyÚ
isinstancer   Úassert_index_equalrI   ÚdivideÚnegativeÚabsÚabsolute)r-   ÚidxrT   rt   r   r   r   Útest_ufunc_coercions  s0    
ÿ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 sb0    Y  tjt|d
�� ||  W d   ƒ n1 s˜0    Y  d}tjt|d
�� ||  W d   ƒ n1 sÒ0    Y  d}tjt|d
�� ||  W d   ƒ n1 �s0    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 )NrA   ú2 daysÚfoo©r|   Ú20130101rM   Úbar©r'   r|   z0cannot subtract a datelike from a TimedeltaArrayrN   z#unsupported operand type\(s\) for -z((bad|unsupported) operand type for unary©ú0 daysú-1 daysú-2 days©r‘   rA   rŠ   r‘   r’   ©Ú20121231r�   Ú20130102úM8[ns]rG   )r   rI   r|   r–   Z20121230©r   r|   )r   r	   r   rf   r   r   rQ   rR   rS   r   rƒ   r   )r-   r0   ÚdtiÚtdÚdtrU   rT   r3   r   r   r   Útest_subtraction_ops4  sJ    &&&(ÿÿz6TestTimedelta64ArithmeticUnsorted.test_subtraction_opsc                 C   s¢  t jddd�}t ||¡}tdƒ}| ¡ }t jddd� d¡}t ||¡}tdƒ d¡}tdƒ d¡}| ¡ }tdƒ}	dd„ }
|| }td	ƒ}|
||ƒ || }td	ƒ}|
||ƒ || }td	ƒ}|
||ƒ d
}tj	t
|d�� ||  W d   ƒ n1 sü0    Y  d}tj	t
|d�� ||  W d   ƒ n1 �s80    Y  d}tj	t
|d�� ||  W d   ƒ n1 �st0    Y  d
}tj	t
|d�� ||  W d   ƒ n1 �s°0    Y  tj	t
|d�� ||  W d   ƒ n1 �sè0    Y  tj	t
|d�� ||  W d   ƒ n1 �s 0    Y  d}tj	t
|d�� ||  W d   ƒ n1 �s\0    Y  tj	t
|d�� ||  W d   ƒ n1 �s”0    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�   rM   r&   z
US/EasternZCETrA   c                 S   s   | |ksJ ‚t | tƒsJ ‚d S ©N)r‚   r   ©rT   r3   r   r   r   Ú_checkr  s    zNTestTimedelta64ArithmeticUnsorted.test_subtraction_ops_with_tz.<locals>._checkr‘   z<Cannot subtract tz-naive and tz-aware datetime-like objects.rN   z6can't subtract offset-naive and offset-aware datetimesz%Cannot subtract tz-naive and tz-awarer”   r�   r•   ©rF   Úns)r   rf   r   r+   r   r_   Ztz_localizer   rQ   rR   rS   r   r,   r   Zas_unit)r-   r.   rš   Útsrœ   Zdti_tzZts_tzZts_tz2Zdt_tzr›   r    rT   r3   rU   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 )NrA   rŠ   r‹   rŒ   r�   rM   rŽ   r�   r‘   ú4 daysr–   r˜   ©r   )r   r	   r   rf   r   rƒ   r   )r-   r0   rš   rT   r3   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 �s0    Y  t	j
t|d��  |dd… |  W d   ƒ n1 �sH0    Y  d}t	j
t|d��& |tg d¢tjd�  W d   ƒ n1 �s’0    Y  || }td	tdgdd�}t ||¡ || }td	tdgdd�}t ||¡ || }td	ƒ}||k�sJ ‚|| }td	ƒ}||k�s$J ‚d S )NrA   rŠ   r‹   rŒ   r�   rM   rŽ   r�   r—   Z20130103r˜   r™   rh   z$cannot add indices of unequal lengthrN   r   r   ú3Addition/subtraction of integers and integer-arrays©r   r   rM   r¦   Z20130105)r   r	   r   rf   r   r   r   r   rƒ   rQ   rR   Ú
ValueErrorrS   r   r(   Úint64)r-   r0   rš   r›   rœ   rT   r3   rU   r   r   r   Útest_addition_opsÌ  sP    ÿÿ006z3TestTimedelta64ArithmeticUnsorted.test_addition_opsrI   rG   ÚBc                 C   sæ   t jdd|d�}|tdƒ }|tdƒ }| d¡}t ||¡ |dkr€t jj d¡}|j	|ksbJ ‚|j	|kspJ ‚|j	|ks¾J ‚n>|j	t jj 
d¡ks˜J ‚|j	d u s¦J ‚|j	t jj 
d¡ks¾J ‚|tdƒ }|tdƒ }t ||¡ d S )Nz1/1/2000é2   ©r'   rI   r   éÿÿÿÿÚinferrG   )r   rf   r   Ú
_with_freqr   rƒ   Ztseriesr   ÚDayrI   ZBusinessDay)r-   rI   ÚindexZshiftedÚbackr3   rT   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sdJ ‚| 	d ¡}t
 ||¡ |j|jksŠJ ‚| 	d ¡}t
 ||¡ d S )NZ2013Z2014r   i áõ)r   rf   r
   r   r\   r   r(   rv   rI   r²   r   rƒ   )r-   rC   rp   Zresult1Zresult2Zresult3Zresult4r   r   r   Útest_timedelta_tick_arithmetic   s    

z@TestTimedelta64ArithmeticUnsorted.test_timedelta_tick_arithmeticc                 C   s|   t dtdgƒ}|j}tjdddd�}|| }|| }t ||¡ || }|| }t ||¡ || }|| }t ||¡ d S )NrA   rŠ   z
1999-12-31rM   rG   r¯   )r   r	   r   r   rf   r   rƒ   )r-   r0   Ztdarš   rT   r3   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 sl0    Y  t 	|| t¡¡ d S )Nú
2016-01-01rM   rE   )
r   rf   r²   r   r+   Úassert_produces_warningr   rd   re   r,   )	r-   r.   Útz_naive_fixturer   rš   r0   r   r1   rT   r   r   r   Útest_tda_add_dt64_object_arrayD  s    
,z@TestTimedelta64ArithmeticUnsorted.test_tda_add_dt64_object_arrayc                 C   s`   t ddƒ}t dddd�}t ||¡}t ||¡}|}||7 }t ||¡ |tur\t ||¡ d S ©NrA   ú10 daysz1 days 02:00:00z10 days 02:00:00rG   ©rI   ©r   r   r+   r,   r   ©r-   Ú	two_hoursr.   rC   r3   Z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rXt ||¡ d S ©NrA   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   s^  t ddddd�}|d|j  }t ddddd�}t ||¡ |jdksHJ ‚|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s²J ‚|d }t ddddd�}t ||¡ |jdksäJ ‚| }t d	dddd�}t ||¡ |jdk�sJ ‚t d	dddd�}t|ƒ}tg d¢dd�}t ||¡ |jd u �sZJ ‚d S )NrŠ   rL   Z2Drz   )r'   rI   r|   r   r¥   r   r“   Z4DrA   rG   z-2D)rŠ   rA   r‘   rA   rŠ   rŒ   )r   rI   r   rƒ   r†   r   )r-   rC   rT   rt   r   r   r   Útest_tdi_ops_attributesv  s8    ÿz9TestTimedelta64ArithmeticUnsorted.test_tdi_ops_attributesN)rW   rX   rY   r‰   r�   r¤   r§   r¬   rQ   rZ   r[   r¶   r·   r¸   r¼   rÃ   rÅ   rÆ   r   r   r   r   rw     s   1V=
rw   c                   @   s.   e Zd Zej dddg¡dd„ ƒZdd„ ZdS )	ÚTestAddSubNaTMaskingÚstr_tsz
1950-01-01z
1980-01-01c           	      C   sˆ   t  ddg¡}t ||¡}t|ƒ}|| ¡ | ¡  d¡| ¡  d¡g}|D ]8}|| }|tu rr|j	d t
u s‚J ‚qJ|d t
u sJJ ‚qJd S )Nz24658 days 11:15:00r	   zdatetime64[ns]zdatetime64[D])r   r   r   )r   Úto_timedeltar   r+   r   r_   r^   rd   r   Úilocr	   )	r-   r.   rÈ   ZtdinatZtdobjr£   Zts_variantsÚvariantr2   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 s80    Y  t jtdd��$ tdƒt dd¡  W d   ƒ n1 sz0    Y  tjd }d}t jt|d��& t dgd¡tdƒ  W d   ƒ n1 sÌ0    Y  t jt|d��& tdƒt dgd¡  W d   ƒ n1 �s0    Y  t jt|d��$ t |g¡t	dƒ  W d   ƒ n1 �sV0    Y  t jt|d��& t d	|g¡t	dƒ  W d   ƒ n1 �sœ0    Y  t jt|d��0 t |d	d
g¡t d|dg¡  W d   ƒ n1 �sì0    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 )NZ10155196800000000000rN   iT  rG   Ú2000r   zOverflow in int64 additionrA   z5 daysú1 hoursz	7 secondsz4 hoursr¥   z5 hours)rQ   rR   r   r   rÉ   r   r	   Ú_valueÚOverflowErrorr   r   r   rƒ   )r-   Z_NaTrU   rt   rT   r   r   r   Útest_tdi_add_overflow´  s<    22
4646ÿÿ"
ÿz*TestAddSubNaTMasking.test_tdi_add_overflowN)rW   rX   rY   rQ   rZ   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
   rd   r	   r   Úassert_series_equal)r-   r9   rT   r3   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sžJ ‚|| }
|
|ks²J ‚|| }
t |
|¡ || }
t |
|¡ || }
t |
|¡ || }
t |
|¡ || }
t |
|¡ | | }
t |
|¡ ||	 }
t |
|¡ |	| }
t |
|¡ ||	 }
t |
|¡ |	 | }
t |
|¡ d}t	j
t|d�� |tj  W d   ƒ n1 �s²0    Y  t	j
t|d�� tj|  W d   ƒ n1 �sì0    Y  t	j
t|d�� |tj  W d   ƒ n1 �s&0    Y  t	j
t|d�� tj |  W d   ƒ n1 �sb0    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�0    Y  t	j
t|d�� |tj  W d   ƒ n1 �sÊ0    Y  |t }
t |
|¡ |t }
t |
|¡ d S )	NrÓ   z00:00:02úm8[ns]r¦   r	   úunsupported operand typerN   z8cannot subtract a datelike from|unsupported operand type)r   rÉ   r
   r	   r   ÚapplyrÏ   r   rÔ   rQ   rR   rS   r(   ÚnanZassert_frame_equal)r-   Ús1Ús2ZsnZdf1Zdf2ÚdfnZscalar1Zscalar2Ztimedelta_NaTr:   rU   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sbJ ‚td	|iƒ}td
d„ t	dƒD ƒƒ}|jdks’J ‚|d	 |d	  
¡  }|jdks´J ‚|d	 | }|jdksÎJ ‚|d	  ¡ }t|tƒsèJ ‚|d	 |d	  ¡  }	|	jdk�sJ ‚|	|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�s’J ‚tdddddƒ}|d	 | }|jdk�s¾J ‚|| }	t |d	 |	¡ tdd�}|d	 | }|| }	t |	|d	 ¡ |	jdk�sJ ‚tddd�}|d	 | }|| }	t |d	 |	¡ |	jdk�sTJ ‚|d t tddd�¡ }|d  t tddd�¡7  < |d |k�sžJ ‚d S )Nz2012-1-1rM   rG   r¯   z2012-1-2g  ÀS$¥ÓBr«   útimedelta64[ns]ÚAc                 S   s   g | ]}t |d �‘qS )r6   ©r   ©Ú.0Úir   r   r   Ú
<listcomp>S  ó    zNTestTimedeltaArraylikeAddSubOps.test_operators_timedelta64.<locals>.<listcomp>r˜   Z20111230Z20120101Z20120103r™   iÑ  r   c                 S   s   g | ]}t d | d�‘qS )i±  r6   rà   rá   r   r   r   rä   l  rå   rŒ   rÖ   r%   r6   rL   ©ÚminutesÚsecondsr   )r   rf   r
   r´   rd   r   rÔ   r   r   rb   ÚshiftÚmaxr‚   r   r   r   r(   rv   )r-   Úv1Úv2ÚrsZxpZdfr›   rT   ZmaxaZresultbÚvaluesr3   ÚdZ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-   Ztimedelta_seriesZnat_series_dtype_timedeltaZsingle_nat_dtype_timedeltar   r   r   Útest_timedelta64_ops_nat‹  s|    ÿ
ÿÿÿþþÿÿÿÿþþÿÿz8TestTimedeltaArraylikeAddSubOps.test_timedelta64_ops_natÚclsc                 C   s*  |}t d|d�}|tu r"| ¡ }n4|tju rR|d urHt |› 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   ƒ n1 �s0    Y  d S )Nz
2012-01-01r¡   z doesn support rq   rM   r&   z
2012-01-02rE   z
2011-12-31z-1D)r'   rI   rF   zcannot subtract a datelikerN   )r   r   r_   r(   Ú
datetime64rQ   Úskipr^   r   r   rf   r   r+   r,   rR   rS   )r-   r÷   r.   r»   rF   Z	dt_scalarr£   r0   r3   ÚtdarrZ	expected2rU   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	   rq   rM   r&   )r	   r	   r	   r˜   r¦   )r(   rø   r   r   r   r+   r,   )r-   r.   r1   r0   r3   Ú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 sv0    Y  || }t 
||¡ d S )Nr¹   rM   r&   ú-1 Dayzcannot subtract a datelike fromrN   )r   rf   r   rî   r   r   r+   rQ   rR   rS   r,   )r-   r.   rš   r0   Údtarrr3   rU   rT   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¹   rM   r&   rþ   )r   rf   r   rî   r   r   r+   r,   )r-   r.   rš   r0   rÿ   r3   rT   r   r   r   Útest_td64arr_add_dt64_array"  s    z;TestTimedeltaArraylikeAddSubOps.test_td64arr_add_dt64_arrayÚpi_freq)rG   Ú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 sv0    Y  tjt|	d�� ||  W d   ƒ n1 s¬0    Y  d S )NrÎ   z2 hoursr¿   z2018-03-07 17:16:40r   z(cannot subtract|unsupported operand typerN   )r   r   Z	to_periodr   r+   rQ   rR   rS   )
r-   r.   Zbox_with_array2r  r  r0   rš   ÚpiZperrU   r   r   r   Útest_td64arr_sub_periodlike3  s    
&z;TestTimedeltaArraylikeAddSubOps.test_td64arr_sub_periodliker1   r=   r   rô   r   c                 C   s*   t g d¢dd�}t ||¡}t||ƒ d S ©N©ú59 Daysr
  r	   rÖ   r¦   )r
   r   r+   r   )r-   r.   r1   rü   rú   r   r   r   Ú*test_td64arr_addsub_numeric_scalar_invalidH  s    zJTestTimedeltaArraylikeAddSubOps.test_td64arr_addsub_numeric_scalar_invalidÚvecr©   c                 C   s
   t | ƒjS rž   ©ÚtyperW   ©rz   r   r   r   Ú<lambda>b  rå   z(TestTimedeltaArraylikeAddSubOps.<lambda>©Úidsc                 C   s4   t g d¢dd�}t ||¡}| |¡}t||ƒ d S r  )r
   r   r+   rd   r   )r-   r.   r  Úany_real_numpy_dtyperü   rú   Ú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 sV0    Y  tjt|d�� ||8 }W d   ƒ n1 sŒ0    Y  d S )Nú1 days 09:00:00r~   rB   rH   ú Addition/subtraction of integersrN   )r   r   r+   r   rQ   rR   rS   )r-   r.   ÚonerC   rú   rU   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 )Nr  r~   rM   rH   )r%   rM   r   r¨   )r   r   r(   r)   r   r   r+   r   )r-   r.   r   r/   rC   rú   r1   rU   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°   é   r  )r   r   r(   r)   r   r   r+   r   )r-   r.   r   r/   r0   rú   r1   rU   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¹   rM   r&   r   r   r   )r   rf   ré   rî   r   r+   r,   )	r-   r.   r   rš   r0   rú   r3   rT   Ú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‘   rq   r   rŒ   rM   )Úhoursr%   r   )r7   r!  rÞ   éýÿÿÿéüÿÿÿ)r"   r   r   r   r   r   r(   r
   r   r+   r,   r   )	r-   r.   r    r   r!   r0   r9   r3   rT   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-   r.   r%  r   r0   r3   r   rT   r   r   r   Útest_td64arr_add_sub_td64_natÐ  s    z=TestTimedeltaArraylikeAddSubOps.test_td64arr_add_sub_td64_natc                 C   s`   |}t ddƒ}t dddd�}t ||¡}t ||¡}|| }t ||¡ || }t ||¡ d S r½   ©r   r   r+   r,   ©r-   rÂ   r.   r   rC   r3   rT   r   r   r   Útest_td64arr_add_timedeltalikeã  s    
z>TestTimedeltaArraylikeAddSubOps.test_td64arr_add_timedeltalikec                 C   s^   |}t ddƒ}t ddƒ}t ||¡}t ||¡}|| }t ||¡ || }t || ¡ d S rÄ   r'  r(  r   r   r   Útest_td64arr_sub_timedeltalikeò  s    

z>TestTimedeltaArraylikeAddSubOps.test_td64arr_sub_timedeltalikec           
         s¬  |}t ||ƒ}tddg|d d�‰ttjdd�tjdd�g|d d�‰ |tjtj	fv r`t
 	ˆ ¡nˆ ‰ t‡ ‡fdd	„ttˆƒƒD ƒd
|d�}t‡ ‡fdd	„ttˆƒƒD ƒd
|d�}t ˆ|¡‰t ||¡jtdd�}t ||¡jtdd�}t t¡� ˆˆ  }W d   ƒ n1 �s0    Y  t ||¡ t t¡� ˆ ˆ }W d   ƒ n1 �sR0    Y  t ||¡ t t¡� ˆˆ  }	W d   ƒ n1 �s’0    Y  t |	|¡ d S )Nú1 days 00:00:00ú3 days 04:00:00r   rŒ   r   ©Únéþÿÿÿc                    s   g | ]}ˆ| ˆ |  ‘qS r   r   ©râ   r.  ©r1   r0   r   r   rä     rå   zUTestTimedeltaArraylikeAddSubOps.test_td64arr_add_sub_offset_index.<locals>.<listcomp>r±   r{   c                    s   g | ]}ˆ| ˆ |  ‘qS r   r   r0  r1  r   r   rä     rå   F)Úcopy)r"   r   r   r   r\   ÚMinuter   r   r   r   r(   rb   Úlenr+   rd   re   rº   r   r,   )
r-   r    r.   r   r!   r3   r  r2   Úres2Úres_subr   r1  r   Ú!test_td64arr_add_sub_offset_index  s.    
$ÿÿ(((zATestTimedeltaArraylikeAddSubOps.test_td64arr_add_sub_offset_indexc                    sf  |}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¼0    Y  t ||¡ t t¡� ˆ ˆ }W d   ƒ n1 sú0    Y  t ||¡ t 	||¡ 
t¡}t t¡� ˆˆ  }W d   ƒ n1 �sL0    Y  t ||¡ d S )Nr+  r,  r   r-  r/  c                    s   g | ]}ˆ| ˆ |  ‘qS r   r   r0  r1  r   r   rä   ,  rå   zUTestTimedeltaArraylikeAddSubOps.test_td64arr_add_sub_offset_array.<locals>.<listcomp>r±   r¿   c                    s   g | ]}ˆ| ˆ |  ‘qS r   r   r0  r1  r   r   rä   /  rå   )r   r(   r   r   r\   r3  rb   r4  r   r+   rd   re   rº   r   r,   )r-   r.   r   r3   r  r2   r5  r6  r   r1  r   Ú!test_td64arr_add_sub_offset_array%  s*    ÿÿ&&(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 sÌ0    Y  t ||¡ t t¡� ˆ | }	W d   ƒ n1 �s0    Y  t |	|¡ t‡ ‡fdd	„ttˆƒƒD ƒ|td
�}
t |
|¡ t¡}
t t¡� |ˆ  }W d   ƒ n1 �s„0    Y  t ||
¡ d S )Nr+  r,  r   rŒ   r   r-  r/  c                    s   g | ]}ˆ| ˆ |  ‘qS r   r   r0  r1  r   r   rä   L  rå   zSTestTimedeltaArraylikeAddSubOps.test_td64arr_with_offset_series.<locals>.<listcomp>)r|   r   c                    s   g | ]}ˆ| ˆ |  ‘qS r   r   r0  r1  r   r   rä   Z  rå   )r   r   r   r   r   r
   r"   r   r   r\   r3  rb   r4  re   r+   rd   rº   r   r,   )r-   r    r.   r   Zbox2r!   Zexpected_addr   r2   r5  r  Zres3r   r1  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��B t 	t
¡� ||  W d   ƒ n1 sl0    Y  W d   ƒ n1 sŠ0    Y  tjt|d��B t 	t
¡� ||  W d   ƒ n1 sÌ0    Y  W d   ƒ n1 sê0    Y  tjt|d��D t 	t
¡� ||  W d   ƒ n1 �s.0    Y  W d   ƒ n1 �sN0    Y  tjt|d��D t 	t
¡� ||  W d   ƒ n1 �s’0    Y  W d   ƒ n1 �s²0    Y  d S )Nr+  r,  r   r-  z/has incorrect type|cannot add the type MonthEndrN   )r   r   r+   r   ZMonthEndr³   rQ   rR   rS   rº   r   )r-   r:  r.   r0   ZanchoredrU   r   r   r   Ú-test_td64arr_addsub_anchored_offset_arraylikeb  s     DDH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 sz0    Y  ttdd�td	d�t
d
ƒgƒ}t ||¡ t¡}t ||¡ d}	tjt|	d��B t t¡� ||  W d   ƒ n1 sü0    Y  W d   ƒ n1 �s0    Y  t t¡� || }W d   ƒ n1 �sP0    Y  ttdƒtdƒt
dƒgƒ}t ||¡ t¡}t ||¡ d S )Nrq   rM   rG   r¯   r   r6   r   z
2000-01-04r%   z
2000-01-07z3unsupported operand type|cannot subtract a datelikerN   r   z
2000-01-01)r   r   r(   r)   r   r   r+   r   r   r³   r   rº   r   r   rd   re   r,   rQ   rR   rS   )
r-   r.   r   r/   r0   rú   r1   rT   r3   rU   r   r   r   Ú!test_td64arr_add_sub_object_array}  s*     &ÿF(zATestTimedeltaArraylikeAddSubOps.test_td64arr_add_sub_object_array)(rW   rX   rY   rÕ   rÝ   rñ   rö   rQ   rZ   r[   r   r   r(   rø   rû   rý   r   r  r  r   r  r   r
   r   r  r  r  r  r   r$  rv   r	   r&  r)  r*  r7  r8  r9  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 )NrL   r«   r¦   r   )r   r(   rc   r   r+   r,   ©r-   r.   rˆ   rT   r   r   r   Útest_td64arr_mul_int¤  s    z4TestTimedeltaArraylikeMulDivOps.test_td64arr_mul_intc                 C   sb   t dddd�}t ||¡}d g d¢¡}tjt|d�� ||  W d   ƒ n1 sT0    Y  d S )NrA   r¾   r‹   rŒ   ú|)zargument must be an integerú$cannot use operands with types dtypezCannot multiply withrN   )r   r   r+   ÚjoinrQ   rR   rS   )r-   rÂ   r.   rC   rU   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 )NrL   r«   r¦   )r(   rc   r   r   r+   r   r,   ©r-   r.   Zrng5rˆ   r3   rT   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 ©NrL   r«   r¦   r   )r(   rc   r   r   r+   r,   rD  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 rF  ©r   r   r   r   r   r
   r   r(   rc   r+   r,   )r-   r.   r   r/   rˆ   r3   rT   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 )NrL   r«   r¦   Úfloat64ró   rH  )r-   r.   r   r/   rˆ   Zrng5fr3   rT   r   r   r   Útest_tdi_mul_float_seriesÞ  s    z9TestTimedeltaArraylikeMulDivOps.test_tdi_mul_float_seriesr1   r   é   c                 C   s
   t | ƒjS rž   r  r  r   r   r   r  ö  rå   z(TestTimedeltaArraylikeMulDivOps.<lambda>r  c           	      C   sp   |}t dgd ƒ}tddƒ d ¡}t ||¡}t||ƒ}t ||¡}|| }t ||¡ || }t ||¡ d S )Nr  rB   rA   r¾   )r   r   r²   r   r+   r   r,   )	r-   r1   r.   r   r0   r3   r/   rT   Zcommuter   r   r   Útest_tdi_rmul_arraylikeí  s    
z7TestTimedeltaArraylikeMulDivOps.test_tdi_rmul_arraylikec                 C   s  t dddd�}t ||¡}tjtdd�� |t  W d   ƒ n1 sF0    Y  tjtdd�� t|  W d   ƒ n1 s|0    Y  t dd	¡}d
 	g d¢¡}tjt|d�� ||  W d   ƒ n1 sÌ0    Y  tjt|d�� ||  W d   ƒ n1 �s0    Y  d S )NrA   r¾   r‹   rŒ   r×   rN   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+   rQ   rR   rS   r	   r(   rø   rB  )r-   r.   rC   Zdt64natrU   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 )NrA   r¾   r	   rB   )
r   r   r(   r)   r   r   r+   rv   rÙ   r,   )r-   r.   r   r/   rC   r1   r3   rT   r   r   r   Útest_td64arr_div_td64nat#  s    

z8TestTimedeltaArraylikeMulDivOps.test_td64arr_div_td64natc                 C   sl   t tjddd�ƒ}t ||¡}|d }t ||¡ tjtdd�� d|  W d   ƒ n1 s^0    Y  d S )NrL   r«   r¦   r   úCannot dividerN   ©	r   r(   rc   r   r+   r,   rQ   rR   rS   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 )	NrA   r¾   r‹   rŒ   rB   r   é   r™   )r   r   r(   r)   r   r   rc   rJ  r   r+   r,   ©r-   rÂ   r.   r   r/   rC   r3   rT   r   r   r   Útest_td64arr_div_tdlike_scalarA  s    z>TestTimedeltaArraylikeMulDivOps.test_td64arr_div_tdlike_scalarÚm)r   rM   rB   Úunit)rG   r~   rV  rp   Ú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é;   r6   rM   r   c                    s   g | ]}|t  ˆ ˆ¡ ‘qS r   )r(   rv   ©râ   rz   ©rV  rW  r   r   rä   _  rå   zPTestTimedeltaArraylikeMulDivOps.test_td64arr_div_td64_scalar.<locals>.<listcomp>c                    s    g | ]}t t ˆ ˆ¡ƒ| ‘qS r   )r   r(   rv   r[  r\  r   r   rä   e  rå   )r   r   r(   r)   r
   r   rÙ   r   r+   rv   r,   )
r-   rV  rW  r.   r   r/   r9   Zflatr3   rT   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 )	NrA   rŠ   r‹   rŒ   rS  r8   r™   r   )r   r   r(   r)   r   r	   r   rÙ   rJ  r   r+   r,   rT  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 )	NrA   rŠ   rS  r8   r¦   )r   r%   r   zm8[h]r   )r   r   r(   r)   r   r	   r   rÙ   rJ  r   r+   r,   rd   re   ra   )r-   r.   r   r/   rC   r3   r1   rT   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 ]Š}|t |¡t|ƒfD ]p}tjt	|d�� ||  W d   ƒ n1 s~0    Y  tjt	|d�� ||  W d   ƒ qN1 s´0    Y  qNq6d S )NrA   rŠ   )r   r   rM   r%   z0Cannot divide vectors|Unable to coerce to Seriesr   rN   )
r   r	   r   r+   r(   r   r   rQ   rR   rª   )r-   r.   rC   Z
mismatchedrU   r   r1   r   r   r   Útest_tdarr_div_length_mismatch¡  s    &z>TestTimedeltaArraylikeMulDivOps.test_tdarr_div_length_mismatchc                 C   sD  t ddd� dt¡}tj||dd�}tj|d dd	|d
 gtd�}tj||dd�}|| }tdt 	dd¡|d dgtd�}tj||dd�}t
|tƒrœ| ¡ }t ||¡ |tu rÆt
|jd tj	ƒsÆJ ‚|| }tdt 	dd¡|d dgtd�}tj||dd�}t
|tƒ�r| ¡ }t ||¡ |tu �r@t
|jd tj	ƒ�s@J ‚d S )Nr  rM   r&   r   F©Z	transposer   rô   rõ   r   r¦   ró   r	   r¢   )r   r   )r   Úinsertr	   r   r+   r(   r   re   r   rv   r‚   r   r*   r,   r   rÊ   )r-   r.   Úorigr0   r1   r2   r3   r   r   r   Ú!test_td64_div_object_mixed_result¯  s(     
 
zATestTimedeltaArraylikeMulDivOps.test_td64_div_object_mixed_resultc           	      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 rš|rš|ddg  
d¡|ddg< tjt|t ju d	d
�� || }W d   ƒ n1 sÎ0    Y  t ||¡ tjt|t ju d	d
�� t |¡| }W d   ƒ n1 �s 0    Y  t ||¡ d S )N)éè  ézd é   rÞ   r¦   )re  rf  Nró   r   r   r«   F)Zcheck_stacklevel)r   r   r(   r)   r
   r   r+   rÙ   rJ  r   rd   Zmaybe_produces_warningÚRuntimeWarningr,   Zasarray)	r-   r.   Zusing_array_managerr   r/   rj   rk   r3   rT   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 )NZ5m3srÖ   r¦   Fra  r   r   )r   r   r(   r)   r   r
   r	   r   r+   rÙ   r,   Ú__rfloordiv__)	r-   r.   Ú	scalar_tdr   r/   r›   Útd1r3   rT   r   r   r   Útest_td64arr_floordiv_tdscalarô  s    
z>TestTimedeltaArraylikeMulDivOps.test_td64arr_floordiv_tdscalarc                 C   sp   t tjddd�ƒ}t ||¡}|d }t ||¡ d}tjt|d�� d|  W d   ƒ n1 sb0    Y  d S )NrL   r«   r¦   r   z@floor_divide cannot use operands|Cannot divide int by Timedelta*rN   rQ  )r-   r.   rˆ   rT   Ú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 rlt|tjƒrlt	}| 
t¡}t |¡� t||ƒ}W d   ƒ n1 s–0    Y  t |d |¡ t |d || ¡ d S )Nr  ú9 days)r  z2 Daysú0 DaysrM   r   r   )r   r   r+   r   r,   r   r‚   r   Z
DateOffsetr   rd   re   rº   Údivmod)r-   r.   Ú
three_daysr0   rú   r3   rT   Ú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 sz0    Y  t|dƒ}t |d
 |¡ t |d |d ¡ d S )Nz1 nsz10 nsrB   r&   z0 nsrL   r   zCannot divide int byrN   r   r   )	r   r   r+   r   r,   rQ   rR   rS   rr  )r-   r.   r0   rú   r3   rT   rU   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  rp  )rq  r  rq  z3 Daysé   r   r   )r   r   r+   r   r,   rr  )r-   r.   rs  r0   rú   r3   rT   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^0    Y  tjt	|d�� ||  W d   ƒ n1 s”0    Y  d S ©NrL   rM   ræ   r   z(operate|unsupported|cannot|not supportedrN   ©
r
   r   r(   rÙ   rÊ   r   r+   rQ   rR   rS   )r-   r.   rk  rl  rn  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 s`0    Y  tjt	|d��" |t 
dd	g¡  W d   ƒ n1 s 0    Y  d S )
NrL   r«   r¦   r@  )rA  z$Cannot multiply with unequal lengthszUnable to coerce to SeriesrN   rM   r   r   )r   r(   rc   r   r+   rB  rQ   rR   rS   rª   r   ©r-   r.   rˆ   rU   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   ƒ n1 sN0    Y  d S )NrL   r«   r¦   rA  rN   )r   r(   rc   r   r+   rQ   rR   rS   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 )Nr	  rÖ   r¦   )ú-59 Daysr  r	   rÞ   )ú118 Daysr€  r	   r   )r
   r   r+   r,   )r-   r.   r  rü   r3   rT   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   ƒ n1 sx0    Y  d S ©Nr	  rÖ   r¦   )ú29.5Dr„  r	   rÞ   rP  rN   ©r
   r   r+   r,   rQ   rR   rS   ©r-   r.   r‚  rü   r3   rT   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   ƒ n1 sx0    Y  d S rƒ  r…  r†  r   r   r   Ú$test_td64arr_floordiv_numeric_scalar©  s    zDTestTimedeltaArraylikeMulDivOps.test_td64arr_floordiv_numeric_scalarr  )é   rg  é(   c                 C   s
   t | ƒjS rž   r  r  r   r   r   r  º  rå   c                 C   sx   t g d¢dd�}| |¡}t g d¢dd�}t ||¡}t||ƒ}t ||¡}|| }t ||¡ || }t ||¡ d S )Nr	  rÖ   r¦   )z	1180 Daysz	1770 Daysr	   rÞ   )r
   rd   r   r+   r   r,   )r-   r.   r  r  rü   r3   r/   rT   r   r   r   Útest_td64arr_rmul_numeric_array·  s    

z?TestTimedeltaArraylikeMulDivOps.test_td64arr_rmul_numeric_arrayc                 C   s
   t | ƒjS rž   r  r  r   r   r   r  Ø  rå   c           	         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 sš0    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 �s20    Y  nT‡ ‡fdd
„ttˆ ƒƒD ƒ}dd
„ |D ƒ}|tju �r†t |¡ t
¡}n||t
d�}t ||¡ tjt	|d�� ˆ t
¡ˆ   W d   ƒ n1 �sÒ0    Y  d S )Nr	  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 operandrP  z-ufunc 'divide' cannot use operands with typesrN   c                    s"   g | ]}ˆ j d |f ˆ|  ‘qS )r   )rÊ   r0  ©rü   r  r   r   rä   û  rå   zRTestTimedeltaArraylikeMulDivOps.test_td64arr_div_numeric_array.<locals>.<listcomp>z The 'downcast' keyword in fillnar   r	   r¢   F©Zdowncastc                    s   g | ]}ˆ | ˆ|  ‘qS r   r   r0  rŒ  r   r   rä     rå   c                 S   s$   g | ]}|t ur|n
t d d¡‘qS )r	   r¢   )r	   r(   rv   r[  r   r   r   rä     s   )r
   rd   r   r+   r   r,   rB  rQ   rR   rS   re   r   rb   r4  rº   ÚFutureWarningÚfillnar(   rv   r   )	r-   r.   r  r  r3   r/   rT   rn  rU   r   rŒ  r   Útest_td64arr_div_numeric_arrayÕ  s@    

ÿ
&
ÿ,ÿ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Ú1dayZ2daysZ3daysÚ4daysr   rŒ   )r   r   r   rM   r%   r   r™   )r’  r“  r”  Z9daysZ16daysrÞ   )	r"   r   r
   r(   r«   r   r+   r   r,   )
r-   r.   r    r   r!   r0   r9   r3   r/   rT   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rH|d n|d }t‡ ‡fdd	„tt	ˆ ƒƒD ƒd
|d�}t 
ˆ|¡‰tˆˆ ƒ}t 
||¡}ˆ  ˆ¡}|tu r¸|tu sÄJ ‚nt ||¡ d S )Nr‘  r   rŒ   )rô   rM   g      @rw  g      @r   r™   r   c                    s   g | ]}ˆ| ˆ |  ‘qS r   r   r0  ©r9   r0   r   r   rä   9  rå   zRTestTimedeltaArraylikeMulDivOps.test_float_series_rdiv_td64arr.<locals>.<listcomp>rÞ   )r   r
   r(   rJ  r   r   r   r   rb   r4  r+   r   Ú__rtruediv__r   ÚNotImplementedr,   )r-   r.   r    r   Zxnamer3   r/   rT   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r®t ||¡ 	t¡}|t
tfv r®d}tjt|d�� |j|dd	�}W d   ƒ n1 s¤0    Y  || }t ||¡ || }t ||¡ d S )
Nr   rõ   r¦   r	   r¢   z.The 'downcast' keyword in fillna is deprecatedrN   Fr�  )r   r	   r   r+   r(   r   re   rv   r   rd   r
   r   rº   rŽ  r�  r,   )	r-   r.   r0   rj   rk   r%  r3   rU   rT   r   r   r   Ú-test_td64arr_all_nat_div_object_dtype_numericH  s    ,zMTestTimedeltaArraylikeMulDivOps.test_td64arr_all_nat_div_object_dtype_numericN)3rW   rX   rY   r?  rC  rE  rG  rI  rK  rQ   rZ   r[   r(   rc   r   r«   rb   Zuint64rJ  r   Z
RangeIndexrM  rN  rO  rR  rU  r]  r^  r_  r`  rd  ri  Úfilterwarningsrm  ro  ru  rv  rx  r{  r}  r~  r�  r   r‡  rˆ  r
   r‹  r�  r•  r™  rš  r   r   r   r   r=  œ  st   


û÷
&"#


 
 
"ý
"ý
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^0    Y  tjt	|d�� ||  W d   ƒ n1 s”0    Y  d S ry  rz  )r-   rk  r.   rl  rn  r   r   r   Útest_td64arr_pow_invalidd  s    &z;TestTimedelta64ArrayLikeArithmetic.test_td64arr_pow_invalidN)rW   rX   rY   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>   Z0srò   é   r&   c                    s6   g | ].}ˆ t  d ¡| t  d¡t|dƒd    ‘qS )z0.033333333sz0.000000001srM   r   )r   rÉ   rr  rá   ©Ú	timestampr   r   rä   z  s   ûÿþz3test_add_timestamp_to_timedelta.<locals>.<listcomp>)r   r   r   rb   r   rƒ   rŸ   r   rŸ  r   Útest_add_timestamp_to_timedeltau  s    
úÿ
r¡  )'r   r   Únumpyr(   rQ   Zpandas.errorsr   r   Zpandasr   r   r   r   r	   r
   r   r   r   r   r   Zpandas._testingZ_testingr   Zpandas.core.arraysr   Zpandas.tests.arithmetic.commonr   r   r   r   r"   r#   rg   rw   rÇ   rÒ   r=  rœ  r¡  r   r   r   r   Ú<module>   s>   0	kg   A     D     H