a
    nÝEbÐ' ã                   @   s  d dl m Z mZ d dlZd dlZd dlmZmZ d dlZ	d dlm
Z
mZmZmZmZmZmZmZmZ d dlmZ d dlmZmZmZ d dlmZmZmZ dd„ Zd	d
„ ZG dd„ dƒZ G dd„ dƒZ!G dd„ dƒZ"G dd„ dƒZ#G dd„ dƒZ$G dd„ dƒZ%G dd„ dƒZ&dd„ Z'dS )é    )ÚdatetimeÚ	timedeltaN)ÚOutOfBoundsDatetimeÚPerformanceWarning)	Ú	DataFrameÚDatetimeIndexÚNaTÚSeriesÚ	TimedeltaÚTimedeltaIndexÚ	TimestampÚoffsetsÚtimedelta_range)ÚFloat64IndexÚ
Int64IndexÚUInt64Index)Úassert_invalid_addsub_typeÚassert_invalid_comparisonÚget_upcast_boxc                 C   s   t  | ¡}||ksJ ‚dS )zT
    Helper to check the dtype for a Series, Index, or single-column DataFrame.
    N)ÚtmÚ	get_dtype)ÚobjZexpected_dtypeÚdtype© r   úh/home/ja/django-apps/lartica_env/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_name2   s    

r$   c                   @   s^  e Zd Zdd„ Zej dedd�edd�edd� 	¡ e
 d¡g¡dd„ ƒZej d	d
dedƒedƒ d¡edƒ ¡  ¡ edƒ ¡  ¡ edƒ ¡ e d¡g¡dd„ ƒZej deedƒƒe d¡e d¡ ej¡e d¡ e¡ejdddd�je ejddd�¡eejddd�ƒejddd� e¡ejdddd�jejdddd� e¡g
¡dd„ ƒZdd„ ZdS )Ú#TestTimedelta64ArrayLikeComparisonsc                 C   sz   |}|t jt jfvr|ntj}tddd�}t | ¡ d ¡}t ||¡}||k}t g d¢¡}t ||¡}t 	||¡ d S )NÚ2Hé   ©Úperiodsr   )TFFF)
r   ÚIndexr    ÚnpÚndarrayr   Zto_numpyr   Úbox_expectedÚassert_equal)ÚselfÚbox_with_arrayr!   ÚxboxÚtdiÚotherÚresÚexpectedr   r   r   Ú test_compare_timedelta64_zerodimG   s    ÿzDTestTimedelta64ArrayLikeComparisons.test_compare_timedelta64_zerodimÚ	td_scalarr   ©Údaysé   c                 C   sr   |}|t jt jfvr|ntj}ttdd�tdd�gƒ}t ||¡}||k}tddgƒ}t ||¡}t 	||¡ d S )Nr   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_scalarW   s    zETestTimedelta64ArrayLikeComparisons.test_compare_timedeltalike_scalarÚinvalidl     x
Ii	 Úaú
2021-01-01ÚUTCr'   c                 C   s,   |}t ddd�}t ||¡}t|||ƒ d S ©Nú1 daysé
   r(   )r   r   r-   r   )r/   r0   r>   r!   Úrngr   r   r   r   Útest_td64_comparisons_invalidl   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 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 )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
   Zto_timedelta64r   ÚHourr=   r   ÚnowÚto_datetime64Úto_pydatetimeÚdater+   r    rF   ÚlistÚrangeÚarangeÚastypeZfloat32Úobjectr   Ú
date_rangeZperiod_rangerM   rX   r   r   r   r   r%   B   sN   üþ	

øþ
	
öþ
r%   c                   @   s6   e Zd Zej ddeg¡dd„ ƒZ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 )NrC   ú3 days)FFT)TTF)FFF©TTT)	r   r
   r   rg   rf   r+   r    r   rR   )r/   r   ÚleftÚrightÚlhsÚrhsrV   r5   r   r   r   Útest_comp_nat²   s(    
z-TestTimedelta64ArrayComparisons.test_comp_natc           	      C   sp  t dtdtddgƒ}t ddttddgƒ}t t dd¡t dd¡t d	¡t d	¡t d
d¡t dd¡ t dd¡t dd¡ g¡}||f||fg}|D ]Ô\}}||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 ||¡ q–d S )Nú1 dayz1 day 00:00:01z5 day 00:00:03z2 dayz1 day 00:00:02z5 days 00:00:03r   rI   Znatr   ÚsrN   rO   )TFFFTF)TFFFTT)FFFFFT)TTTTTF)r   r   r+   r    Útimedelta64r   rR   )	r/   Ztdidx1Ztdidx2ÚtdarrZcasesZidx1Zidx2rV   r5   r   r   r   Útest_comparisons_natÏ   sR    úÿ
ÿ

