o
    Û­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)ÚtmÚ	get_dtype)ÚobjÚexpected_dtypeÚdtype© r   úe/var/www/html/CropPilot/venv/lib/python3.10/site-packages/pandas/tests/arithmetic/test_timedelta64.pyÚassert_dtype&   s   
r   c                 C   s<   | t u r
|d }|S | tjtjfv r|d }|S |d }|S )Nr   é   é   )r   r   Úto_arrayÚpdÚarray)ÚboxÚnamesÚexnamer   r   r   Úget_expected_name/   s   üÿr$   c                   @   s^  e Zd Zdd„ Zej dedd�edd�edd� 	¡ e
 d¡g¡dd„ ƒZej d	d
dedƒedƒ d¡edƒ ¡  ¡ edƒ ¡  ¡ edƒ ¡ e d¡g¡dd„ ƒZej deedƒƒe d¡e d¡ ej¡e d¡ e¡ejdddd�je ejddd�¡eejddd�ƒejddd� e¡ejdddd�jejdddd� e¡g
¡dd„ ƒZdd„ ZdS )Ú#TestTimedelta64ArrayLikeComparisonsc                 C   sx   |}|t tjfvr|ntj}tddd�}t | ¡ d ¡}t ||¡}||k}t g d¢¡}t ||¡}t 	||¡ d S )NÚ2hé   ©Úperiodsr   )TFFF)
r   r   r    ÚnpÚndarrayr   Úto_numpyr   Úbox_expectedÚassert_equal)ÚselfÚbox_with_arrayr!   ÚxboxÚtdiÚotherÚresÚexpectedr   r   r   Ú test_compare_timedelta64_zerodimD   s   zDTestTimedelta64ArrayLikeComparisons.test_compare_timedelta64_zerodimÚ	td_scalarr   ©Údaysé   c                 C   sp   |}|t tjfvr|ntj}ttdd�tdd�gƒ}t ||¡}||k}tddgƒ}t ||¡}t 	||¡ d S )Nr   r8   r   FT)
r   r   r    r*   r+   r
   r   r   r-   r.   )r/   r0   r7   r!   r1   ÚserÚactualr5   r   r   r   Ú!test_compare_timedeltalike_scalarR   s   zETestTimedelta64ArrayLikeComparisons.test_compare_timedeltalike_scalarÚinvalidl     x
Ii	 Úaú
2021-01-01ÚUTCr'   c                 C   s,   |}t ddd�}t ||¡}t|||ƒ d S ©Nú1 daysé
   r(   )r   r   r-   r   )r/   r0   r>   r!   Úrngr   r   r   r   Útest_td64_comparisons_invalidg   s   zATestTimedelta64ArrayLikeComparisons.test_td64_comparisons_invalidr3   rD   z
1970-01-01©r)   Útzr(   z
1971-01-01ÚD©Úfreqr)   c                 C   s*   t ddd�j}t ||¡}t|||ƒ d S rB   )r   Ú_datar   r-   r   )r/   r3   r0   rE   r   r   r   Ú"test_td64arr_cmp_arraylike_invalid}   s   zFTestTimedelta64ArrayLikeComparisons.test_td64arr_cmp_arraylike_invalidc                 C   sD  t ddd�j}t ddd|d tdƒg¡}||k}t g d	¢¡}t ||¡ ||k}t || ¡ d
}tjt	|d�� ||k  W d   ƒ n1 sIw   Y  tjt	|d�� ||k W d   ƒ n1 sdw   Y  tjt	|d�� ||k W d   ƒ n1 sw   Y  tjt	|d�� ||k W d   ƒ d S 1 s›w   Y  d S )NrC   é   r(   r   r   r   é   r@   )FFFTFzDInvalid comparison between|Cannot compare type|not supported between©Úmatch)
r   rL   r*   r    r   r   Úassert_numpy_array_equalÚpytestÚraisesÚ	TypeError)r/   rE   r3   Úresultr5   Úmsgr   r   r   Útest_td64arr_cmp_mixed_invalid”   s(   
ÿ
ÿ
ÿ
"ÿzBTestTimedelta64ArrayLikeComparisons.test_td64arr_cmp_mixed_invalidN) Ú__name__Ú
__module__Ú__qualname__r6   rS   ÚmarkÚparametrizer   r   Úto_timedelta64r   ÚHourr=   r   ÚnowÚto_datetime64Úto_pydatetimeÚdater*   r    rF   ÚlistÚrangeÚarangeÚastypeÚfloat32Úobjectr   Ú
date_rangeÚperiod_rangerM   rX   r   r   r   r   r%   ?   sP    üþ
	
øþ
	
öþ
r%   c                   @   s®   e Zd Zej ddeg¡dd„ ƒZej dedde	e	ddgƒe
 e
 d	d
¡e
 d	d
¡e
 d¡e
 d¡e
 dd
¡e
 d	d¡ e
 dd
¡e
 dd¡ g¡g¡dd„ ƒZdd„ ZdS )ÚTestTimedelta64ArrayComparisonsr   Nc                 C   s"  t tdƒttdƒgƒ}t tttdƒgƒ}||}}|tu r(| t¡| t¡}}||k}t g d¢¡}t ||¡ ||k}t g d¢¡}t ||¡ t g d¢¡}t |tk|¡ t t|k|¡ t g d¢¡}t |tk|¡ t t|k|¡ t g d¢¡}t |tk |¡ t t|k|¡ d S )NrC   ú3 days)FFT)TTF)FFF©TTT)	r   r   r	   ri   rg   r*   r    r   rR   )r/   r   ÚleftÚrightÚlhsÚrhsrV   r5   r   r   r   Útest_comp_nat­   s(   