úÿ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   rk   Fé   )r   r+   r    r   rR   rc   )r/   rE   rV   r5   Úexpr   r   r   Útest_comparisons_coverage  s    z9TestTimedelta64ArrayComparisons.test_comparisons_coverage)
rY   rZ   r[   rS   r\   r]   rg   rp   ru   rx   r   r   r   r   ri   ¯   s   
7ri   c                   @   sv   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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©rK   Únamer   )rz   r{   Z12HZ16HZ20Hrz   )Ú1Hr&   Z3Hrz   Z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   rw   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	j
||dd� || }t dtdgdd�}t	j
||dd� || }tg d¢ddd�}t	j
||dd� || }tdtdgdd�}t	 
||¡ d S )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“   F)Zcheck_namesr”   ©Ú20121231r�   Ú20130102rI   r}   r˜   Z20121230)r   r   r   rh   r
   r   rS   rT   rU   r   r…   r   )r/   r2   ÚdtiÚtdÚdtrW   rV   r5   r   r   r   Útest_subtraction_ops9  sF    &&&(
ÿ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�}t ||¡}t ||¡ d S )Nr�   rO   r(   z
US/EasternZCETrC   c                 S   s   | |ksJ ‚t | tƒsJ ‚d S ©N)r„   r
   ©rV   r5   r   r   r   Ú_checkv  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   )r   rh   r   r-   r   ra   Ztz_localizer
   rS   rT   rU   r   r.   r   )r/   r0   rš   Útsrœ   Zdti_tzZts_tzZts_tz2Zdt_tzr›   r    rV   r5   rW   r   r   r   Útest_subtraction_ops_with_tzh  s€    


&(((((((
z>TestTimedelta64ArithmeticUnsorted.test_subtraction_ops_with_tzc                 C   s”   t dtdgdd�}tjdddd�}|| }t d	td	gdd�}t ||¡ || }t dtd
gdd�}t ||¡ || }tdtdgƒ}t ||¡ d S )NrC   rŒ   r�   rŽ   r�   rO   r�   r‘   r“   ú4 daysr˜   )r   r   r   rh   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�}t ||¡ || }td	td
gdd�}t ||¡ || }t dtdgdd�}t ||¡ || }t dtdgdd�}t ||¡ d}t	j
t|d��  ||dd…   W d   ƒ n1 �s0    Y  t	j
t|d��  |dd… |  W d   ƒ n1 �sD0    Y  d}t	j
t|d��  |tg d¢ƒ  W d   ƒ n1 �sˆ0    Y  || }td	tdgƒ}t ||¡ || }td	tdgƒ}t ||¡ || }td	ƒ}||k�sôJ ‚|| }td	ƒ}||k�sJ ‚d S )NrC   rŒ   r�   rŽ   r�   rO   r�   r‘   r™   Z20130103rj   z$cannot add indices of unequal lengthrP   r   r   ú3Addition/subtraction of integers and integer-arrays©r   r   rO   Z20130105)r   r   r   rh   r
   r   r   r   r…   rS   rT   Ú
ValueErrorrU   r   )r/   r2   rš   r›   rœ   rV   r5   rW   r   r   r   Útest_addition_opsÎ  sH    000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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 ||¡ t  dd	¡}t|ƒ}|t d¡ }	t|t d
¡ ƒ}
|t d
¡ }t|t d¡ ƒ}|	j	|j	k�sHJ ‚|	 d ¡}	t |	|¡ |j	|j	k�spJ ‚| d ¡}t |
|¡ d S )Nz1/1/2000é2   ©r)   rK   r   éÿÿÿÿÚinferrI   Z2013Z2014i áõ)r   rh   r   Ú
_with_freqr   r…   Ztseriesr   ÚDayrK   ZBusinessDayr	   r^   r   r+   rs   )r/   rK   ÚindexZshiftedÚbackr5   rV   rE   rr   Zresult1Zresult2Zresult3Zresult4r   r   r   Útest_timedelta  s8    


z0TestTimedelta64ArithmeticUnsorted.test_timedeltac                 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   rh   r   r…   )r/   r2   Ztdarš   rV   r5   r   r   r   Útest_tda_add_sub_index-  s    z8TestTimedelta64ArithmeticUnsorted.test_tda_add_sub_indexc           	      C   s†   |}t jdd|d�}| d ¡}|| }t ||¡}t ||¡}t t¡� || t¡ }W d   ƒ n1 sl0    Y  t 	||¡ d S )Nú
2016-01-01rO   rG   )
r   rh   r¯   r   r-   Úassert_produces_warningr   rf   rg   r.   )	r/   r0   Útz_naive_fixturer!   rš   r2   r   r3   rV   r   r   r   Útest_tda_add_dt64_object_array@  s    
,z@TestTimedelta64ArithmeticUnsorted.test_tda_add_dt64_object_arrayc                 C   sb   t ddƒ}t dddd�}t ||¡}t ||¡}|}||7 }t ||¡ |tjur^t ||¡ d S ©NrC   ú10 daysz1 days 02:00:00z10 days 02:00:00rI   ©rK   ©r   r   r-   r.   r   r*   ©r/   Ú	two_hoursr0   rE   r5   Zorig_rngr   r   r   Útest_tdi_iadd_timedeltalikeR  s    

z=TestTimedelta64ArithmeticUnsorted.test_tdi_iadd_timedeltalikec                 C   s^   t ddƒ}t ddƒ}t ||¡}t ||¡}|}||8 }t ||¡ |tjurZt ||¡ d S ©NrC   rº   z0 days 22:00:00z9 days 22:00:00r¼   r½   r   r   r   Útest_tdi_isub_timedeltalikea  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Œ   rN   Z2Dr|   )r)   rK   r~   r   r¤   r   r•   Z4DrC   rI   z-2D)rŒ   rC   r“   rC   rŒ   rŽ   )r   rK   r   r…   rˆ   r   )r/   rE   rV   rw   r   r   r   Útest_tdi_ops_attributesr  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   ry     s   /U8
&ry   c                   @   s   e Zd Zdd„ Zdd„ ZdS )ÚTestAddSubNaTMaskingc           
      C   s¸   t  ddg¡}t ||¡}tdƒ}|| ¡ | ¡  d¡| ¡  d¡g}tdƒ}|| ¡ | ¡  d¡| ¡  d¡g}|| D ]8}|| }	|tu r¢|	j	d t
u s²J ‚qz|	d t
u szJ ‚qzd S )	Nz24658 days 11:15:00r   z
1950-01-01zdatetime64[ns]zdatetime64[D]z
1980-01-01)r   r   r   )r   Úto_timedeltar   r-   r   ra   r`   rf   r   Úilocr   )
r/   r0   ZtdinatZtdobjZtsnegZts_neg_variantsZtsposZts_pos_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 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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/   Z_NaTrW   rw   rV   r   r   r   Útest_tdi_add_overflow·  s<    22
4646ÿÿ"
ÿz*TestAddSubNaTMasking.test_tdi_add_overflowN)rY   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ej de	e
ejg¡dd	„ ƒZd
d„ Zdd„ Zdd„ Zej dg d¢¡ej dddg¡dd„ ƒƒZej dddde d¡g¡dd„ ƒZejjde g d¢¡e g d¢¡eg d¢ƒeg d¢gƒgd d!„ d"�d#d$„ ƒZd%d&„ Zd'd(„ Zd)d*„ Zd+d,„ Zd-d.„ Zej d/e d0¡eg¡d1d2„ ƒZ d3d4„ Z!d5d6„ Z"d7d8„ Z#d9d:„ Z$d;d<„ Z%ej d=ejejeg¡d>d?„ ƒZ&d@dA„ Z'dS )BÚTestTimedeltaArraylikeAddSubOpsc                 C   s†  t  tdgƒ¡}t  tdgƒ¡}d}tjt|d��  t  ttgƒ¡ W d   ƒ n1 sX0    Y  t  ttgdd�¡}tdgƒ t j¡}tdgƒ t j¡}tjt|d��" ttgƒ t j¡ W d   ƒ n1 sÐ0    Y  ttj	gƒ t j¡}t  d¡}t  d¡}	t  d¡}
|| }||	k�s"J ‚|	| }||k�s8J ‚|| }t
 ||¡ || }t
 ||¡ || }t
 ||¡ || }t
 ||¡ || }t
 ||¡ | | }t
 ||¡ ||
 }t
 ||¡ |
| }t
 ||¡ ||
 }t
 ||¡ |
 | }t
 ||¡ d}tjt|d�� |tj  W d   ƒ n1 �s80    Y  tjt|d�� tj|  W d   ƒ n1 �sr0    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 }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 �sP0    Y  |t }t
 ||¡ |t }t
 ||¡ d S )
Nz00:00:01z00:00:02z?dtype datetime64\[ns\] cannot be converted to timedelta64\[ns\]rP   úm8[ns]©r   r   úunsupported operand typez8cannot subtract a datelike from|unsupported operand type)r   rÄ   r	   rS   rT   rU   r   r   ÚapplyrÊ   r   Úassert_series_equalr+   ÚnanZassert_frame_equal)r/   Ús1Ús2rW   ZsnZdf1Zdf2ÚdfnZscalar1Zscalar2Ztimedelta_NaTr<   r   r   r   Ú&test_timedelta_ops_with_missing_valueså  s     .0




***,**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�}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�sRJ ‚|d t tddd�¡ }|d  t tddd�¡7  < |d |k�sœJ ‚d S )Nz2012-1-1rO   rI   r¬   z2012-1-2g  ÀS$¥ÓBÚint64útimedelta64[ns]ÚAc                 S   s   g | ]}t |d �‘qS )r8   ©r   ©Ú.0Úir   r   r   Ú
<listcomp>Y  ó    zNTestTimedeltaArraylikeAddSubOps.test_operators_timedelta64.<locals>.<listcomp>zM8[ns]Z20111230Z20120101Z20120103rŽ   iÑ  r   c                 S   s   g | ]}t d | d�‘qS )i±  r8   rÛ   rÜ   r   r   r   rß   r  rà   rÎ   r'   r8   rN   ©ÚminutesÚsecondsr   )r   rh   r	   r±   rf   r   rÒ   r   r   rd   ÚshiftÚmaxr„   r   r   r   r+   rs   )r/   Úv1Úv2ÚrsZxpZdfr›   rV   ZmaxaZresultbÚvaluesr5   ÚdZresultarÊ   r   r   r   Útest_operators_timedelta64O  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"| ¡ }n$|tju rB|d ur8d S | ¡ }n|}tddd�}tjdd|d�}t	 
||¡}	t	 
||¡}t	 ||	 |¡ t	 |	| |¡ tjddd	|d
�}
t	 
|
|¡}
t	 ||	 |
¡ t	 ||	  |
¡ d}tjt|d�� |	|  W d   ƒ n1 �s0    Y  d S )Nz
2012-01-01r¡   rq   rO   r(   z
2012-01-02rG   z
2011-12-31z-1D)r)   rK   rH   zcannot subtract a datelikerP   )r   r   ra   r+   Ú
datetime64r`   r   r   rh   r   r-   r.   rS   rT   rU   )r/   rñ   r0   r·   rH   Z	dt_scalarr¢   r2   r5   rt   Z	expected2rW   r   r   r   Ú(test_td64arr_add_sub_datetimelike_scalaræ  s,    


zHTestTimedeltaArraylikeAddSubOps.test_td64arr_add_sub_datetimelike_scalarc                 C   s^   t  d¡}tddd�}tg d¢ƒ}t ||¡}t ||¡}t || |¡ t || |¡ d S )Nr   rq   rO   r(   )r   r   r   )r+   rò   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 sv0    Y  || }t 
||¡ d S )Nrµ   rO   r(   ú-1 Dayzcannot subtract a datelike fromrP   )r   rh   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   rh   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 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 typerP   )r   r   Z	to_periodr   r-   rS   rT   rU   )
r/   r0   Zbox_with_array2rý   rú   r2   rš   ÚpiZperrW   r   r   r   Útest_td64arr_sub_periodlike9  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 Daysr  r   rÎ   rÏ   )r	   r   r-   r   )r/   r0   r3   rô   rt   r   r   r   Ú*test_td64arr_addsub_numeric_scalar_invalidN  s    zJTestTimedeltaArraylikeAddSubOps.test_td64arr_addsub_numeric_scalar_invalidÚvecr§   c                 C   s
   t | ƒjS rž   ©ÚtyperY   ©r|   r   r   r   Ú<lambda>h  rà   z(TestTimedeltaArraylikeAddSubOps.<lambda>©Úidsc                 C   s4   t g d¢dd�}t ||¡}| |¡}t||ƒ d S r   )r	   r   r-   rf   r   )r/   r0   r  Úany_real_numpy_dtyperô   rt   Úvectorr   r   r   Ú'test_td64arr_addsub_numeric_arr_invalid`  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€   rD   rJ   ú Addition/subtraction of integersrP   )r   r   r-   r   rS   rT   rU   )r/   r0   ÚonerE   rt   rW   r   r   r   Útest_td64arr_add_sub_ints  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€   rO   rJ   )r'   rO   r   r¦   )r   r    r+   r,   r   r   r-   r   )r/   r0   r!   r1   rE   rt   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­   é   r  )r   r    r+   r,   r   r   r-   r   )r/   r0   r!   r1   r2   rt   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   rh   rä   ré   r   r-   r.   )	r/   r0   r!   rš   r2   rt   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“   rq   r   rŽ   rO   )Úhoursr'   r   )r9   r  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   r  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À   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jtjdd�tjdd�g|d d�‰ |tjtj	fv rbt
 	ˆ ¡nˆ ‰ t‡ ‡fdd	„ttˆƒƒD ƒd