z-TestTimedelta64ArrayComparisons.test_comp_natÚidx2z2 dayz1 day 00:00:02z5 days 00:00:03r   rI   Únatr   ÚsrN   rO   c                 C   sä   t dtdtddgƒ}||k }t g d¢¡}t ||¡ ||k}t g d¢¡}t ||¡ ||k}t g d¢¡}t ||¡ ||k}t g d¢¡}t ||¡ ||k}t g d¢¡}t ||¡ ||k}t g d¢¡}t ||¡ d S )Nú1 dayz1 day 00:00:01z5 day 00:00:03)TFFFTF)TFFFTT)FFFFFT)TTTTTF)r   r	   r*   r    r   rR   )r/   rt   Úidx1rV   r5   r   r   r   Útest_comparisons_natÊ   s6   úÿz4TestTimedelta64ArrayComparisons.test_comparisons_natc                 C   s`   t ddd�}||d k }t g d¢dgd  ¡}t ||¡ |t|ƒk}||k}t ||¡ d S )NrC   rD   r(   rO   rn   Fé   )r   r*   r    r   rR   rd   )r/   rE   rV   r5   Úexpr   r   r   Útest_comparisons_coverage  s   z9TestTimedelta64ArrayComparisons.test_comparisons_coverage)rY   rZ   r[   rS   r\   r]   ri   rs   r   r	   r*   r    Útimedelta64ry   r|   r   r   r   r   rl   ª   s*    
ÿ

úÿüþ
%rl   c                   @   s~   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zej	 
dddg¡dd„ ƒZdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ ZdS )Ú!TestTimedelta64ArithmeticUnsortedc                 C   sr  t g d¢ddd�}|d t |d¡fD ]}t|t ƒsJ ‚t g d¢ddd�}t ||¡ |jdks2J ‚q|d t |d¡fD ]}t|t ƒsFJ ‚t g d¢d	dd�}t ||¡ |jd	ks\J ‚q=| t |¡fD ]}t|t ƒsnJ ‚t g d
¢ddd�}t ||¡ |jdks„J ‚qet g d¢d	dd�}t	|ƒt 
|¡fD ]}t|t ƒs J ‚t g d¢d dd�}t ||¡ |jd u s¶J ‚q—d S )N)r&   Ú4hÚ6hÚ8hÚ10hr&   Úx©rK   Únamer   )r   r�   Ú12hÚ16hÚ20hr   )Ú1hr&   Ú3hr   Ú5hÚh)ú-2hz-4hz-6hz-8hz-10hr�   )r�   z-1hÚ0hr‰   r&   )r&   r‰   rŽ   r‰   r&   )r   r*   ÚmultiplyÚ
isinstancer   Úassert_index_equalrK   ÚdivideÚnegativeÚabsÚabsolute)r/   ÚidxrV   r{   r   r   r   Útest_ufunc_coercions  s2   
ÿüz6TestTimedelta64ArithmeticUnsorted.test_ufunc_coercionsc                 C   sþ  t dtdgdd�}tjdddd�}tdƒ}tdƒ}d	}tjt|d
�� ||  W d   ƒ n1 s1w   Y  tjt|d
�� ||  W d   ƒ n1 sLw   Y  d}tjt|d
�� ||  W d   ƒ n1 siw   Y  d}tjt|d
�� ||  W d   ƒ n1 s†w   Y  || }t g d¢dd�}t	 
||¡ || }t g d¢dd�}t	 
||¡ || }t dtdgdd�}t	 
||¡ || }t dtdgdd�}t	 
||¡ || }tg d¢dddd�}t	 
||¡ || }tdtdgddd�}t	 
||¡ d S )NrC   ú2 daysÚfoo©r…   Ú20130101rO   Úbar©r)   r…   z0cannot subtract a datelike from a TimedeltaArrayrP   z#unsupported operand type\(s\) for -z((bad|unsupported) operand type for unary©ú0 daysú-1 daysú-2 days©rŸ   rC   r˜   rŸ   r    ©Ú20121231r›   Ú20130102úM8[ns]rI   )r   rK   r…   r¤   Ú20121230©r   r…   )r   r	   r   rj   r   r   rS   rT   rU   r   r‘   r   )r/   r2   ÚdtiÚtdÚdtrW   rV   r5   r   r   r   Útest_subtraction_ops4  sR   
ÿ
ÿ
ÿ
ÿÿÿz6TestTimedelta64ArithmeticUnsorted.test_subtraction_opsc                 C   sš  t jddd�}t ||¡}tdƒ}| ¡ }t jddd� d¡}t ||¡}tdƒ d¡}tdƒ d¡}| ¡ }tdƒ}	dd„ }
|| }td	ƒ}|
||ƒ || }td	ƒ}|
||ƒ || }td	ƒ}|
||ƒ d
}tj	t
|d�� ||  W d   ƒ n1 s~w   Y  d}tj	t
|d�� ||  W d   ƒ n1 s›w   Y  d}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 sðw   Y  tj	t
|d�� ||  W d   ƒ n	1 �sw   Y  d}tj	t
|d�� ||  W d   ƒ n	1 �s*w   Y  tj	t
|d�� ||  W d   ƒ n	1 �sFw   Y  || }tg d¢ƒ}t ||¡}t ||¡ || }tg d¢ƒ}t ||¡}t ||¡ || }tg d¢ƒ}t ||¡}t ||¡ || }tg d¢ƒ}t ||¡}t ||¡ |	|	 }td	ƒ}|
||ƒ ||	 }tg d¢dd� d¡}t ||¡}t ||¡ d S )Nr›   rO   r(   z
US/EasternÚCETrC   c                 S   s   | |ksJ ‚t | tƒsJ ‚d S ©N)r�   r   ©rV   r5   r   r   r   Ú_checkr  s   zNTestTimedelta64ArithmeticUnsorted.test_subtraction_ops_with_tz.<locals>._checkrŸ   z<Cannot subtract tz-naive and tz-aware datetime-like objects.rP   z6can't subtract offset-naive and offset-aware datetimesz%Cannot subtract tz-naive and tz-awarer¢   rž   r£   ©rH   Úns)r   rj   r   r-   r   rb   Útz_localizer   rS   rT   rU   r   r.   r   Úas_unit)r/   r0   r©   Útsr«   Údti_tzÚts_tzÚts_tz2Údt_tzrª   r°   rV   r5   rW   r   r   r   Útest_subtraction_ops_with_tze  s˜   



ÿ
ÿ
ÿ
ÿ
ÿ
ÿ
ÿ
ÿ
ÿþz>TestTimedelta64ArithmeticUnsorted.test_subtraction_ops_with_tzc                 C   s˜   t dtdgdd�}tjdddd�}|| }t d	td	gdd�}t ||¡ || }t dtd
gdd�}t ||¡ || }tdtdgdd�}t ||¡ d S )NrC   r˜   r™   rš   r›   rO   rœ   r�   rŸ   ú4 daysr¤   r¦   ©r   )r   r	   r   rj   r   r‘   r   )r/   r2   r©   rV   r5   r   r   r   Útest_dti_tdi_numeric_ops»  s   z:TestTimedelta64ArithmeticUnsorted.test_dti_tdi_numeric_opsc                 C   s   t dtdgdd�}tjdddd�}tdƒ}tdƒ}|| }td	td
gddd�}t ||¡ || }td	td
gddd�}t ||¡ || }t dtdgdd�}t ||¡ || }t dtdgdd�}t ||¡ d}t	j
t|d�� ||dd…   W d   ƒ n1 sƒw   Y  t	j
t|d�� |dd… |  W d   ƒ n1 s¢w   Y  d}t	j
t|d�� |tg d¢tjd�  W d   ƒ n1 sÆw   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 )NrC   r˜   r™   rš   r›   rO   rœ   r�   r¥   Ú20130103r¦   r¨   rm   z$cannot add indices of unequal lengthrP   r   r   ú3Addition/subtraction of integers and integer-arrays©r   r   rO   r¼   Ú20130105)r   r	   r   rj   r   r   r   r   r‘   rS   rT   Ú
ValueErrorrU   r   r*   Úint64)r/   r2   r©   rª   r«   rV   r5   rW   r   r   r   Útest_addition_opsÌ  sV   ÿÿÿÿÿz3TestTimedelta64ArithmeticUnsorted.test_addition_opsrK   rI   ÚBc                 C   sæ   t jdd|d�}|tdƒ }|tdƒ }| d¡}t ||¡ |dkr@t jj d¡}|j	|ks1J ‚|j	|ks8J ‚|j	|ks?J ‚n|j	t jj 
d¡ksLJ ‚|j	d u sSJ ‚|j	t jj 
d¡ks_J ‚|tdƒ }|tdƒ }t ||¡ d S )Nz1/1/2000é2   ©r)   rK   r   éÿÿÿÿÚinferrI   )r   rj   r   Ú
_with_freqr   r‘   Útseriesr   ÚDayrK   ÚBusinessDay)r/   rK   ÚindexÚshiftedÚbackr5   rV   r   r   r   Útest_timedelta	  s    
z0TestTimedelta64ArithmeticUnsorted.test_timedeltac                 C   s¤   t  dd¡}t|ƒ}|t d¡ }t|t d¡ ƒ}|t d¡ }t|t d¡ ƒ}|j|jks2J ‚| 	d ¡}t
 ||¡ |j|jksEJ ‚| 	d ¡}t
 ||¡ d S )NÚ2013Ú2014r   i áõ)r   rj   r
   r   r_   r   r*   r}   rK   rÊ   r   r‘   )r/   rE   rv   Úresult1Úresult2Úresult3Úresult4r   r   r   Útest_timedelta_tick_arithmetic   s   

z@TestTimedelta64ArithmeticUnsorted.test_timedelta_tick_arithmeticc                 C   s|   t dtdgƒ}|j}tjdddd�}|| }|| }t ||¡ || }|| }t ||¡ || }|| }t ||¡ d S )NrC   r˜   z
1999-12-31rO   rI   rÇ   )r   r	   r    r   rj   r   r‘   )r/   r2   Útdar©   rV   r5   r   r   r   Útest_tda_add_sub_index1  s   z8TestTimedelta64ArithmeticUnsorted.test_tda_add_sub_indexc           	      C   sŒ   |}t jdd|d�}| d ¡}|| }t ||¡}t ||¡}t t¡� || t¡ }W d   ƒ n1 s6w   Y  t 	|| t¡¡ d S )Nú
2016-01-01rO   rG   )
r   rj   rÊ   r   r-   Úassert_produces_warningr   rg   ri   r.   )	r/   r0   Útz_naive_fixturer!   r©   r2   r   r3   rV   r   r   r   Útest_tda_add_dt64_object_arrayD  s   
ÿz@TestTimedelta64ArithmeticUnsorted.test_tda_add_dt64_object_arrayc                 C   sd   t ddƒ}t dddd�}t ||¡}t ||¡}|}||7 }t ||¡ |tur0t ||¡ d S d S ©NrC   ú10 daysz1 days 02:00:00z10 days 02:00:00rI   ©rK   ©r   r   r-   r.   r   ©r/   Ú	two_hoursr0   rE   r5   Úorig_rngr   r   r   Útest_tdi_iadd_timedeltalikeV  s   
þz=TestTimedelta64ArithmeticUnsorted.test_tdi_iadd_timedeltalikec                 C   s`   t ddƒ}t ddƒ}t ||¡}t ||¡}|}||8 }t ||¡ |tur.t ||¡ d S d S ©NrC   rà   z0 days 22:00:00z9 days 22:00:00râ   rã   r   r   r   Útest_tdi_isub_timedeltalikee  s   