|d�}t‡ ‡fdd	„ttˆƒƒD ƒd
|d�}t ˆ|¡‰t ||¡}t ||¡}t t¡� ˆˆ  }W d   ƒ n1 sþ0    Y  t ||¡ t t¡� ˆ ˆ }W d   ƒ n1 �s>0    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&  ©r3   r2   r   r   rß     rà   zUTestTimedeltaArraylikeAddSubOps.test_td64arr_add_sub_offset_index.<locals>.<listcomp>r®   r}   c                    s   g | ]}ˆ| ˆ |  ‘qS r   r   r(  r)  r   r   rß     rà   )r$   r   r   r*   r   r^   ÚMinuter   r   r    r+   rd   Úlenr-   r¶   r   r.   )
r/   r"   r0   r!   r#   r5   r  r4   Úres2Úres_subr   r)  r   Ú!test_td64arr_add_sub_offset_index  s.    
&ÿÿ&((zATestTimedeltaArraylikeAddSubOps.test_td64arr_add_sub_offset_indexc                    sZ  |}t ddgƒ‰t tjdd�tjdd�g¡‰ t ‡ ‡fdd„ttˆƒƒD ƒdd	�}t ‡ ‡fd
d„ttˆƒƒD ƒdd	�}t 	ˆ|¡‰t 	||¡}t 
t¡� ˆˆ  }W d   ƒ n1 s¶0    Y  t ||¡ t 
t¡� ˆ ˆ }W d   ƒ n1 sô0    Y  t ||¡ t 	||¡}t 
t¡� ˆˆ  }W d   ƒ n1 �s@0    Y  t ||¡ d S )Nr#  r$  r   r%  r'  c                    s   g | ]}ˆ| ˆ |  ‘qS r   r   r(  r)  r   r   rß   2  rà   zUTestTimedeltaArraylikeAddSubOps.test_td64arr_add_sub_offset_array.<locals>.<listcomp>r®   r»   c                    s   g | ]}ˆ| ˆ |  ‘qS r   r   r(  r)  r   r   rß   5  rà   )r   r+   r    r   r^   r*  rd   r+  r   r-   r¶   r   r.   )r/   r0   r!   r5   r  r4   r,  r-  r   r)  r   Ú!test_td64arr_add_sub_offset_array+  s*    ÿÿ&&(zATestTimedeltaArraylikeAddSubOps.test_td64arr_add_sub_offset_arrayc                    s�  |}|t jtjt jfv rtn|}t||ƒ}tddg|d d�‰ttj	dd�tj
dd�g|d d�‰ t‡ ‡fdd	„ttˆƒƒD ƒ|d�}t ˆ|¡}t ||¡}t t¡� |ˆ  }W d   ƒ n1 sÆ0    Y  t ||¡ t t¡� ˆ | }	W d   ƒ n1 �s0    Y  t |	|¡ t‡ ‡fd
d	„ttˆƒƒD ƒ|d�}
t |
|¡}
t t¡� |ˆ  }W d   ƒ n1 �sv0    Y  t ||
¡ d S )Nr#  r$  r   rŽ   r   r%  r'  c                    s   g | ]}ˆ| ˆ |  ‘qS r   r   r(  r)  r   r   rß   Q  rà   zSTestTimedeltaArraylikeAddSubOps.test_td64arr_with_offset_series.<locals>.<listcomp>c                    s   g | ]}ˆ| ˆ |  ‘qS r   r   r(  r)  r   r   rß   ]  rà   )r   r*   r   r   r    r	   r$   r   r   r^   r*  rd   r+  r-   r¶   r   r.   )r/   r"   r0   r!   Zbox2r#   Zexpected_addr   r4   r,  r  Zres3r   r)  r   Útest_td64arr_with_offset_seriesH  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 MonthEndrP   )r   r   r-   r   ZMonthEndr°   rS   rT   rU   r¶   r   )r/   r1  r0   r2   ZanchoredrW   r   r   r   Ú-test_td64arr_addsub_anchored_offset_arrayliked  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 ||¡ 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 �sL0    Y  t  tdƒtdƒt
dƒg¡}t ||¡}t ||¡ d S )Nrq   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*   r.   rS   rT   rU   )
r/   r0   r!   r1   r2   rt   r3   rV   r5   rW   r   r   r   Ú!test_td64arr_add_sub_object_array  s*     &ÿF(zATestTimedeltaArraylikeAddSubOps.test_td64arr_add_sub_object_array)(rY   rZ   r[   r×   rë   rð   rS   r\   r]   r   r   r+   rò   ró   rõ   rø   rù   rÿ   r    r  r   r*   r	   r   r  r  r  r  r  r  rs   r   r  r!  r"  r.  r/  r0  r2  r3  r   r   r   r   rÍ   à  sZ   jBU
#úþ

üø

	#
 
rÍ   c                
   @   s2  e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Ze	j
jde dd¡eeddƒƒeeddƒƒeeddƒƒe dd¡gdd„ d�dd„ ƒZdd„ Zdd„ Zdd„ Zdd„ Ze	j
 dg d¢¡e	j
 dg d ¢¡d!d"„ ƒƒZd#d$„ Zd%d&„ Zd'd(„ Zd)d*„ Zd+d,„ Zd-d.„ Zd/d0„ Z d1d2„ Z!d3d4„ Z"d5d6„ Z#d7d8„ Z$d9d:„ Z%d;d<„ Z&e	j
 d=d>d?e 'd>¡e 'd?¡g¡d@dA„ ƒZ(e	j
 d=d>d?e 'd>¡e 'd?¡g¡dBdC„ ƒZ)e	j
jdDe 'g dE¢¡e *g dE¢¡e+g dE¢ƒgdFd„ d�dGdH„ ƒZ,e	j
jdDe 'g dE¢¡e *g dE¢¡e+g dE¢ƒgdId„ d�dJdK„ ƒZ-dLdM„ Z.dNdO„ Z/dPdQ„ Z0dRS )SÚTestTimedeltaArraylikeMulDivOpsc                 C   sJ   t tjddd�ƒ}t ||¡}|d }t ||¡ d| }t ||¡ d S )NrN   rØ   rÏ   r   )r   r+   re   r   r-   r.   ©r/   r0   rŠ   rV   r   r   r   Útest_td64arr_mul_int¦  s    z4TestTimedeltaArraylikeMulDivOps.test_td64arr_mul_intc                 C   sX   t dddd�}t ||¡}d}tjt|d�� ||  W d   ƒ n1 sJ0    Y  d S )NrC   rº   r�   rŽ   z@argument must be an integer|cannot use operands with types dtyperP   )r   r   r-   rS   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+   re   r   r   r-   r    r.   ©r/   r0   Z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+   re   r   r   r-   r.   r8  r   r   r   Útest_tdi_mul_int_arrayÂ  s    z6TestTimedeltaArraylikeMulDivOps.test_tdi_mul_int_arrayc                 C   s†   |}|t jtjt jfv rtn|}ttjddd�ƒ}ttjddd�d ƒ}t 	||¡}t 	||¡}|ttjddd�ƒ }t 
||¡ d S r:  ©r   r*   r   r   r    r	   r   r+   re   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 jtjt jfv rtn|}ttjddd�ƒ}t 	||¡}tjddd�}t||d  ƒ}t 	||¡}|t|d ƒ }t 
||¡ d S )NrN   rØ   rÏ   Úfloat64rí   r<  )r/   r0   r!   r1   rŠ   Zrng5fr5   rV   r   r   r   Útest_tdi_mul_float_seriesÚ  s    z9TestTimedeltaArraylikeMulDivOps.test_tdi_mul_float_seriesr3   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  rD   rC   rº   )r   r   r¯   r   r-   r   r.   )	r/   r3   r0   r!   r2   r5   r1   rV   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 )NrC   rº   r�   rŽ   rÐ   rP   zCannot divide NaTType byr   Únsú|)z0ufunc '(true_divide|divide)' cannot use operandszcannot perform __r?truediv__z*Cannot divide datetime64 by TimedeltaArray)
r   r   r-   rS   rT   rU   r   r+   rò   Újoin)r/   r0   rE   Z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-   rs   rÓ   r.   )r/   r0   r!   r1   rE   r3   r5   rV   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 )NrN   rØ   rÏ   r   úCannot dividerP   ©	r   r+   re   r   r-   r.   rS   rT   rU   r5  r   r   r   Útest_td64arr_div_int2  s    z4TestTimedeltaArraylikeMulDivOps.test_td64arr_div_intc                 C   sŒ   |}|t ju rtjn|}tdddd�}tt d¡d d dd�}t ||¡}t ||¡}|| }t 	||¡ || }d| }t 	||¡ d S )NrC   rº   r�   rŽ   rD   r   é   )
r   r    r+   r,   r   r   re   r   r-   r.   ©r/   r¾   r0   r!   r1   rE   r5   rV   r   r   r   Útest_td64arr_div_tdlike_scalar=  s    z>TestTimedeltaArraylikeMulDivOps.test_td64arr_div_tdlike_scalarÚm)r   rO   rD   Úunit)rI   ÚhrM  rr   ÚmsÚusrB  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+   rs   ©rÝ   r|   ©rM  rN  r   r   rß   [  rà   zPTestTimedeltaArraylikeMulDivOps.test_td64arr_div_td64_scalar.<locals>.<listcomp>c                    s    g | ]}t t ˆ ˆ¡ƒ| ‘qS r   )r
   r+   rs   rS  rT  r   r   rß   a  rà   )r   r    r+   r,   r	   r
   rÓ   r   r-   rs   r.   )
r/   rM  rN  r0   r!   r1   r;   Zflatr5   rV   r   rT  r   Útest_td64arr_div_td64_scalarO  s    
z<TestTimedeltaArraylikeMulDivOps.test_td64arr_div_td64_scalarc                 C   sŠ   |}|t ju rtjn|}tdtdgdd�}tdtjdgdd�}t 	||¡}t 	||¡}|| }t 
||¡ || }d| }t 
||¡ d S )NrC   rŒ   r�   rŽ   rJ  r:   r   )r   r    r+   r,   r   r   r   rÓ   r   r-   r.   rK  r   r   r   Ú'test_td64arr_div_tdlike_scalar_with_natf  s    zGTestTimedeltaArraylikeMulDivOps.test_td64arr_div_tdlike_scalar_with_natc                 C   s0  |}|t ju rtjn|}tdtdgƒ}tdtjdgƒ}t 	||¡}t 	||¡}tjg d¢dd�}|| }t 
||¡ |t 	||¡ }t 
||¡ || t¡ }t 
||¡ |t|ƒ }t 
||¡ d| }|| }t 
||¡ t 	||¡| }t 
||¡ | t¡| }t 
||¡ t|ƒ| }t 
||¡ d S )	NrC   rŒ   rJ  r:   )r   r'   r   zm8[h]rÏ   r   )r   r    r+   r,   r   r   r   rÓ   r   r-   r.   rf   rg   rc   )r/   r0   r!   r1   rE   r5   r3   rV   r   r   r   Útest_td64arr_div_td64_ndarrayw  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   ƒ qP1 s¶0    Y  qPq6d S )NrC   rŒ   )r   r   rO   r'   z0Cannot divide vectors|Unable to coerce to Seriesr   rP   )r   r   r   r-   r+   r    r   r*   rS   rT   r¨   )r/   r0   rE   Z
mismatchedrW   r   r3   r   r   r   Útest_tdarr_div_length_mismatch�  s    &z>TestTimedeltaArraylikeMulDivOps.test_tdarr_div_length_mismatchc           	      C   sÌ   |}|t ju rtjn|}tg d¢dd�}tg d¢dd�}t ||¡}t ||¡}tjddtjgtjd�}t ||¡}|t	u rš|rš|ddg  
d¡|ddg< || }t ||¡ t |¡| }t ||¡ d S )	N)éè  ézd é   rÙ   rÏ   )rY  rZ  Nrí   r   r   rØ   )r   r    r+   r,   r	   r   r-   rÓ   r>  r   rf   r.   Zasarray)	r/   r0   Zusing_array_managerr!   r1   rl   rm   r5   rV   r   r   r   Ú&test_td64arr_floordiv_td64arr_with_nat®  s    zFTestTimedeltaArraylikeMulDivOps.test_td64arr_floordiv_td64arr_with_natc           	      C   sÄ   |}|t ju rtjn|}tdƒ}t||tgdd�}tj||dd�}tddtj	gƒ}tj||dd�}|| }t 
||¡ tddtj	gƒ}tj||dd�}|| }t 
||¡ | |¡}t 
||¡ d S )NZ5m3srÎ   rÏ   F)Z	transposer   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   sp   t tjddd�ƒ}t ||¡}|d }t ||¡ d}tjt|d�� d|  W d   ƒ n1 sb0    Y  d S )NrN   rØ   rÏ   r   z@floor_divide cannot use operands|Cannot divide int by Timedelta*rP   rH  )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 rbt|tjƒrbt	}t 
|¡� t||ƒ}W d   ƒ n1 sŒ0    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   Z
DateOffsetr   r¶   Údivmod)r/   r0   Ú
three_daysr2   rt   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 sz0    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   re  )r/   r0   r2   rt   r5   rV   rW   r   r   r   Útest_td64arr_mod_int  s    &
z4TestTimedeltaArraylikeMulDivOps.test_td64arr_mod_intc                 C   s‚   t ddƒ}t ||¡}g d¢dgd  }t|ƒ}t ||¡}|| }t ||¡ t||ƒ}t |d |¡ t |d || ¡ d S )Nr  rc  )rd  r  rd  z3 Daysé   r   r   )r   r   r-   r   r.   re  )r/   r0   rf  r2   rt   r5   rV   r   r   r   Útest_td64arr_rmod_tdscalar  s    