þz=TestTimedelta64ArithmeticUnsorted.test_tdi_isub_timedeltalikec                 C   sZ  t ddddd�}|d|j  }t ddddd�}t ||¡ |jdks$J ‚|d|j  }t d	dddd�}t ||¡ |jdks@J ‚|d }t ddd
dd�}t ||¡ |jd
ksYJ ‚|d }t ddddd�}t ||¡ |jdksrJ ‚| }t d	dddd�}t ||¡ |jdksŠJ ‚t d	dddd�}t|ƒ}tg d¢dd�}t ||¡ |jd u s«J ‚d S )Nr˜   rN   Ú2Drƒ   )r)   rK   r…   r   r»   r   r¡   Ú4DrC   rI   z-2D)r˜   rC   rŸ   rC   r˜   rš   )r   rK   r   r‘   r”   r   )r/   rE   rV   r{   r   r   r   Útest_tdi_ops_attributesv  s8   ÿz9TestTimedelta64ArithmeticUnsorted.test_tdi_ops_attributesN)rY   rZ   r[   r—   r¬   rº   r½   rÄ   rS   r\   r]   rÑ   rØ   rÚ   rÞ   ræ   rè   rë   r   r   r   r   r~     s    1V=
r~   c                   @   s.   e Zd Zej dddg¡dd„ ƒZdd„ ZdS )	ÚTestAddSubNaTMaskingÚstr_tsz
1950-01-01z
1980-01-01c           	      C   sˆ   t  ddg¡}t ||¡}t|ƒ}|| ¡ | ¡  d¡| ¡  d¡g}|D ]}|| }|tu r9|j	d t
u s8J ‚q%|d t
u sAJ ‚q%d S )Nz24658 days 11:15:00r	   zdatetime64[ns]zdatetime64[D])r   r   r   )r   Úto_timedeltar   r-   r   rb   ra   rg   r   Úilocr	   )	r/   r0   rí   ÚtdinatÚtdobjrµ   Úts_variantsÚvariantr4   r   r   r   Ú$test_tdarr_add_timestamp_nat_maskingŸ  s   üûz9TestAddSubNaTMasking.test_tdarr_add_timestamp_nat_maskingc                 C   s„  t jtdd�� t dd¡tdƒ  W d   ƒ n1 sw   Y  t jtdd�� tdƒt dd¡  W d   ƒ n1 s=w   Y  tjd }d}t jt|d�� t dgd¡tdƒ  W d   ƒ n1 sfw   Y  t jt|d�� tdƒt dgd¡  W d   ƒ n1 sˆw   Y  t jt|d�� t |g¡t	dƒ  W d   ƒ n1 s©w   Y  t jt|d�� t d	|g¡t	dƒ  W d   ƒ n1 sËw   Y  t jt|d�� t |d	d
g¡t d|dg¡  W d   ƒ n1 sòw   Y  t
tgƒ}t tg¡t	dƒ }t ||¡ t
dtgƒ}t d	tg¡t	dƒ }t ||¡ t
ttdgƒ}t td	d
g¡t dtdg¡ }t ||¡ d S )NÚ10155196800000000000rP   iT  rI   Ú2000r   zOverflow in int64 additionrC   z5 daysú1 hoursz	7 secondsz4 hoursr»   z5 hours)rS   rT   r   r   rî   r   r	   Ú_valueÚOverflowErrorr   r   r   r‘   )r/   Ú_NaTrW   r{   rV   r   r   r   Útest_tdi_add_overflow´  sH   ÿÿ
ÿÿÿÿÿþ
ÿz*TestAddSubNaTMasking.test_tdi_add_overflowN)rY   rZ   r[   rS   r\   r]   rô   rû   r   r   r   r   rì   œ  s    
rì   c                	   @   s’  e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zej 	d	e
eejg¡d
d„ ƒZdd„ Zdd„ Zdd„ Zej 	dg d¢¡ej 	dddg¡dd„ ƒƒZej 	dddde d¡g¡dd„ ƒZejj	d e g d!¢¡eg d!¢ƒeg d!¢ƒeg d!¢gƒgd"d#„ d$�d%d&„ ƒZd'd(„ Zd)d*„ Zd+d,„ Zd-d.„ Zd/d0„ Zej 	d1e d2¡eg¡d3d4„ ƒZ d5d6„ Z!d7d8„ Z"d9d:„ Z#d;d<„ Z$d=d>„ Z%ej 	d?ejeeg¡d@dA„ ƒZ&dBdC„ Z'dS )DÚTestTimedeltaArraylikeAddSubOpsc                 C   s<   t  tdgƒ¡ d¡}|t }ttgdd�}t ||¡ d S )Nú00:00:01zm8[s]r¼   )r   rî   r
   rg   r	   r   Úassert_series_equal)r/   r;   rV   r5   r   r   r   Útest_sub_nat_retain_unità  s   z8TestTimedeltaArraylikeAddSubOps.test_sub_nat_retain_unitc                 C   sü  t  tdgƒ¡}t  tdgƒ¡}t  ttgdd�¡}tdgƒ t j¡}tdgƒ t j¡}ttjgƒ t j¡}t  d¡}t  d¡}t  d¡}	|| }
|
|ksOJ ‚|| }
|
|ksYJ ‚|| }
t |
|¡ || }
t |
|¡ || }
t |
|¡ || }
t |
|¡ || }
t |
|¡ | | }
t |
|¡ ||	 }
t |
|¡ |	| }
t |
|¡ ||	 }
t |
|¡ |	 | }
t |
|¡ d}t	j
t|d�� |tj  W d   ƒ n1 sØw   Y  t	j
t|d�� tj|  W d   ƒ n1 sôw   Y  t	j
t|d�� |tj  W d   ƒ n	1 �sw   Y  t	j
t|d�� tj |  W d   ƒ n	1 �s/w   Y  |t }
t |
|¡ |t }
t |
|¡ || }
t |
|¡ || }
t |
|¡ || }
t |
|¡ || }
t |
|¡ || }
t |
|¡ || }
t |
|¡ || }
t |
|¡ || }
t |
|¡ ||	 }
t |
|¡ ||	 }
t |
|¡ d}t	j
t|d�� |tj  W d   ƒ n	1 �sÆw   Y  t	j
t|d�� |tj  W d   ƒ n	1 �sãw   Y  |t }
t |
|¡ |t }
t |
|¡ d S )	Nrý   z00:00:02úm8[ns]r¼   r	   úunsupported operand typerP   z8cannot subtract a datelike from|unsupported operand type)r   rî   r
   r	   r   Úapplyrø   r   rþ   rS   rT   rU   r*   ÚnanÚassert_frame_equal)r/   Ús1Ús2ÚsnÚdf1Údf2ÚdfnÚscalar1Úscalar2Útimedelta_NaTr<   rW   r   r   r   Ú&test_timedelta_ops_with_missing_valuesé  s¢   




ÿÿÿÿÿÿzFTestTimedeltaArraylikeAddSubOps.test_timedelta_ops_with_missing_valuesc              	   C   sœ  t jdddd�}t jdddd�}t|ƒt|ƒ }td|jƒ d¡ d¡}t ||¡ |jdks1J ‚td	|iƒ}td
d„ t	dƒD ƒƒ}|jdksIJ ‚|d	 |d	  
¡  }|jdksZJ ‚|d	 | }|jdksgJ ‚|d	  ¡ }t|tƒstJ ‚|d	 |d	  ¡  }	|	jdk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�s'J ‚|d t tddd�¡ }|d  t tddd�¡7  < |d |k�sLJ ‚d S )Nz2012-1-1rO   rI   rÇ   z2012-1-2g  ÀS$¥ÓBrÃ   útimedelta64[ns]ÚAc                 S   s   g | ]}t |d �‘qS )r8   ©r   ©Ú.0Úir   r   r   Ú
<listcomp>S  s    zNTestTimedeltaArraylikeAddSubOps.test_operators_timedelta64.<locals>.<listcomp>r¦   Ú20111230Ú20120101Ú20120103r¨   iÑ  r   c                 S   s   g | ]	}t d | d�‘qS )i±  r8   r  r  r   r   r   r  l  s    rš   r   r'   r8   rN   ©ÚminutesÚsecondsr   )r   rj   r
   rÎ   rg   r   rþ   r   r   re   ÚshiftÚmaxr�   r   r   r   r*   r}   )r/   Úv1Úv2ÚrsÚxpÚdfrª   rV   ÚmaxaÚresultbÚvaluesr5   ÚdÚresultaÚvaluer   r   r   Útest_operators_timedelta64I  sV   