z:TestTimedeltaArraylikeMulDivOps.test_td64arr_rmod_tdscalarc                 C   s¢   t tddd�gd ƒ}tj|jd< t ||¡}d}tjt	|d�� ||  W d   ƒ n1 s^0    Y  tjt	|d�� ||  W d   ƒ n1 s”0    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_  ra  r   r   r   Ú!test_td64arr_mul_tdscalar_invalid,  s    &zATestTimedeltaArraylikeMulDivOps.test_td64arr_mul_tdscalar_invalidc                 C   s®   t tjddd�ƒ}t ||¡}d g d¢¡}tjt|d��  ||d d…   W d   ƒ n1 s`0    Y  tjt	|d��" |t 
dd	g¡  W d   ƒ n1 s 0    Y  d S )
NrN   rØ   rÏ   rC  )ú$cannot use operands with types dtypez$Cannot multiply with unequal lengthszUnable to coerce to SeriesrP   rO   r   r   )r   r+   re   r   r-   rD  rS   rT   rU   r¨   r    ©r/   r0   rŠ   rW   r   r   r   Ú!test_td64arr_mul_too_short_raises;  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 )NrN   rØ   rÏ   ro  rP   )r   r+   re   r   r-   rS   rT   rU   rp  r   r   r   Útest_td64arr_mul_td64arr_raisesK  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 Daysrs  r   rÙ   )ú118 Daysrt  r   r   )r	   r   r-   r.   )r/   r0   r  rô   r5   rV   r   r   r   Útest_td64arr_mul_numeric_scalarU  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.5Drx  r   rÙ   rG  rP   ©r	   r   r-   r.   rS   rT   rU   ©r/   r0   rv  rô   r5   rV   r   r   r   Útest_td64arr_div_numeric_scalark  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 rw  ry  rz  r   r   r   Ú$test_td64arr_floordiv_numeric_scalar{  s    zDTestTimedeltaArraylikeMulDivOps.test_td64arr_floordiv_numeric_scalarr  )é   r[  é(   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	   rf   r   r-   r   r.   )r/   r0   r  r  rô   r5   r1   rV   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                    sl  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 ƒ}n‡ ‡fdd
„ttˆ ƒƒD ƒ}t |¡}t ||¡}t |¡dk�sJ ‚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Ù   rC  )z!true_divide'? cannot use operandszcannot perform __div__zcannot perform __truediv__zunsupported operandrG  rP   c                    s"   g | ]}ˆ j d |f ˆ|  ‘qS )r   )rÅ   r(  ©rô   r  r   r   rß   Ì  rà   zRTestTimedeltaArraylikeMulDivOps.test_td64arr_div_numeric_array.<locals>.<listcomp>c                    s   g | ]}ˆ | ˆ|  ‘qS r   r   r(  r€  r   r   rß   Î  rà   )r	   rf   r   r-   r   r.   rD  rS   rT   rU   rg   r   rd   r+  r   r*   r   )r/   r0   r  r  r5   r1   rV   ra  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   rO   r'   r   ©r   r~   )rƒ  r„  r…  Z9daysZ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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î   rO   g      @rj  g      @r   r†  r   c                    s   g | ]}ˆ| ˆ |  ‘qS r   r   r(  ©r;   r2   r   r   rß   ÿ  rà   zRTestTimedeltaArraylikeMulDivOps.test_float_series_rdiv_td64arr.<locals>.<listcomp>rÙ   )r   r	   r+   r>  r   r   r   r    rd   r+  r-   r   Ú__rtruediv__r   ÚNotImplementedr.   )r/   r0   r"   r!   Zxnamer5   r1   rV   r   rˆ  r   Útest_float_series_rdiv_td64arrõ  s$    ÿ ý

z>TestTimedeltaArraylikeMulDivOps.test_float_series_rdiv_td64arrc                 C   sV   t ttgƒ}t ||¡}tjddgtd�}|| }t ||¡ || }t ||¡ d S )Nr   rï   rÏ   )r   r   r   r-   r+   r    rg   r.   )r/   r0   r2   rl   rm   rV   r   r   r   Ú-test_td64arr_all_nat_div_object_dtype_numeric  s    zMTestTimedeltaArraylikeMulDivOps.test_td64arr_all_nat_div_object_dtype_numericN)1rY   rZ   r[   r6  r7  r9  r;  r=  r?  rS   r\   r]   r+   re   r   rd   r   r   r   Z
RangeIndexrA  rE  rF  rI  rL  rU  rV  rW  rX  r\  r`  rb  rh  ri  rk  rn  rq  rr  ru  r    r{  r|  r*   r	   r  r�  r‡  r‹  rŒ  r   r   r   r   r4  ž  sp   


û÷
&
 
 
$ý
$ý
,r4  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 rl  rm  )r/   r^  r0   r_  ra  r   r   r   Útest_td64arr_pow_invalid!  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@   Z0srì   é   r(   c                    s6   g | ].}ˆ t  d ¡| t  d¡t|dƒd    ‘qS )z0.033333333sz0.000000001srO   r   )r   rÄ   re  rÜ   ©Ú	timestampr   r   rß   7  s   ûÿþz3test_add_timestamp_to_timedelta.<locals>.<listcomp>)r   r   r   rd   r   r…   rŸ   r   r�  r   Útest_add_timestamp_to_timedelta2  s    
úÿ
r’  )(r   r   Únumpyr+   rS   Zpandas.errorsr   r   Zpandasr   r   r   r   r	   r
   r   r   r   r   Zpandas._testingZ_testingr   Zpandas.core.apir   r   r   Zpandas.tests.arithmetic.commonr   r   r   r   r$   r%   ri   ry   rÃ   rÍ   r4  r�  r’  r   r   r   r   Ú<module>   s>   ,	mg   H     C     