z:TestTimedeltaArraylikeAddSubOps.test_operators_timedelta64c                 C   s  t ttdƒgƒ}t ttgdd�}t tgdd�}t |t |¡ t t | |¡ t || |¡ t | | |¡ t |t |¡ t t| |¡ t || |¡ t || |¡ t |t |¡ t t| |¡ t || |¡ t || |¡ t |t |¡ t t| |¡ t || |¡ t || |¡ t |d |¡ t d| |¡ t |d |¡ t d| |¡ t |d t ttdƒgƒ¡ t d| t ttdƒgƒ¡ t |tj |¡ t tj| |¡ t |d t ttd	ƒgƒ¡ t |d
 t ttd	ƒgƒ¡ t |tj |¡ d S )NÚ1sr  r¼   ç      ð?r   ç      ø?z1.5sr   z0.5sç       @)r
   r	   r   r   rþ   r*   r  )r/   Útimedelta_seriesÚnat_series_dtype_timedeltaÚsingle_nat_dtype_timedeltar   r   r   Útest_timedelta64_ops_nat‹  s|   ÿ
ÿÿÿþþÿÿÿÿþþÿÿz8TestTimedeltaArraylikeAddSubOps.test_timedelta64_ops_natÚclsc                 C   s*  |}t d|d�}|tu r| ¡ }n|tju r)|d ur$t |› d|› �¡ | ¡ }n|}tddd�}t	j
dd|d�}t ||¡}	t ||¡}t ||	 |¡ t |	| |¡ t	j
d	dd
|d�}
t |
|¡}
t ||	 |
¡ t ||	  |
¡ d}tjt|d�� |	|  W d   ƒ d S 1 sŽw   Y  d S )Nz
2012-01-01r±   z doesn support rw   rO   r(   z
2012-01-02rG   z
2011-12-31z-1D)r)   rK   rH   zcannot subtract a datelikerP   )r   r   rb   r*   Ú
datetime64rS   Úskipra   r   r   rj   r   r-   r.   rT   rU   )r/   r2  r0   rÝ   rH   Ú	dt_scalarrµ   r2   r5   ÚtdarrÚ	expected2rW   r   r   r   Ú(test_td64arr_add_sub_datetimelike_scalarà  s.   



"ÿzHTestTimedeltaArraylikeAddSubOps.test_td64arr_add_sub_datetimelike_scalarc                 C   sb   t  d¡}tddd�}tg d¢dd�}t ||¡}t ||¡}t || |¡ t || |¡ d S )Nr	   rw   rO   r(   )r	   r	   r	   r¦   r¼   )r*   r3  r   r   r   r-   r.   )r/   r0   r3   r2   r5   Útdserr   r   r   Útest_td64arr_add_datetime64_nat  s   
z?TestTimedeltaArraylikeAddSubOps.test_td64arr_add_datetime64_natc                 C   s˜   t jddd�}tdgd ƒ}|j}t|ƒ| }t ||¡}t ||¡}d}tjt	|d�� ||  W d   ƒ n1 s;w   Y  || }t 
||¡ d S )NrÛ   rO   r(   ú-1 Dayzcannot subtract a datelike fromrP   )r   rj   r   r%  r   r   r-   rS   rT   rU   r.   )r/   r0   r©   r2   Údtarrr5   rW   rV   r   r   r   Útest_td64arr_sub_dt64_array  s   
ÿz;TestTimedeltaArraylikeAddSubOps.test_td64arr_sub_dt64_arrayc                 C   sr   t jddd�}tdgd ƒ}|j}t|ƒ| }t ||¡}t ||¡}|| }t ||¡ || }t ||¡ d S )NrÛ   rO   r(   r;  )r   rj   r   r%  r   r   r-   r.   )r/   r0   r©   r2   r<  r5   rV   r   r   r   Útest_td64arr_add_dt64_array"  s   z;TestTimedeltaArraylikeAddSubOps.test_td64arr_add_dt64_arrayÚpi_freq)rI   ÚWÚQrŒ   Útdi_freqNrŒ   c           
      C   s¼   t ddg|d�}tdƒ| }| |¡}|d }t ||¡}t ||¡}d}	tjt|	d�� ||  W d   ƒ n1 s;w   Y  tjt|	d�� ||  W d   ƒ d S 1 sWw   Y  d S )Nr÷   z2 hoursrá   z2018-03-07 17:16:40r   z(cannot subtract|unsupported operand typerP   )r   r   Ú	to_periodr   r-   rS   rT   rU   )
r/   r0   Úbox_with_array2rB  r?  r2   r©   ÚpiÚperrW   r   r   r   Útest_td64arr_sub_periodlike3  s   

ÿ
"ÿz;TestTimedeltaArraylikeAddSubOps.test_td64arr_sub_periodliker3   r?   r   r,  r   c                 C   s*   t g d¢dd�}t ||¡}t||ƒ d S ©N©ú59 DaysrJ  r	   r   r¼   )r
   r   r-   r   )r/   r0   r3   r9  r6  r   r   r   Ú*test_td64arr_addsub_numeric_scalar_invalidH  s   zJTestTimedeltaArraylikeAddSubOps.test_td64arr_addsub_numeric_scalar_invalidÚvecrÀ   c                 C   ó
   t | ƒjS r®   ©ÚtyperY   ©rƒ   r   r   r   Ú<lambda>b  ó   
 z(TestTimedeltaArraylikeAddSubOps.<lambda>©Úidsc                 C   s4   t g d¢dd�}t ||¡}| |¡}t||ƒ d S rH  )r
   r   r-   rg   r   )r/   r0   rL  Úany_real_numpy_dtyper9  r6  Úvectorr   r   r   Ú'test_td64arr_addsub_numeric_arr_invalidZ  s   
zGTestTimedeltaArraylikeAddSubOps.test_td64arr_addsub_numeric_arr_invalidc                 C   sœ   t dddd�}t ||¡}d}t|||ƒ tjt|d�� ||7 }W d   ƒ n1 s+w   Y  tjt|d�� ||8 }W d   ƒ d S 1 sGw   Y  d S )Nú1 days 09:00:00rŒ   rD   rJ   ú Addition/subtraction of integersrP   )r   r   r-   r   rS   rT   rU   )r/   r0   ÚonerE   r6  rW   r   r   r   Útest_td64arr_add_sub_intm  s   
ÿ
"ÿz8TestTimedeltaArraylikeAddSubOps.test_td64arr_add_sub_intc                 C   sV   |}|t ju r
tjn|}tdddd�}t ||¡}t g d¢|¡}d}t|||ƒ d S )NrX  rŒ   rO   rJ   )r'   rO   r   r¿   )r   r    r*   r+   r   r   r-   r   )r/   r0   r!   r1   rE   r6  r3   rW   r   r   r   Ú"test_td64arr_add_sub_integer_array{  s   zBTestTimedeltaArraylikeAddSubOps.test_td64arr_add_sub_integer_arrayc                 C   sT   |}|t ju r
tjn|}tg d¢ƒ}t ||¡}t g d¢|¡}d}t|||ƒ d S )N)ú1 Dayr	   z3 Hours)é   rÈ   é   rY  )r   r    r*   r+   r   r   r-   r   )r/   r0   r!   r1   r2   r6  r3   rW   r   r   r   Ú)test_td64arr_addsub_integer_array_no_freq‰  s   zITestTimedeltaArraylikeAddSubOps.test_td64arr_addsub_integer_array_no_freqc           	      C   s¢   |}t jddd�}|| d¡ }|j}d| }t ||¡}t ||¡}|| }t ||¡ || }t ||¡ d| }|| }t ||¡ || }t ||¡ d S )NrÛ   rO   r(   r   r   r   )r   rj   r  r%  r   r-   r.   )	r/   r0   r!   r©   r2   r6  r5   rV   Úexpected_subr   r   r   Útest_td64arr_add_sub_td64_array˜  s    z?TestTimedeltaArraylikeAddSubOps.test_td64arr_add_sub_td64_arrayc           	      C   s>  |}t ||ƒ}tddg|d d�}|tjtjfv rt |¡n|}ttdd�tdd�g|d d�}ttdd�tddd	�g|d�}t 	||¡}t 	||¡}|| }t 
||¡ t|d
ƒ || }t 
||¡ t|d
ƒ ttdd�tddd	�g|d�}t 	||¡}|| }t 
||¡ t|d
ƒ || }t 
|| ¡ t|d
ƒ d S )NrŸ   rw   r   rš   rO   )Úhoursr'   r   )r9   rc  r  éýÿÿÿéüÿÿÿ)r$   r   r   r   r   r    r*   r
   r   r-   r.   r   )	r/   r0   r"   r!   r#   r2   r;   r5   rV   r   r   r   Útest_td64arr_add_sub_tdi­  s0   
 

ÿ
z8TestTimedeltaArraylikeAddSubOps.test_td64arr_add_sub_tdiÚtdnatr	   c                 C   sŽ   |}t ttdƒgƒ}t dgd ƒ}t ||¡}t ||¡}|| }t ||¡ || }t ||¡ || }t ||¡ || }t ||¡ d S )Nr*  r	   r   )r   r	   r   r   r-   r.   )r/   r0   rg  r!   r2   r5   r   rV   r   r   r   Útest_td64arr_add_sub_td64_natÐ  s   z=TestTimedeltaArraylikeAddSubOps.test_td64arr_add_sub_td64_natc                 C   s`   |}t ddƒ}t dddd�}t ||¡}t ||¡}|| }t ||¡ || }t ||¡ d S rß   ©r   r   r-   r.   ©r/   rä   r0   r!   rE   r5   rV   r   r   r   Útest_td64arr_add_timedeltalikeã  s   
z>TestTimedeltaArraylikeAddSubOps.test_td64arr_add_timedeltalikec                 C   s^   |}t ddƒ}t ddƒ}t ||¡}t ||¡}|| }t ||¡ || }t || ¡ d S rç   ri  rj  r   r   r   Útest_td64arr_sub_timedeltalikeò  s   

z>TestTimedeltaArraylikeAddSubOps.test_td64arr_sub_timedeltalikec           
         s¦  |}t ||ƒ}tddg|d d�‰ttjdd�tjdd�g|d d�‰ |tjtj	fv r0t
 	ˆ ¡nˆ ‰ t‡ ‡fdd	„ttˆƒƒD ƒd
|d�}t‡ ‡fdd	„ttˆƒƒD ƒd
|d�}t ˆ|¡‰t ||¡jtdd�}t ||¡jtdd�}t t¡� ˆˆ  }W d   ƒ n1 sˆw   Y  t ||¡ t t¡� ˆ ˆ }W d   ƒ n1 s§w   Y  t ||¡ t t¡� ˆˆ  }	W d   ƒ n1 sÆw   Y  t |	|¡ d S )Nú1 days 00:00:00ú3 days 04:00:00r   rš   r   ©Únéþÿÿÿc                    ó   g | ]
}ˆ| ˆ |  ‘qS r   r   ©r  rp  ©r3   r2   r   r   r    ó    zUTestTimedeltaArraylikeAddSubOps.test_td64arr_add_sub_offset_index.<locals>.<listcomp>rÉ   r„   c                    ó   g | ]
}ˆ| ˆ |  ‘qS r   r   rs  rt  r   r   r    ru  F)Úcopy)r$   r   r   r   r_   ÚMinuter   r   r   r    r*   re   Úlenr-   rg   ri   rÜ   r   r.   )
r/   r"   r0   r!   r#   r5   ra  r4   Úres2Úres_subr   rt  r   Ú!test_td64arr_add_sub_offset_index  s4   
$ÿÿ
ÿ
ÿ
ÿzATestTimedeltaArraylikeAddSubOps.test_td64arr_add_sub_offset_indexc                    sd  |}t ddgƒ‰t tjdd�tjdd�g¡‰ t ‡ ‡fdd„ttˆƒƒD ƒdd	�}t ‡ ‡fd
d„ttˆƒƒD ƒdd	�}t 	ˆ|¡‰t 	||¡ 
t¡}t t¡� ˆˆ  }W d   ƒ n1 s^w   Y  t ||¡ t t¡� ˆ ˆ }W d   ƒ n1 s}w   Y  t ||¡ t 	||¡ 
t¡}t t¡� ˆˆ  }W d   ƒ n1 s¥w   Y  t ||¡ d S )Nrm  rn  r   ro  rq  c                    rr  r   r   rs  rt  r   r   r  ,  ru  zUTestTimedeltaArraylikeAddSubOps.test_td64arr_add_sub_offset_array.<locals>.<listcomp>rÉ   rá   c                    rv  r   r   rs  rt  r   r   r  /  ru  )r   r*   r    r   r_   rx  re   ry  r   r-   rg   ri   rÜ   r   r.   )r/   r0   r!   r5   ra  r4   rz  r{  r   rt  r   Ú!test_td64arr_add_sub_offset_array%  s0   ÿÿ
ÿ
ÿ
ÿzATestTimedeltaArraylikeAddSubOps.test_td64arr_add_sub_offset_arrayc                    sš  |}|t tjtjfv rtn|}t||ƒ}tddg|d d�‰ttj	dd�tj
dd�g|d d�‰ t‡ ‡fdd	„ttˆƒƒD ƒ|td
�}t ˆ|¡}t ||¡ t¡}t t¡� |ˆ  }W d   ƒ n1 sfw   Y  t ||¡ t t¡� ˆ | }	W d   ƒ n1 s…w   Y  t |	|¡ t‡ ‡fdd	„ttˆƒƒD ƒ|td
�}
t |
|¡ t¡}
t t¡� |ˆ  }W d   ƒ n1 sÀw   Y  t ||
¡ d S )Nrm  rn  r   rš   r   ro  rq  c                    rr  r   r   rs  rt  r   r   r  L  ru  zSTestTimedeltaArraylikeAddSubOps.test_td64arr_with_offset_series.<locals>.<listcomp>)r…   r   c                    rv  r   r   rs  rt  r   r   r  Z  ru  )r   r   r   r   r    r
   r$   r   r   r_   rx  re   ry  ri   r-   rg   rÜ   r   r.   )r/   r"   r0   r!   Úbox2r#   Úexpected_addr   r4   rz  ra  Úres3r   rt  r   Útest_td64arr_with_offset_seriesB  s4   
$ÿ
ÿ
ÿÿ
ÿz?TestTimedeltaArraylikeAddSubOps.test_td64arr_with_offset_seriesÚoboxc              	   C   sÊ  t ddgƒ}t ||¡}|t ¡ tjdd�gƒ}d}tjt|d��! t 	t
¡� ||  W d   ƒ n1 s6w   Y  W d   ƒ n1 sEw   Y  tjt|d��! t 	t
¡� ||  W d   ƒ n1 sfw   Y  W d   ƒ n1 suw   Y  tjt|d��! t 	t
¡� ||  W d   ƒ n1 s–w   Y  W d   ƒ n1 s¥w   Y  tjt|d��* t 	t
¡� ||  W d   ƒ n1 sÆw   Y  W d   ƒ d S W d   ƒ d S 1 sÞw   Y  d S )Nrm  rn  r   ro  z/has incorrect type|cannot add the type MonthEndrP   )r   r   r-   r   ÚMonthEndrÌ   rS   rT   rU   rÜ   r   )r/   r‚  r0   r2   ÚanchoredrW   r   r   r   Ú-test_td64arr_addsub_anchored_offset_arraylikeb  s:   
ÿ€ÿ
ÿ€ÿ
ÿ€ÿ
ÿÿ"ÿzMTestTimedeltaArraylikeAddSubOps.test_td64arr_addsub_anchored_offset_arraylikec           
   	   C   s’  |}|t ju r
tjn|}tdddd�}t ||¡}t tdd�t 	d¡t
dƒg¡}t t¡� || }W d   ƒ n1 s=w   Y  ttdd�td	d�t
d
ƒgƒ}t ||¡ t¡}t ||¡ d}	tjt|	d��! t t¡� ||  W d   ƒ n1 s~w   Y  W d   ƒ n1 s�w   Y  t t¡� || }W d   ƒ n1 s¦w   Y  ttdƒtdƒt
dƒgƒ}t ||¡ t¡}t ||¡ d S )Nrw   rO   rI   rÇ   r   r8   r   z
2000-01-04r'   z
2000-01-07z3unsupported operand type|cannot subtract a datelikerP   r   z
2000-01-01)r   r    r*   r+   r   r   r-   r   r   rÌ   r   rÜ   r   r   rg   ri   r.   rS   rT   rU   )
r/   r0   r!   r1   r2   r6  r3   rV   r5   rW   r   r   r   Ú!test_td64arr_add_sub_object_array}  s4    
ÿÿ
ÿ€ÿ
ÿzATestTimedeltaArraylikeAddSubOps.test_td64arr_add_sub_object_array)(rY   rZ   r[   rÿ   r  r)  r1  rS   r\   r]   r   r   r*   r3  r8  r:  r=  r>  rG  r    rK  r   r
   r   rW  r[  r\  r`  rb  rf  r}   r	   rh  rk  rl  r|  r}  r�  r…  r†  r   r   r   r   rü   Ý  s^    	`BU
#úþ


üø

	#
  
rü   c                
   @   sP  e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Ze	j
jde dd¡ee dd¡ejƒeeddƒejƒeeddƒejƒe dd¡gdd„ d�dd„ ƒZdd„ Zdd„ Zdd„ Zdd„ Ze	j
 dg d¢¡e	j
 dg d ¢¡d!d"„ ƒƒZd#d$„ Zd%d&„ Zd'd(„ Zd)d*„ Zd+d,„ Ze	j
  d-¡d.d/„ ƒZ!d0d1„ Z"d2d3„ Z#d4d5„ Z$d6d7„ Z%d8d9„ Z&d:d;„ Z'd<d=„ Z(d>d?„ Z)e	j
 d@dAdBe *dA¡e *dB¡g¡dCdD„ ƒZ+e	j
 d@dAdBe *dA¡e *dB¡g¡dEdF„ ƒZ,e	j
jdGe *g dH¢¡eg dH¢ƒe-g dH¢ƒgdId„ d�dJdK„ ƒZ.e	j
jdGe *g dH¢¡eg dH¢ƒe-g dH¢ƒgdLd„ d�dMdN„ ƒZ/dOdP„ Z0dQdR„ Z1dSdT„ Z2dUS )VÚTestTimedeltaArraylikeMulDivOpsc                 C   sJ   t tjddd�ƒ}t ||¡}|d }t ||¡ d| }t ||¡ d S )NrN   rÃ   r¼   r   )r   r*   rf   r   r-   r.   ©r/   r0   r–   rV   r   r   r   Útest_td64arr_mul_int¤  s   z4TestTimedeltaArraylikeMulDivOps.test_td64arr_mul_intc                 C   sd   t dddd�}t ||¡}d g d¢¡}tjt|d�� ||  W d   ƒ d S 1 s+w   Y  d S )NrC   rà   r™   rš   ú|)zargument must be an integerú$cannot use operands with types dtypezCannot multiply withrP   )r   r   r-   ÚjoinrS   rT   rU   )r/   rä   r0   rE   rW   r   r   r   Ú%test_td64arr_mul_tdlike_scalar_raises®  s   ÿ
"ÿzETestTimedeltaArraylikeMulDivOps.test_td64arr_mul_tdlike_scalar_raisesc                 C   s\   t jddd�}t|ƒ}t|d ƒ}t ||¡}t ||¡}|t jddd� }t ||¡ d S )NrN   rÃ   r¼   )r*   rf   r   r   r-   r    r.   ©r/   r0   Úrng5r–   r5   rV   r   r   r   Útest_tdi_mul_int_array_zerodim»  s   z>TestTimedeltaArraylikeMulDivOps.test_tdi_mul_int_array_zerodimc                 C   sR   t jddd�}t|ƒ}t|d ƒ}t ||¡}t ||¡}|| }t ||¡ d S ©NrN   rÃ   r¼   r   )r*   rf   r   r   r-   r.   rŽ  r   r   r   Útest_tdi_mul_int_arrayÆ  s   z6TestTimedeltaArraylikeMulDivOps.test_tdi_mul_int_arrayc                 C   s„   |}|t tjtjfv rtn|}ttjddd�ƒ}ttjddd�d ƒ}t 	||¡}t 	||¡}|ttjddd�ƒ }t 
||¡ d S r‘  ©r   r   r   r   r    r
   r   r*   rf   r-   r.   )r/   r0   r!   r1   r–   r5   rV   r   r   r   Útest_tdi_mul_int_seriesÑ  s   z7TestTimedeltaArraylikeMulDivOps.test_tdi_mul_int_seriesc                 C   s†   |}|t tjtjfv rtn|}ttjddd�ƒ}t 	||¡}tjddd�}t||d  ƒ}t 	||¡}|t|d ƒ }t 
||¡ d S )NrN   rÃ   r¼   Úfloat64r+  r“  )r/   r0   r!   r1   r–   Úrng5fr5   rV   r   r   r   Útest_tdi_mul_float_seriesÞ  s   z9TestTimedeltaArraylikeMulDivOps.test_tdi_mul_float_seriesr3   r   é   c                 C   rM  r®   rN  rP  r   r   r   rQ  ö  rR  z(TestTimedeltaArraylikeMulDivOps.<lambda>rS  c           	      C   sp   |}t dgd ƒ}tddƒ d ¡}t ||¡}t||ƒ}t ||¡}|| }t ||¡ || }t ||¡ d S )Nr]  rD   rC   rà   )r   r   rÊ   r   r-   r   r.   )	r/   r3   r0   r!   r2   r5   r1   rV   Úcommuter   r   r   Útest_tdi_rmul_arraylikeí  s   
z7TestTimedeltaArraylikeMulDivOps.test_tdi_rmul_arraylikec                 C   s  t dddd�}t ||¡}tjtdd�� |t  W d   ƒ n1 s#w   Y  tjtdd�� t|  W d   ƒ n1 s>w   Y  t dd	¡}d
 	g d¢¡}tjt|d�� ||  W d   ƒ n1 sfw   Y  tjt|d�� ||  W d   ƒ d S 1 s‚w   Y  d S )NrC   rà   r™   rš   r  rP   zCannot divide NaTType byr	   r²   rŠ  )z0ufunc '(true_divide|divide)' cannot use operandszcannot perform __r?truediv__z*Cannot divide datetime64 by TimedeltaArray)
r   r   r-   rS   rT   rU   r	   r*   r3  rŒ  )r/   r0   rE   Údt64natrW   r   r   r   Útest_td64arr_div_nat_invalid  s$   
ÿ
ÿÿ
ÿ
"ÿz<TestTimedeltaArraylikeMulDivOps.test_td64arr_div_nat_invalidc                 C   s‚   |}|t ju r
tjn|}tddƒ}t ||¡}t d¡}t tjgd ¡}t ||¡}|| }t 	||¡ || }t 	||¡ d S )NrC   rà   r	   rD   )
r   r    r*   r+   r   r   r-   r}   r  r.   )r/   r0   r!   r1   rE   r3   r5   rV   r   r   r   Útest_td64arr_div_td64nat#  s   

z8TestTimedeltaArraylikeMulDivOps.test_td64arr_div_td64natc                 C   sn   t tjddd�ƒ}t ||¡}|d }t ||¡ tjtdd�� d|  W d   ƒ d S 1 s0w   Y  d S )NrN   rÃ   r¼   r   úCannot dividerP   ©	r   r*   rf   r   r-   r.   rS   rT   rU   rˆ  r   r   r   Útest_td64arr_div_int6  s   
"þz4TestTimedeltaArraylikeMulDivOps.test_td64arr_div_intc                 C   s�   |}|t ju r
tjn|}tdddd�}tt d¡d d tjdd�}t 	||¡}t 	||¡}|| }t 
||¡ || }d| }t 
||¡ d S )	NrC   rà   r™   rš   rD   r   é   r¨   )r   r    r*   r+   r   r   rf   r•  r   r-   r.   ©r/   rä   r0   r!   r1   rE   r5   rV   r   r   r   Útest_td64arr_div_tdlike_scalarA  s   z>TestTimedeltaArraylikeMulDivOps.test_td64arr_div_tdlike_scalarÚm)r   rO   rD   Úunit)rI   rŒ   r¤  rv   ÚmsÚusr²   c           
         sÊ   |}|t ju r
tjn|}ttdd�gd ƒ}tj|d< |}t ||¡}t‡ ‡fdd„|D ƒƒ}t ||¡}|t 	ˆ ˆ¡ }	t 
|	|¡ t‡ ‡fdd„|D ƒƒ}t ||¡}t 	ˆ ˆ¡| }	t 
|	|¡ d S )Né;   r8   rO   r   c                    s   g | ]
}|t  ˆ ˆ¡ ‘qS r   )r*   r}   ©r  rƒ   ©r¤  r¥  r   r   r  _  ru  zPTestTimedeltaArraylikeMulDivOps.test_td64arr_div_td64_scalar.<locals>.<listcomp>c                    s    g | ]}t t ˆ ˆ¡ƒ| ‘qS r   )r   r*   r}   r©  rª  r   r   r  e  s     )r   r    r*   r+   r
   r   r  r   r-   r}   r.   )
r/   r¤  r¥  r0   r!   r1   r;   Úflatr5   rV   r   rª  r   Útest_td64arr_div_td64_scalarS  s   
z<TestTimedeltaArraylikeMulDivOps.test_td64arr_div_td64_scalarc                 C   sŽ   |}|t ju r
tjn|}tdtdgdd�}tdtjdgtjdd�}t	 
||¡}t	 
||¡}|| }t	 ||¡ || }d| }t	 ||¡ d S )	NrC   r˜   r™   rš   r¡  r:   r¨   r   )r   r    r*   r+   r   r	   r   r  r•  r   r-   r.   r¢  r   r   r   Ú'test_td64arr_div_tdlike_scalar_with_natj  s   zGTestTimedeltaArraylikeMulDivOps.test_td64arr_div_tdlike_scalar_with_natc                 C   s<  |}|t ju r
tjn|}tdtdgƒ}tdtjdgtjd�}t	 
||¡}t	 
||¡}tjg d¢dd�}|| }t	 ||¡ |t	 
||¡ }t	 ||¡ || t¡ }t	 || t¡¡ |t|ƒ }t	 ||¡ d| }|| }t	 ||¡ t	 
||¡| }t	 ||¡ | t¡| }t	 ||¡ t|ƒ| }t	 ||¡ d S )	NrC   r˜   r¡  r:   r¼   )r   r'   r   zm8[h]r   )r   r    r*   r+   r   r	   r   r  r•  r   r-   r.   rg   ri   rd   )r/   r0   r!   r1   rE   r5   r3   rV   r   r   r   Útest_td64arr_div_td64_ndarray{  s0   z=TestTimedeltaArraylikeMulDivOps.test_td64arr_div_td64_ndarrayc              
   C   sÆ   t dtdgƒ}g d¢}t ||¡}d}||d d… fD ]E}|t |¡t|ƒfD ]8}tjt	|d�� ||  W d   ƒ n1 s?w   Y  tjt	|d�� ||  W d   ƒ n1 sZw   Y  q'qd S )NrC   r˜   )r   r   rO   r'   z0Cannot divide vectors|Unable to coerce to Seriesr   rP   )
r   r	   r   r-   r*   r    r   rS   rT   rÂ   )r/   r0   rE   Ú
mismatchedrW   r   r3   r   r   r   Útest_tdarr_div_length_mismatch¡  s   
ÿ
ÿ€ýþz>TestTimedeltaArraylikeMulDivOps.test_tdarr_div_length_mismatchc                 C   sB  t ddd� dt¡}tj||dd�}tj|d dd	|d
 gtd�}tj||dd�}|| }tdt 	dd¡|d dgtd�}tj||dd�}t
|tƒrN| ¡ }t ||¡ |tu rct
|jd tj	ƒscJ ‚|| }tdt 	dd¡|d dgtd�}tj||dd�}t
|tƒrˆ| ¡ }t ||¡ |tu r�t
|jd tj	ƒsŸJ ‚d S d S )Nr]  rO   r(   r   F©Ú	transposer   r,  r-  r   r¼   r+  r	   r²   )r   r   )r   Úinsertr	   r   r-   r*   r    ri   r   r}   r�   r   r,   r.   r   rï   )r/   r0   Úorigr2   r3   r4   r5   r   r   r   Ú!test_td64_div_object_mixed_result¯  s,    
 
þzATestTimedeltaArraylikeMulDivOps.test_td64_div_object_mixed_resultc           	      C   s8  |}|t ju r
tjn|}tg d¢dd�}tg d¢dd�}t ||¡}t ||¡}tjddtjgtjd�}t ||¡}|t	u rM|rM|ddg  
d¡|ddg< tjt|t ju d	d
�� || }W d   ƒ n1 sgw   Y  t ||¡ tjt|t ju d	d
�� t |¡| }W d   ƒ n1 s�w   Y  t ||¡ d S )N)éè  ézd é   r  r¼   )r¶  r·  Nr+  r   r   rÃ   F)Úcheck_stacklevel)r   r    r*   r+   r
   r   r-   r  r•  r   rg   Úmaybe_produces_warningÚRuntimeWarningr.   Úasarray)	r/   r0   Úusing_array_managerr!   r1   ro   rp   r5   rV   r   r   r   Ú&test_td64arr_floordiv_td64arr_with_natÑ  s,   ÿ
ýÿýzFTestTimedeltaArraylikeMulDivOps.test_td64arr_floordiv_td64arr_with_natz/ignore:invalid value encountered:RuntimeWarningc           	      C   sÄ   |}|t ju r
tjn|}tdƒ}t||tgdd�}tj||dd�}tddtj	gƒ}tj||dd�}|| }t 
||¡ tddtj	gƒ}tj||dd�}|| }t 
||¡ | |¡}t 
||¡ d S )NÚ5m3sr   r¼   Fr±  r   r   )r   r    r*   r+   r   r
   r	   r   r-   r  r.   Ú__rfloordiv__)	r/   r0   Ú	scalar_tdr!   r1   rª   Útd1r5   rV   r   r   r   Útest_td64arr_floordiv_tdscalarô  s   
z>TestTimedeltaArraylikeMulDivOps.test_td64arr_floordiv_tdscalarc                 C   sr   t tjddd�ƒ}t ||¡}|d }t ||¡ d}tjt|d�� d|  W d   ƒ d S 1 s2w   Y  d S )NrN   rÃ   r¼   r   z@floor_divide cannot use operands|Cannot divide int by Timedelta*rP   rŸ  )r/   r0   r–   rV   Úpatternr   r   r   Útest_td64arr_floordiv_int  s   
"ÿz9TestTimedeltaArraylikeMulDivOps.test_td64arr_floordiv_intc                 C   sÈ   t ddƒ}t ||¡}tg d¢d ƒ}t ||¡}|| }t ||¡ d }|tu r6t|tjƒr6t	}| 
t¡}t |¡� t||ƒ}W d   ƒ n1 sKw   Y  t |d |¡ t |d || ¡ d S )Nr]  ú9 days)r]  z2 Daysú0 DaysrO   r   r   )r   r   r-   r   r.   r   r�   r   Ú
DateOffsetr   rg   ri   rÜ   Údivmod)r/   r0   Ú
three_daysr2   r6  r5   rV   Úwarnr   r   r   Útest_td64arr_mod_tdscalar  s   

ÿz9TestTimedeltaArraylikeMulDivOps.test_td64arr_mod_tdscalarc                 C   s¶   t dddd�}t ||¡}tddgd ƒ}t ||¡}|d }t ||¡ d}tjt|d	�� d|  W d   ƒ n1 s=w   Y  t|dƒ}t |d
 |¡ t |d |d ¡ d S )Nz1 nsz10 nsrD   r(   z0 nsrN   r   zCannot divide int byrP   r   r   )	r   r   r-   r   r.   rS   rT   rU   rÉ  )r/   r0   r2   r6  r5   rV   rW   r   r   r   Útest_td64arr_mod_int6  s   
ÿ
z4TestTimedeltaArraylikeMulDivOps.test_td64arr_mod_intc                 C   s‚   t ddƒ}t ||¡}g d¢dgd  }t|ƒ}t ||¡}|| }t ||¡ t||ƒ}t |d |¡ t |d || ¡ d S )Nr]  rÆ  )rÇ  r]  rÇ  z3 Daysé   r   r   )r   r   r-   r   r.   rÉ  )r/   r0   rÊ  r2   r6  r5   rV   r   r   r   Útest_td64arr_rmod_tdscalarH  s   

z:TestTimedeltaArraylikeMulDivOps.test_td64arr_rmod_tdscalarc                 C   s¤   t tddd�gd ƒ}tj|jd< t ||¡}d}tjt	|d�� ||  W d   ƒ n1 s/w   Y  tjt	|d�� ||  W d   ƒ d S 1 sKw   Y  d S ©NrN   rO   r  r   z(operate|unsupported|cannot|not supportedrP   ©
r
   r   r*   r  rï   r   r-   rS   rT   rU   )r/   r0   rÁ  rÂ  rÄ  r   r   r   Ú!test_td64arr_mul_tdscalar_invalidZ  s   
ÿ
"ÿzATestTimedeltaArraylikeMulDivOps.test_td64arr_mul_tdscalar_invalidc                 C   s°   t tjddd�ƒ}t ||¡}d g d¢¡}tjt|d�� ||d d…   W d   ƒ n1 s0w   Y  tjt	|d�� |t 
dd	g¡  W d   ƒ d S 1 sQw   Y  d S )
NrN   rÃ   r¼   rŠ  )r‹  z$Cannot multiply with unequal lengthszUnable to coerce to SeriesrP   rO   r   r   )r   r*   rf   r   r-   rŒ  rS   rT   rU   rÂ   r    ©r/   r0   r–   rW   r   r   r   Ú!test_td64arr_mul_too_short_raisesi  s   ÿþ"ÿzATestTimedeltaArraylikeMulDivOps.test_td64arr_mul_too_short_raisesc                 C   s^   t tjddd�ƒ}t ||¡}d}tjt|d�� ||  W d   ƒ d S 1 s(w   Y  d S )NrN   rÃ   r¼   r‹  rP   )r   r*   rf   r   r-   rS   rT   rU   rÓ  r   r   r   Útest_td64arr_mul_td64arr_raisesy  s   
"ÿz?TestTimedeltaArraylikeMulDivOps.test_td64arr_mul_td64arr_raisesc                 C   s´   t g d¢dd�}t g d¢dd�}t ||¡}t ||¡}||  }t ||¡ | | }t ||¡ t g d¢dd�}t ||¡}|d|  }t ||¡ d| | }t ||¡ d S )NrI  r   r¼   )ú-59 DaysrÖ  r	   r  )ú118 Daysr×  r	   r   )r
   r   r-   r.   )r/   r0   rZ  r9  r5   rV   r   r   r   Útest_td64arr_mul_numeric_scalarƒ  s   

z?TestTimedeltaArraylikeMulDivOps.test_td64arr_mul_numeric_scalarÚtwor   r-  c                 C   sˆ   t g d¢dd�}t g d¢dd�}t ||¡}t ||¡}|| }t ||¡ tjtdd�� ||  W d   ƒ d S 1 s=w   Y  d S ©NrI  r   r¼   )ú29.5DrÛ  r	   r  rž  rP   ©r
   r   r-   r.   rS   rT   rU   ©r/   r0   rÙ  r9  r5   rV   r   r   r   Útest_td64arr_div_numeric_scalar™  s   
"ÿz?TestTimedeltaArraylikeMulDivOps.test_td64arr_div_numeric_scalarc                 C   sˆ   t g d¢dd�}t g d¢dd�}t ||¡}t ||¡}|| }t ||¡ tjtdd�� ||  W d   ƒ d S 1 s=w   Y  d S rÚ  rÜ  rÝ  r   r   r   Ú$test_td64arr_floordiv_numeric_scalar©  s   
"ÿzDTestTimedeltaArraylikeMulDivOps.test_td64arr_floordiv_numeric_scalarrV  )é   r¸  é(   c                 C   rM  r®   rN  rP  r   r   r   rQ  º  rR  c                 C   sx   t g d¢dd�}| |¡}t g d¢dd�}t ||¡}t||ƒ}t ||¡}|| }t ||¡ || }t ||¡ d S )NrI  r   r¼   )z	1180 Daysz	1770 Daysr	   r  )r
   rg   r   r-   r   r.   )r/   r0   rV  rU  r9  r5   r1   rV   r   r   r   Útest_td64arr_rmul_numeric_array·  s   

z?TestTimedeltaArraylikeMulDivOps.test_td64arr_rmul_numeric_arrayc                 C   rM  r®   rN  rP  r   r   r   rQ  Ø  rR  c           	         sÚ  t g d¢dd�‰ ˆ |¡‰t g d¢dd�}t ˆ |¡‰ tˆ ˆƒ}t ||¡}ˆ ˆ }t ||¡ d g d¢¡}tjt	|d�� ˆˆ   W d   ƒ n1 sMw   Y  ˆ ˆ t
¡ }|tu r�‡ ‡fd	d
„ttˆƒƒD ƒ}t ||¡ t
¡}d}tjt|d�� |d jt dd¡dd�|d< W d   ƒ n1 s—w   Y  n)‡ ‡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   ƒ d S 1 sæw   Y  d S )NrI  r   r¼   )z2.95Dz
1D 23h 12mr	   r  rŠ  )z!true_divide'? cannot use operandszcannot perform __div__zcannot perform __truediv__zunsupported operandrž  z-ufunc 'divide' cannot use operands with typesrP   c                    s"   g | ]}ˆ j d |f ˆ|  ‘qS )r   )rï   rs  ©r9  rV  r   r   r  û  s   " zRTestTimedeltaArraylikeMulDivOps.test_td64arr_div_numeric_array.<locals>.<listcomp>z The 'downcast' keyword in fillnar   r	   r²   F©Údowncastc                    s   g | ]
}ˆ | ˆ|  ‘qS r   r   rs  rã  r   r   r    ru  c                 S   s$   g | ]}|t ur
|nt d d¡‘qS )r	   r²   )r	   r*   r}   r©  r   r   r   r    s    ÿ)r
   rg   r   r-   r   r.   rŒ  rS   rT   rU   ri   r   re   ry  rÜ   ÚFutureWarningÚfillnar*   r}   r   )	r/   r0   rV  rU  r5   r1   rV   rÄ  rW   r   rã  r   Útest_td64arr_div_numeric_arrayÕ  sH   

ÿ

ÿÿÿ€ÿ
"ÿz>TestTimedeltaArraylikeMulDivOps.test_td64arr_div_numeric_arrayc           
      C   sš   |}t ||ƒ}tg d¢|d d�}tg d¢tj|d d�}tg d¢d|d�}t ||¡}t||ƒ}t ||¡}|| }	t |	|¡ || }	t |	|¡ d S )	N©Ú0daysÚ1dayÚ2daysÚ3daysÚ4daysr   rš   )r   r   r   rO   r'   r   r¨   )rê  rë  rî  Ú9daysÚ16daysr  )	r$   r   r
   r*   rÃ   r   r-   r   r.   )
r/   r0   r"   r!   r#   r2   r;   r5   r1   rV   r   r   r   Útest_td64arr_mul_int_series  s$   
ÿý
z;TestTimedeltaArraylikeMulDivOps.test_td64arr_mul_int_seriesc                    sÊ   |}t g d¢|d d�‰tg d¢tj|d d�‰ |tjtjfvr$|d n|d }t‡ ‡fdd	„tt	ˆ ƒƒD ƒd
|d�}t 
ˆ|¡‰tˆˆ ƒ}t 
||¡}ˆ  ˆ¡}|tu r]|tu s[J ‚d S t ||¡ d S )Nré  r   rš   )r,  rO   g      @rÎ  g      @r   r¨   r   c                    s   g | ]
}ˆ| ˆ |  ‘qS r   r   rs  ©r;   r2   r   r   r  9  ru  zRTestTimedeltaArraylikeMulDivOps.test_float_series_rdiv_td64arr.<locals>.<listcomp>r  )r   r
   r*   r•  r   r   r   r    re   ry  r-   r   Ú__rtruediv__r   ÚNotImplementedr.   )r/   r0   r"   r!   Úxnamer5   r1   rV   r   rò  r   Útest_float_series_rdiv_td64arr/  s$   ÿ ý

z>TestTimedeltaArraylikeMulDivOps.test_float_series_rdiv_td64arrc           	      C   sÚ   t ttgƒ}t ||¡}tjddgtd�}t dd¡}t|gd td�}|turWt ||¡ 	t¡}|t
tfv rWd}tjt|d�� |j|dd	�}W d   ƒ n1 sRw   Y  || }t ||¡ || }t ||¡ d S )
Nr   r-  r¼   r	   r²   z.The 'downcast' keyword in fillna is deprecatedrP   Frä  )r   r	   r   r-   r*   r    ri   r}   r   rg   r
   r   rÜ   ræ  rç  r.   )	r/   r0   r2   ro   rp   rg  r5   rW   rV   r   r   r   Ú-test_td64arr_all_nat_div_object_dtype_numericH  s    ÿzMTestTimedeltaArraylikeMulDivOps.test_td64arr_all_nat_div_object_dtype_numericN)3rY   rZ   r[   r‰  r�  r�  r’  r”  r—  rS   r\   r]   r*   rf   r   rÃ   re   Úuint64r•  r   Ú
RangeIndexrš  rœ  r�  r   r£  r¬  r­  r®  r°  rµ  r¾  ÚfilterwarningsrÃ  rÅ  rÌ  rÍ  rÏ  rÒ  rÔ  rÕ  rØ  r    rÞ  rß  r
   râ  rè  rñ  rö  r÷  r   r   r   r   r‡  œ  sv    


û÷
&"
#

 
 
"ý
"ý
8r‡  c                   @   s   e Zd Zdd„ ZdS )Ú"TestTimedelta64ArrayLikeArithmeticc                 C   s¤   t tddd�gd ƒ}tj|jd< t ||¡}d}tjt	|d�� ||  W d   ƒ n1 s/w   Y  tjt	|d�� ||  W d   ƒ d S 1 sKw   Y  d S rÐ  rÑ  )r/   rÁ  r0   rÂ  rÄ  r   r   r   Útest_td64arr_pow_invalidd  s   
ÿ
"ÿz;TestTimedelta64ArrayLikeArithmetic.test_td64arr_pow_invalidN)rY   rZ   r[   rü  r   r   r   r   rû  _  s    rû  c                     sD   t dƒ‰ ˆ tdddd� } t‡ fdd„tdƒD ƒƒ}t | |¡ d S )Nr@   Ú0sr*  é   r(   c                    s6   g | ]}ˆ t  d ¡| t  d¡t|dƒd    ‘qS )z0.033333333sz0.000000001srO   r   )r   rî   rÉ  r  ©Ú	timestampr   r   r  z  s    ûÿþÿz3test_add_timestamp_to_timedelta.<locals>.<listcomp>)r   r   r   re   r   r‘   r¯   r   rÿ  r   Útest_add_timestamp_to_timedeltau  s   
úÿ
r  )'r   r   Únumpyr*   rS   Úpandas.errorsr   r   Úpandasr   r   r   r   r	   r
   r   r   r   r   r   Úpandas._testingÚ_testingr   Úpandas.core.arraysr   Úpandas.tests.arithmetic.commonr   r   r   r   r$   r%   rl   r~   rì   rü   r‡  rû  r  r   r   r   r   Ú<module>   s@   0	kg   A     D     H