U
    ¾mœdB2 ã                   @   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)ÚPandasArray)Úassert_invalid_addsub_typeÚassert_invalid_comparisonÚget_upcast_boxc                 C   s   t  | ¡}||kst‚dS )zT
    Helper to check the dtype for a Series, Index, or single-column DataFrame.
    N)ÚtmZ	get_dtypeÚAssertionError)ÚobjZexpected_dtypeÚdtype© r   úa/home/sam/Atlas/atlas_env/lib/python3.8/site-packages/pandas/tests/arithmetic/test_timedelta64.pyÚassert_dtype&   s    
r   c                 C   s8   | t kr|d }n"| tjtjfkr,|d }n|d }|S )Nr   é   é   )r   r   Úto_arrayÚpdÚarray)ÚboxÚnamesÚexnamer   r   r   Úget_expected_name/   s    

r#   c                   @   s^  e Zd Zdd„ Zej dedd�edd�edd� 	¡ e
 d¡g¡dd„ ƒZej d	d
dedƒedƒ d¡edƒ ¡  ¡ edƒ ¡  ¡ edƒ ¡ e d¡g¡dd„ ƒZej deedƒƒe d¡e d¡ ej¡e d¡ e¡ejdddd�je ejddd�¡eejddd�ƒejddd� e¡ejdddd�jejdddd� e¡g
¡dd„ ƒZdd„ ZdS )Ú#TestTimedelta64ArrayLikeComparisonsc                 C   s|   |}|t tjfkr|ntj}tddd�}t | ¡ d ¡}t ||¡}||k}t ddddg¡}t ||¡}t 	||¡ d S )NÚ2Hé   ©Úperiodsr   TF)
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kr|ntj}ttdd�tdd�gƒ}t ||¡}||k}tddgƒ}t ||¡}t 	||¡ d S )Nr   r7   r   FT)
r   r   r   r)   r*   r
   r   r   r,   r-   )r.   r/   r6   r    r0   ÚserÚactualr4   r   r   r   Ú!test_compare_timedeltalike_scalarR   s    zETestTimedelta64ArrayLikeComparisons.test_compare_timedeltalike_scalarÚinvalidl     x
Ii	 Úaú
2021-01-01ÚUTCr&   c                 C   s,   |}t ddd�}t ||¡}t|||ƒ d S ©Nú1 daysé
   r'   )r   r   r,   r   )r.   r/   r=   r    Úrngr   r   r   r   Útest_td64_comparisons_invalidg   s    zATestTimedelta64ArrayLikeComparisons.test_td64_comparisons_invalidr2   rC   z
1970-01-01©r(   Útzr'   z
1971-01-01ÚD©Úfreqr(   c                 C   s*   t ddd�j}t ||¡}t|||ƒ d S rA   )r   Ú_datar   r,   r   )r.   r2   r/   rD   r   r   r   Ú"test_td64arr_cmp_arraylike_invalid}   s    zFTestTimedelta64ArrayLikeComparisons.test_td64arr_cmp_arraylike_invalidc              	   C   sø   t ddd�j}t ddd|d tdƒg¡}||k}t d	d	d	d
d	g¡}t ||¡ ||k}t || ¡ d}tjt	|d�� ||k  W 5 Q R X tjt	|d�� ||k W 5 Q R X tjt	|d�� ||k W 5 Q R X tjt	|d�� ||k W 5 Q R X d S )NrB   é   r'   r   r   r   é   r?   FTzDInvalid comparison between|Cannot compare type|not supported between©Úmatch)
r   rK   r)   r   r   r   Úassert_numpy_array_equalÚpytestÚraisesÚ	TypeError)r.   rD   r2   Úresultr4   Úmsgr   r   r   Útest_td64arr_cmp_mixed_invalid”   s     zBTestTimedelta64ArrayLikeComparisons.test_td64arr_cmp_mixed_invalidN) Ú__name__Ú
__module__Ú__qualname__r5   rR   ÚmarkÚparametrizer   r   Zto_timedelta64r   ÚHourr<   r   ÚnowÚto_datetime64Úto_pydatetimeÚdater)   r   rE   ÚlistÚrangeÚarangeÚastypeZfloat32Úobjectr   Ú
date_rangeZperiod_rangerL   rW   r   r   r   r   r$   ?   sN   üþ	

øþ
	
öþ
r$   c                   @   s®   e Zd Zej ddeg¡dd„ ƒZej dedde	e	ddgƒe
 e
 d	d
¡e
 d	d
¡e
 d¡e
 d¡e
 dd
¡e
 d	d¡ e
 dd
¡e
 dd¡ g¡g¡dd„ ƒZdd„ ZdS )ÚTestTimedelta64ArrayComparisonsr   Nc                 C   s,  t tdƒttdƒgƒ}t tttdƒgƒ}|| }}|tkrP| t¡| t¡ }}||k}t dddg¡}t ||¡ ||k}t dddg¡}t ||¡ t dddg¡}t |tk|¡ t t|k|¡ t dddg¡}t |tk|¡ t t|k|¡ t dddg¡}t |tk |¡ t t|k|¡ d S )NrB   ú3 daysFT)	r   r   r	   rf   re   r)   r   r   rQ   )r.   r   ÚleftÚrightÚlhsÚrhsrU   r4   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   rH   Znatr   ÚsrM   rN   c                 C   s  t dtdtddgƒ}||k }t ddddddg¡}t ||¡ ||k}t ddddddg¡}t ||¡ ||k}t ddddddg¡}t ||¡ ||k}t ddddddg¡}t ||¡ ||k}t ddddddg¡}t ||¡ ||k}t ddddddg¡}t ||¡ d S )Nú1 dayz1 day 00:00:01z5 day 00:00:03TF)r   r	   r)   r   r   rQ   )r.   ro   Zidx1rU   r4   r   r   r   Útest_comparisons_natÊ   s6    úÿz4TestTimedelta64ArrayComparisons.test_comparisons_natc                 C   sb   t ddd�}||d k }t dddgdgd  ¡}t ||¡ |t|ƒk}||k}t ||¡ d S )NrB   rC   r'   rN   TFé   )r   r)   r   r   rQ   rb   )r.   rD   rU   r4   Úexpr   r   r   Útest_comparisons_coverage  s    z9TestTimedelta64ArrayComparisons.test_comparisons_coverage)rX   rY   rZ   rR   r[   r\   rf   rn   r   r	   r)   r   Útimedelta64rr   ru   r   r   r   r   rh   ª   s(   
ÿ

úÿüþ
%rh   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   sœ  t dddddgddd�}|d t |d¡fD ]D}t|t ƒs>t‚t ddd	d
dgddd�}t ||¡ |jdks,t‚q,|d t |d¡fD ]D}t|t ƒs˜t‚t dddddgddd�}t ||¡ |jdks†t‚q†| t 	|¡fD ]D}t|t ƒsît‚t dddddgddd�}t ||¡ |jdksÜt‚qÜt dddddgddd�}t
|ƒt |¡fD ]J}t|t ƒ�s`t‚t dddddgd dd�}t ||¡ |jd k�sLt‚�qLd S )Nr%   Z4HZ6HZ8HZ10HÚx©rJ   Únamer   Z12HZ16HZ20HZ1HZ3HZ5HÚHz-2Hz-4Hz-6Hz-8Hz-10Hz-1HZ0H)r   r)   ÚmultiplyÚ
isinstancer   r   Úassert_index_equalrJ   ÚdivideÚnegativeÚabsÚabsolute)r.   ÚidxrU   rt   r   r   r   Útest_ufunc_coercions  s4      ÿ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 5 Q R X tjt|d
�� ||  W 5 Q R X d}tjt|d
�� ||  W 5 Q R X d}tjt|d
�� ||  W 5 Q R X || }t dddgdd�}t	 
||¡ || }t dddg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dddgddd�}t	j
||dd� || }tdtdgdd�}t	 
||¡ d S )NrB   ú2 daysÚfoo©rz   Ú20130101rN   Úbar©r(   rz   z0cannot subtract a datelike from a TimedeltaArrayrO   z#unsupported operand type\(s\) for -z((bad|unsupported) operand type for unaryú0 daysú-1 daysú-2 daysF)Zcheck_namesÚ20121231Ú20130102rH   ry   Z20121230)r   r	   r   rg   r   r   rR   rS   rT   r   r~   r   )r.   r1   ÚdtiÚtdÚdtrV   rU   r4   r   r   r   Útest_subtraction_ops4  sJ      ÿz6TestTimedelta64ArithmeticUnsorted.test_subtraction_opsc              	   C   sø  t jddd�}t ||¡}tdƒ}| ¡ }t jddd� d¡}t ||¡}tdƒ d¡}tdƒ d¡}| ¡ }tdƒ}	dd„ }
|| }td	ƒ}|
||ƒ || }td	ƒ}|
||ƒ || }td	ƒ}|
||ƒ d
}tj	t
|d�� ||  W 5 Q R X d}tj	t
|d�� ||  W 5 Q R X d}tj	t
|d�� ||  W 5 Q R X d
}tj	t
|d�� ||  W 5 Q R X tj	t
|d�� ||  W 5 Q R X tj	t
|d�� ||  W 5 Q R X d}tj	t
|d�� ||  W 5 Q R X tj	t
|d�� ||  W 5 Q R X || }td	ddgƒ}t ||¡}t ||¡ || }td	ddgƒ}t ||¡}t ||¡ || }td	ddgƒ}t ||¡}t ||¡ || }td	ddgƒ}t ||¡}t ||¡ |	|	 }td	ƒ}|
||ƒ ||	 }tdddgdd�}t ||¡}t ||¡ d S )Nrˆ   rN   r'   z
US/EasternZCETrB   c                 S   s   | |kst ‚t| tƒst ‚d S ©N)r   r}   r   ©rU   r4   r   r   r   Ú_checkp  s    zNTestTimedelta64ArithmeticUnsorted.test_subtraction_ops_with_tz.<locals>._checkr‹   z<Cannot subtract tz-naive and tz-aware datetime-like objects.rO   z6can't subtract offset-naive and offset-aware datetimesz%Cannot subtract tz-naive and tz-awarer…   rŒ   r�   rŽ   r�   ©rG   )r   rg   r   r,   r   r`   Ztz_localizer   rR   rS   rT   r   r-   r   )r.   r/   r�   Útsr’   Zdti_tzZts_tzZts_tz2Zdt_tzr‘   r–   rU   r4   rV   r   r   r   Útest_subtraction_ops_with_tzc  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 )NrB   r…   r†   r‡   rˆ   rN   r‰   rŠ   r‹   ú4 daysrŽ   )r   r	   r   rg   r   r~   r   )r.   r1   r�   rU   r4   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 5 Q R X t	j
t|d�� |dd… |  W 5 Q R X d}t	j
t|d�� |tdddgtjd�  W 5 Q R X || }td	tdgƒ}t ||¡ || }td	tdgƒ}t ||¡ || }td	ƒ}||k�sºt‚|| }td	ƒ}||k�sØt‚d S )NrB   r…   r†   r‡   rˆ   rN   r‰   rŠ   r�   Z20130103ri   z$cannot add indices of unequal lengthrO   r   r   ú3Addition/subtraction of integers and integer-arraysr   ©r   Z20130105)r   r	   r   rg   r   r   r   r   r~   rR   rS   Ú
ValueErrorrT   r   r)   Úint64r   )r.   r1   r�   r‘   r’   rU   r4   rV   r   r   r   Útest_addition_opsÈ  sH    "z3TestTimedelta64ArithmeticUnsorted.test_addition_opsrJ   rH   ÚBc                 C   sæ   t jdd|d�}|tdƒ }|tdƒ }| d¡}t ||¡ |dkr€t jj d¡}|j	|ksbt
‚|j	|kspt
‚|j	|ks¾t
‚n>|j	t jj d¡ks˜t
‚|j	d ks¦t
‚|j	t jj d¡ks¾t
‚|tdƒ }|tdƒ }t ||¡ d S )Nz1/1/2000é2   ©r(   rJ   r   éÿÿÿÿÚinferrH   )r   rg   r   Ú
_with_freqr   r~   Ztseriesr   ÚDayrJ   r   ZBusinessDay)r.   rJ   ÚindexZshiftedÚbackr4   rU   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sdt	‚| 
d ¡}t ||¡ |j|jksŠt	‚| 
d ¡}t ||¡ d S )NZ2013Z2014r   i áõ)r   rg   r
   r   r]   r   r)   rv   rJ   r   r¦   r   r~   )r.   rD   rp   Zresult1Zresult2Zresult3Zresult4r   r   r   Útest_timedelta_tick_arithmetic  s    

z@TestTimedelta64ArithmeticUnsorted.test_timedelta_tick_arithmeticc                 C   s|   t dtdgƒ}|j}tjdddd�}|| }|| }t ||¡ || }|| }t ||¡ || }|| }t ||¡ d S )NrB   r…   z
1999-12-31rN   rH   r£   )r   r	   r   r   rg   r   r~   )r.   r1   Ztdar�   rU   r4   r   r   r   Útest_tda_add_sub_index(  s    z8TestTimedelta64ArithmeticUnsorted.test_tda_add_sub_indexc           	   	   C   sx   |}t jdd|d�}| d ¡}|| }t ||¡}t ||¡}t t¡� || t¡ }W 5 Q R X t 	|| t¡¡ d S )Nú
2016-01-01rN   rF   )
r   rg   r¦   r   r,   Úassert_produces_warningr   re   rf   r-   )	r.   r/   Útz_naive_fixturer    r�   r1   r   r2   rU   r   r   r   Útest_tda_add_dt64_object_array;  s    
z@TestTimedelta64ArithmeticUnsorted.test_tda_add_dt64_object_arrayc                 C   s`   t ddƒ}t dddd�}t ||¡}t ||¡}|}||7 }t ||¡ |tk	r\t ||¡ d S ©NrB   ú10 daysz1 days 02:00:00z10 days 02:00:00rH   ©rJ   ©r   r   r,   r-   r   ©r.   Ú	two_hoursr/   rD   r4   Zorig_rngr   r   r   Útest_tdi_iadd_timedeltalikeM  s    
z=TestTimedelta64ArithmeticUnsorted.test_tdi_iadd_timedeltalikec                 C   s\   t ddƒ}t ddƒ}t ||¡}t ||¡}|}||8 }t ||¡ |tk	rXt ||¡ d S ©NrB   r²   z0 days 22:00:00z9 days 22:00:00r´   rµ   r   r   r   Útest_tdi_isub_timedeltalike\  s    

z=TestTimedelta64ArithmeticUnsorted.test_tdi_isub_timedeltalikec                 C   sd  t ddddd�}|d|j  }t ddddd�}t ||¡ |jdksHt‚|d|j  }t d	dddd�}t ||¡ |jdks€t‚|d }t ddd
dd�}t ||¡ |jd
ks²t‚|d }t ddddd�}t ||¡ |jdksät‚| }t d	dddd�}t ||¡ |jdk�st‚t d	dddd�}t|ƒ}tdddddgdd�}t ||¡ |jd k�s`t‚d S )Nr…   rM   Z2Drx   )r(   rJ   rz   r   rš   r   r�   Z4DrB   rH   z-2Dr‹   r‡   )r   rJ   r   r~   r   r�   r   )r.   rD   rU   rt   r   r   r   Útest_tdi_ops_attributesm  s:     ÿz9TestTimedelta64ArithmeticUnsorted.test_tdi_ops_attributesN)rX   rY   rZ   r„   r“   r™   r›   r    rR   r[   r\   rª   r«   r¬   r°   r·   r¹   rº   r   r   r   r   rw     s   /T8
rw   c                   @   s.   e Zd Zej dddg¡dd„ ƒZdd„ ZdS )	ÚTestAddSubNaTMaskingÚstr_tsz
1950-01-01z
1980-01-01c           	      C   sˆ   t  ddg¡}t ||¡}t|ƒ}|| ¡ | ¡  d¡| ¡  d¡g}|D ]8}|| }|tkrr|j	d t
ks‚t‚qJ|d t
ksJt‚qJd S )Nz24658 days 11:15:00r	   zdatetime64[ns]zdatetime64[D])r   r   r   )r   Úto_timedeltar   r,   r   r`   r_   re   r   Úilocr	   r   )	r.   r/   r¼   ZtdinatZtdobjr˜   Zts_variantsÚvariantr3   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 5 Q R X t jtdd�� tdƒt dd¡  W 5 Q R X tjd }d}t jt|d�� t dgd¡tdƒ  W 5 Q R X t jt|d�� tdƒt dgd¡  W 5 Q R X t jt|d�� t |g¡t	dƒ  W 5 Q R X t jt|d�� t d	|g¡t	dƒ  W 5 Q R X t jt|d��& t |d	d
g¡t d|dg¡  W 5 Q R X 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10155196800000000000rO   iT  rH   Ú2000r   zOverflow in int64 additionrB   z5 daysú1 hoursz	7 secondsz4 hoursrš   z5 hours)rR   rS   r   r   r½   r   r	   Ú_valueÚOverflowErrorr   r   r   r~   )r.   Z_NaTrV   rt   rU   r   r   r   Útest_tdi_add_overflow«  s<    
   ÿÿ
ÿz*TestAddSubNaTMasking.test_tdi_add_overflowN)rX   rY   rZ   rR   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ddddg¡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 ddd#g¡eddd#gƒeddd#gƒeddd#ggƒgd$d%„ d&�d'd(„ ƒZd)d*„ Zd+d,„ Zd-d.„ Zd/d0„ Zd1d2„ Zej 	d3e d4¡eg¡d5d6„ ƒZ d7d8„ Z!d9d:„ Z"d;d<„ Z#d=d>„ Z$d?d@„ Z%ej 	dAejeeg¡dBdC„ ƒZ&dDdE„ Z'dS )FÚ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
   re   r	   r   Úassert_series_equal)r.   r:   rU   r4   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ƒ¡}d}tjt|d�� t  ttgƒ¡ W 5 Q R X 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 5 Q R X ttj	gƒ t j¡}t  d¡}t  d¡}	t  d¡}
|| }||	ksøt
‚|	| }||k�st
‚|| }t ||¡ || }t ||¡ || }t ||¡ || }t ||¡ || }t ||¡ | | }t ||¡ ||
 }t ||¡ |
| }t ||¡ ||
 }t ||¡ |
 | }t ||¡ d}tjt|d�� |tj  W 5 Q R X tjt|d�� tj|  W 5 Q R X tjt|d�� |tj  W 5 Q R X tjt|d�� tj |  W 5 Q R X |t }t ||¡ |t }t ||¡ || }t ||¡ || }t ||¡ || }t ||¡ || }t ||¡ || }t ||¡ || }t ||¡ || }t ||¡ || }t ||¡ ||
 }t ||¡ ||
 }t ||¡ d	}tjt|d�� |tj  W 5 Q R X tjt|d�� |tj  W 5 Q R X |t }t ||¡ |t }t ||¡ d S )
NrÇ   z00:00:02z?dtype datetime64\[ns\] cannot be converted to timedelta64\[ns\]rO   úm8[ns]r�   r	   úunsupported operand typez8cannot subtract a datelike from|unsupported operand type)r   r½   r
   rR   rS   rT   r	   r   ÚapplyrÃ   r   r   rÈ   r)   ÚnanZassert_frame_equal)r.   Ús1Ús2rV   ZsnZdf1Zdf2ÚdfnZscalar1Zscalar2Ztimedelta_NaTr;   r   r   r   Ú&test_timedelta_ops_with_missing_valuesà  s     




zFTestTimedeltaArraylikeAddSubOps.test_timedelta_ops_with_missing_valuesc              	   C   s   t jdddd�}t jdddd�}t|ƒt|ƒ }td|jƒ d¡ d¡}t ||¡ |jdksbt‚t	d	|iƒ}td
d„ t
dƒD ƒƒ}|jdks’t‚|d	 |d	  ¡  }|jdks´t‚|d	 | }|jdksÎt‚|d	  ¡ }t|tƒsèt‚|d	 |d	  ¡  }	|	jdk�st‚|	|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�t‚tdddddƒ}|d	 | }|jdk�s¼t‚|| }	t |d	 |	¡ tdd�}|d	 | }|| }	t |	|d	 ¡ |	jdk�st‚tddd�}|d	 | }|| }	t |d	 |	¡ |	jdk�sRt‚|d t tddd�¡ }|d  t tddd�¡7  < |d |k�sœt‚d S )Nz2012-1-1rN   rH   r£   z2012-1-2g  ÀS$¥ÓBrŸ   útimedelta64[ns]ÚAc                 S   s   g | ]}t |d �‘qS )r7   ©r   ©Ú.0Úir   r   r   Ú
<listcomp>T  s     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±  r7   rÔ   rÕ   r   r   r   rØ   m  s     rÊ   r&   r7   rM   ©ÚminutesÚsecondsr   )r   rg   r
   r¨   re   r   rÈ   r   r   r   rc   ÚshiftÚmaxr}   r   r   r   r)   rv   )r.   Zv1Zv2ÚrsZxpZdfr‘   rU   ZmaxaZresultbÚvaluesr4   ÚdZresultaÚvaluer   r   r   Útest_operators_timedelta64J  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kr"| ¡ }n$|tjkrB|d k	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 5 Q R X d S )Nz
2012-01-01r—   rq   rN   r'   z
2012-01-02rF   z
2011-12-31z-1D)r(   rJ   rG   zcannot subtract a datelikerO   )r   r   r`   r)   Ú
datetime64r_   r   r   rg   r   r,   r-   rR   rS   rT   )r.   rè   r/   r¯   rG   Z	dt_scalarr˜   r1   r4   ÚtdarrZ	expected2rV   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dddgƒ}t ||¡}t ||¡}t || |¡ t || |¡ d S )Nr	   rq   rN   r'   )r)   ré   r   r   r   r,   r-   )r.   r/   r2   r1   r4   Ú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 5 Q R X || }t 
||¡ d S )Nr­   rN   r'   ú-1 Dayzcannot subtract a datelike fromrO   )r   rg   r   rß   r   r   r,   rR   rS   rT   r-   )r.   r/   r�   r1   Údtarrr4   rV   rU   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­   rN   r'   rî   )r   rg   r   rß   r   r   r,   r-   )r.   r/   r�   r1   rï   r4   rU   r   r   r   Útest_td64arr_add_dt64_array#  s    z;TestTimedeltaArraylikeAddSubOps.test_td64arr_add_dt64_arrayÚpi_freqrH   ÚWÚQr{   Útdi_freqNc           
   	   C   s’   t ddg|d�}tdƒ| }| |¡}|d }t ||¡}t ||¡}d}	tjt|	d�� ||  W 5 Q R X tjt|	d�� ||  W 5 Q R X d S )NrÂ   z2 hoursr³   z2018-03-07 17:16:40r   z(cannot subtract|unsupported operand typerO   )r   r   Z	to_periodr   r,   rR   rS   rT   )
r.   r/   Zbox_with_array2rõ   rò   r1   r�   ÚpiZperrV   r   r   r   Útest_td64arr_sub_periodlike4  s    
z;TestTimedeltaArraylikeAddSubOps.test_td64arr_sub_periodliker2   r>   r   rå   r   c                 C   s,   t dddgdd�}t ||¡}t||ƒ d S ©Nú59 Daysr	   rÊ   r�   )r
   r   r,   r   )r.   r/   r2   rì   rê   r   r   r   Ú*test_td64arr_addsub_numeric_scalar_invalidI  s    zJTestTimedeltaArraylikeAddSubOps.test_td64arr_addsub_numeric_scalar_invalidÚvecrN   c                 C   s
   t | ƒjS r”   ©ÚtyperX   ©rx   r   r   r   Ú<lambda>c  ó    z(TestTimedeltaArraylikeAddSubOps.<lambda>©Zidsc                 C   s6   t dddgdd�}t ||¡}| |¡}t||ƒ d S rø   )r
   r   r,   re   r   )r.   r/   rû   Úany_real_numpy_dtyperì   rê   Úvectorr   r   r   Ú'test_td64arr_addsub_numeric_arr_invalid[  s    
zGTestTimedeltaArraylikeAddSubOps.test_td64arr_addsub_numeric_arr_invalidc              	   C   sr   t dddd�}t ||¡}d}t|||ƒ tjt|d�� ||7 }W 5 Q R X tjt|d�� ||8 }W 5 Q R X d S )Nú1 days 09:00:00r{   rC   rI   ú Addition/subtraction of integersrO   )r   r   r,   r   rR   rS   rT   )r.   r/   ÚonerD   rê   rV   r   r   r   Útest_td64arr_add_sub_intn  s    z8TestTimedeltaArraylikeAddSubOps.test_td64arr_add_sub_intc                 C   sX   |}|t jkrtjn|}tdddd�}t ||¡}t dddg|¡}d}t|||ƒ d S )Nr  r{   rN   rI   r&   r   rœ   )r   r   r)   r*   r   r   r,   r   )r.   r/   r    r0   rD   rê   r2   rV   r   r   r   Ú"test_td64arr_add_sub_integer_array|  s    zBTestTimedeltaArraylikeAddSubOps.test_td64arr_add_sub_integer_arrayc                 C   sX   |}|t jkrtjn|}tdddgƒ}t ||¡}t dddg|¡}d}t|||ƒ d S )Nú1 Dayr	   z3 Hoursé   r¤   é   r  )r   r   r)   r*   r   r   r,   r   )r.   r/   r    r0   r1   rê   r2   rV   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­   rN   r'   r   r   r   )r   rg   rÜ   rß   r   r,   r-   )	r.   r/   r    r�   r1   rê   r4   rU   Ú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k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‡   rN   )Úhoursr&   r   )r8   r  rÒ   éýÿÿÿéüÿÿÿ)r#   r   r   r   r   r   r)   r
   r   r,   r-   r   )	r.   r/   r!   r    r"   r1   r:   r4   rU   r   r   r   Útest_td64arr_add_sub_tdi®  s2    
 

 ÿ
z8TestTimedeltaArraylikeAddSubOps.test_td64arr_add_sub_tdiÚtdnatr	   c                 C   sŽ   |}t ttdƒgƒ}t dgd ƒ}t ||¡}t ||¡}|| }t ||¡ || }t ||¡ || }t ||¡ || }t ||¡ d S )Nrã   r	   r   )r   r	   r   r   r,   r-   )r.   r/   r  r    r1   r4   r   rU   r   r   r   Útest_td64arr_add_sub_td64_natÑ  s    z=TestTimedeltaArraylikeAddSubOps.test_td64arr_add_sub_td64_natc                 C   s`   |}t ddƒ}t dddd�}t ||¡}t ||¡}|| }t ||¡ || }t ||¡ d S r±   ©r   r   r,   r-   ©r.   r¶   r/   r    rD   r4   rU   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           
   	      sj  |}t ||ƒ}tddg|d d�‰ttjdd�tjdd�g|d d�‰ |tjtj	fkr`t
 	ˆ ¡nˆ ‰ t‡ ‡fdd	„ttˆƒƒD ƒd
|d�}t‡ ‡fdd	„ttˆƒƒD ƒd
|d�}t ˆ|¡‰t ||¡jtdd�}t ||¡jtdd�}t t¡� ˆˆ  }W 5 Q R X t ||¡ t t¡� ˆ ˆ }W 5 Q R X t ||¡ t t¡� ˆˆ  }	W 5 Q R X 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  ©r2   r1   r   r   rØ     s     zUTestTimedeltaArraylikeAddSubOps.test_td64arr_add_sub_offset_index.<locals>.<listcomp>r¥   ry   c                    s   g | ]}ˆ| ˆ |  ‘qS r   r   r  r   r   r   rØ     s     F)Úcopy)r#   r   r   r   r]   ÚMinuter   r   r   r   r)   rc   Úlenr,   re   rf   r®   r   r-   )
r.   r!   r/   r    r"   r4   r  r3   Úres2Úres_subr   r   r   Ú!test_td64arr_add_sub_offset_index  s6    
$  ÿ  ÿzATestTimedeltaArraylikeAddSubOps.test_td64arr_add_sub_offset_indexc              	      s(  |}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 5 Q R X t ||¡ t t¡� ˆ ˆ }W 5 Q R X t ||¡ t 	||¡ 
t¡}t t¡� ˆˆ  }W 5 Q R X t ||¡ d S )Nr  r  r   r  r  c                    s   g | ]}ˆ| ˆ |  ‘qS r   r   r  r   r   r   rØ   -  s     zUTestTimedeltaArraylikeAddSubOps.test_td64arr_add_sub_offset_array.<locals>.<listcomp>r¥   r³   c                    s   g | ]}ˆ| ˆ |  ‘qS r   r   r  r   r   r   rØ   0  s     )r   r)   r   r   r]   r"  rc   r#  r   r,   re   rf   r®   r   r-   )r.   r/   r    r4   r  r3   r$  r%  r   r   r   Ú!test_td64arr_add_sub_offset_array&  s.     ÿ ÿzATestTimedeltaArraylikeAddSubOps.test_td64arr_add_sub_offset_arrayc              	      s^  |}|t tjtjfk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 5 Q R X t ||¡ t t¡� ˆ | }	W 5 Q R X t |	|¡ t‡ ‡fdd	„ttˆƒƒD ƒ|td
�}
t |
|¡ t¡}
t t¡� |ˆ  }W 5 Q R X t ||
¡ d S )Nr  r  r   r‡   r   r  r  c                    s   g | ]}ˆ| ˆ |  ‘qS r   r   r  r   r   r   rØ   M  s     zSTestTimedeltaArraylikeAddSubOps.test_td64arr_with_offset_series.<locals>.<listcomp>)rz   r   c                    s   g | ]}ˆ| ˆ |  ‘qS r   r   r  r   r   r   rØ   [  s     )r   r   r   r   r   r
   r#   r   r   r]   r"  rc   r#  rf   r,   re   r®   r   r-   )r.   r!   r/   r    Zbox2r"   Zexpected_addr   r3   r$  r  Zres3r   r   r   Útest_td64arr_with_offset_seriesC  s6    
$  ÿ  ÿ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 5 Q R X W 5 Q R X tjt|d��$ t 	t
¡� ||  W 5 Q R X W 5 Q R X tjt|d��$ t 	t
¡� ||  W 5 Q R X W 5 Q R X tjt|d��$ t 	t
¡� ||  W 5 Q R X W 5 Q R X d S )Nr  r  r   r  z/has incorrect type|cannot add the type MonthEndrO   )r   r   r,   r   ZMonthEndr§   rR   rS   rT   r®   r   )r.   r)  r/   r1   ZanchoredrV   r   r   r   Ú-test_td64arr_addsub_anchored_offset_arraylikec  s     zMTestTimedeltaArraylikeAddSubOps.test_td64arr_addsub_anchored_offset_arraylikec           
   
   C   sB  |}|t jkrtjn|}tdddd�}t ||¡}t tdd�t 	d¡t
dƒg¡}t t¡� || }W 5 Q R X ttdd�td	d�t
d
ƒgƒ}t ||¡ t¡}t ||¡ d}	tjt|	d��$ t t¡� ||  W 5 Q R X W 5 Q R X t t¡� || }W 5 Q R X ttdƒtdƒt
dƒgƒ}t ||¡ t¡}t ||¡ d S )Nrq   rN   rH   r£   r   r7   r   z
2000-01-04r&   z
2000-01-07z3unsupported operand type|cannot subtract a datelikerO   r   z
2000-01-01)r   r   r)   r*   r   r   r,   r   r   r§   r   r®   r   r   re   rf   r-   rR   rS   rT   )
r.   r/   r    r0   r1   rê   r2   rU   r4   rV   r   r   r   Ú!test_td64arr_add_sub_object_array~  s*     ÿzATestTimedeltaArraylikeAddSubOps.test_td64arr_add_sub_object_array)(rX   rY   rZ   rÉ   rÑ   râ   rç   rR   r[   r\   r   r   r)   ré   rë   rí   rð   rñ   r÷   r   rú   r   r
   r   r  r  r	  r  r  r  rv   r	   r  r  r  r&  r'  r(  r*  r+  r   r   r   r   rÆ   Ô  s\   	jBU
#úþ
üø

	#
  
rÆ   c                   @   sh  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dddg¡e	j
 d d!d"dd#d$d%d&g¡d'd(„ ƒƒZd)d*„ Zd+d,„ Zd-d.„ Zd/d0„ Zd1d2„ Ze	j
  d3¡d4d5„ ƒZ!d6d7„ Z"d8d9„ Z#d:d;„ Z$d<d=„ Z%d>d?„ Z&d@dA„ Z'dBdC„ Z(dDdE„ Z)e	j
 dFdGdHe *dG¡e *dH¡g¡dIdJ„ ƒZ+e	j
 dFdGdHe *dG¡e *dH¡g¡dKdL„ ƒZ,e	j
jdMe *dNdOdPg¡edNdOdPgƒe-dNdOdPgƒgdQd„ d�dRdS„ ƒZ.e	j
jdMe *dNdOdPg¡edNdOdPgƒe-dNdOdPgƒgdTd„ d�dUdV„ ƒZ/dWdX„ Z0dYdZ„ Z1d[d\„ Z2d]S )^ÚTestTimedeltaArraylikeMulDivOpsc                 C   sJ   t tjddd�ƒ}t ||¡}|d }t ||¡ d| }t ||¡ d S )NrM   rŸ   r�   r   )r   r)   rd   r   r,   r-   ©r.   r/   rƒ   rU   r   r   r   Útest_td64arr_mul_int¥  s    z4TestTimedeltaArraylikeMulDivOps.test_td64arr_mul_intc              	   C   sD   t dddd�}t ||¡}d}tjt|d�� ||  W 5 Q R X d S )NrB   r²   r†   r‡   z@argument must be an integer|cannot use operands with types dtyperO   )r   r   r,   rR   rS   rT   )r.   r¶   r/   rD   rV   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 )NrM   rŸ   r�   )r)   rd   r   r   r,   r   r-   ©r.   r/   Zrng5rƒ   r4   rU   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 ©NrM   rŸ   r�   r   )r)   rd   r   r   r,   r-   r0  r   r   r   Útest_tdi_mul_int_arrayÁ  s    z6TestTimedeltaArraylikeMulDivOps.test_tdi_mul_int_arrayc                 C   s„   |}|t tjtjfk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 r2  ©r   r   r   r   r   r
   r   r)   rd   r,   r-   )r.   r/   r    r0   rƒ   r4   rU   r   r   r   Útest_tdi_mul_int_seriesÌ  s    z7TestTimedeltaArraylikeMulDivOps.test_tdi_mul_int_seriesc                 C   s†   |}|t tjtjfkrtn|}ttjddd�ƒ}t 	||¡}tjddd�}t||d  ƒ}t 	||¡}|t|d ƒ }t 
||¡ d S )NrM   rŸ   r�   Úfloat64rä   r4  )r.   r/   r    r0   rƒ   Zrng5fr4   rU   r   r   r   Útest_tdi_mul_float_seriesÙ  s    z9TestTimedeltaArraylikeMulDivOps.test_tdi_mul_float_seriesr2   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
  rC   rB   r²   )r   r   r¦   r   r,   r   r-   )	r.   r2   r/   r    r1   r4   r0   rU   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 5 Q R X tjtdd�� t|  W 5 Q R X t dd	¡}d
 	dddg¡}tjt|d�� ||  W 5 Q R X tjt|d�� ||  W 5 Q R X d S )NrB   r²   r†   r‡   rË   rO   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,   rR   rS   rT   r	   r)   ré   Újoin)r.   r/   rD   Zdt64natrV   r   r   r   Útest_td64arr_div_nat_invalid  s"    üÿz<TestTimedeltaArraylikeMulDivOps.test_td64arr_div_nat_invalidc                 C   s‚   |}|t jkrtjn|}tddƒ}t ||¡}t d¡}t tjgd ¡}t ||¡}|| }t 	||¡ || }t 	||¡ d S )NrB   r²   r	   rC   )
r   r   r)   r*   r   r   r,   rv   rÍ   r-   )r.   r/   r    r0   rD   r2   r4   rU   r   r   r   Útest_td64arr_div_td64nat  s    

z8TestTimedeltaArraylikeMulDivOps.test_td64arr_div_td64natc              	   C   sX   t tjddd�ƒ}t ||¡}|d }t ||¡ tjtdd�� d|  W 5 Q R X d S )NrM   rŸ   r�   r   úCannot dividerO   ©	r   r)   rd   r   r,   r-   rR   rS   rT   r-  r   r   r   Útest_td64arr_div_int1  s    z4TestTimedeltaArraylikeMulDivOps.test_td64arr_div_intc                 C   s�   |}|t jk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 )	NrB   r²   r†   r‡   rC   r   é   ©r   rz   )r   r   r)   r*   r   r   rd   r6  r   r,   r-   ©r.   r¶   r/   r    r0   rD   r4   rU   r   r   r   Útest_td64arr_div_tdlike_scalar<  s    z>TestTimedeltaArraylikeMulDivOps.test_td64arr_div_tdlike_scalarÚmrN   rC   ÚunitrH   Úhrp   ÚmsÚusr:  c           
         sÊ   |}|t jk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é;   r7   rN   r   c                    s   g | ]}|t  ˆ ˆ¡ ‘qS r   )r)   rv   ©rÖ   rx   ©rF  rG  r   r   rØ   Z  s     zPTestTimedeltaArraylikeMulDivOps.test_td64arr_div_td64_scalar.<locals>.<listcomp>c                    s    g | ]}t t ˆ ˆ¡ƒ| ‘qS r   )r   r)   rv   rL  rM  r   r   rØ   `  s     )r   r   r)   r*   r
   r   rÍ   r   r,   rv   r-   )
r.   rF  rG  r/   r    r0   r:   Zflatr4   rU   r   rM  r   Útest_td64arr_div_td64_scalarN  s    
z<TestTimedeltaArraylikeMulDivOps.test_td64arr_div_td64_scalarc                 C   sŽ   |}|t jk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 )	NrB   r…   r†   r‡   rB  r9   rC  r   )r   r   r)   r*   r   r	   r   rÍ   r6  r   r,   r-   rD  r   r   r   Ú'test_td64arr_div_tdlike_scalar_with_nate  s    zGTestTimedeltaArraylikeMulDivOps.test_td64arr_div_tdlike_scalar_with_natc                 C   s>  |}|t jkrtjn|}tdtdgƒ}tdtjdgtjd�}t	 
||¡}t	 
||¡}tjdddgdd�}|| }t	 ||¡ |t	 
||¡ }t	 ||¡ || t¡ }t	 || t¡¡ |t|ƒ }t	 ||¡ d	| }|| }t	 ||¡ t	 
||¡| }t	 ||¡ | t¡| }t	 ||¡ t|ƒ| }t	 ||¡ d S )
NrB   r…   rB  r9   r�   r   r&   zm8[h]r   )r   r   r)   r*   r   r	   r   rÍ   r6  r   r,   r-   re   rf   rb   )r.   r/   r    r0   rD   r4   r2   rU   r   r   r   Útest_td64arr_div_td64_ndarrayv  s0    z=TestTimedeltaArraylikeMulDivOps.test_td64arr_div_td64_ndarrayc                 C   s¢   t dtdgƒ}ddddg}t ||¡}d}||d d… fD ]b}|t |¡t|ƒfD ]H}tjt	|d�� ||  W 5 Q R X tjt	|d�� ||  W 5 Q R X qRq:d S )	NrB   r…   r   r   rN   r&   z0Cannot divide vectors|Unable to coerce to SeriesrO   )
r   r	   r   r,   r)   r   r   rR   rS   rž   )r.   r/   rD   Z
mismatchedrV   r   r2   r   r   r   Útest_tdarr_div_length_mismatchœ  s    z>TestTimedeltaArraylikeMulDivOps.test_tdarr_div_length_mismatchc                 C   sD  t ddd� dt¡}tj||dd�}tj|d dd	|d
 gtd�}tj||dd�}|| }tdt 	dd¡|d dgtd�}tj||dd�}t
|tƒrœ| ¡ }t ||¡ |tkrÆt
|jd tj	ƒsÆt‚|| }tdt 	dd¡|d dgtd�}tj||dd�}t
|tƒ�r| ¡ }t ||¡ |tk�r@t
|jd tj	ƒ�s@t‚d S )Nr
  rN   r'   r   F©Z	transposer   rå   ræ   r   r�   rä   r	   r:  )r   r   )r   Úinsertr	   r   r,   r)   r   rf   r   rv   r}   r   r+   r-   r   r¾   r   )r.   r/   Úorigr1   r2   r3   r4   r   r   r   Ú!test_td64_div_object_mixed_resultª  s(     
 
zATestTimedeltaArraylikeMulDivOps.test_td64_div_object_mixed_resultc           	   	   C   s  |}|t jkrtjn|}tdddgdd�}tddd gdd�}t ||¡}t ||¡}tjddtjgtjd�}t ||¡}|t	krž|rž|ddg  
d	¡|ddg< tjt|t jkd
d�� || }W 5 Q R X t ||¡ tjt|t jkd
d�� t |¡| }W 5 Q R X t ||¡ d S )Niè  izd é   rÒ   r�   rä   r   r   rŸ   F)Zcheck_stacklevel)r   r   r)   r*   r
   r   r,   rÍ   r6  r   re   Zmaybe_produces_warningÚRuntimeWarningr-   Zasarray)	r.   r/   Zusing_array_managerr    r0   rj   rk   r4   rU   r   r   r   Ú&test_td64arr_floordiv_td64arr_with_natÌ  s0      ÿ  ÿzFTestTimedeltaArraylikeMulDivOps.test_td64arr_floordiv_td64arr_with_natz/ignore:invalid value encountered:RuntimeWarningc           	      C   sÄ   |}|t jk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�   FrR  r   r   )r   r   r)   r*   r   r
   r	   r   r,   rÍ   r-   Ú__rfloordiv__)	r.   r/   Ú	scalar_tdr    r0   r‘   Útd1r4   rU   r   r   r   Útest_td64arr_floordiv_tdscalarï  s    
z>TestTimedeltaArraylikeMulDivOps.test_td64arr_floordiv_tdscalarc              	   C   s\   t tjddd�ƒ}t ||¡}|d }t ||¡ d}tjt|d�� d|  W 5 Q R X d S )NrM   rŸ   r�   r   z@floor_divide cannot use operands|Cannot divide int by Timedelta*rO   r@  )r.   r/   rƒ   rU   Úpatternr   r   r   Útest_td64arr_floordiv_int
  s    z9TestTimedeltaArraylikeMulDivOps.test_td64arr_floordiv_intc              	   C   s¶   t ddƒ}t ||¡}tdddgd ƒ}t ||¡}|| }t ||¡ d }|tkrnt|tjƒrnt	}| 
t¡}t |¡� t||ƒ}W 5 Q R X t |d |¡ t |d || ¡ d S )Nr
  ú9 daysz2 Daysú0 DaysrN   r   r   )r   r   r,   r   r-   r   r}   r   Z
DateOffsetr   re   rf   r®   Údivmod)r.   r/   Ú
three_daysr1   rê   r4   rU   Ú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 5 Q R X t|dƒ}t |d
 |¡ t |d |d ¡ d S )Nz1 nsz10 nsrC   r'   z0 nsrM   r   zCannot divide int byrO   r   r   )	r   r   r,   r   r-   rR   rS   rT   ra  )r.   r/   r1   rê   r4   rU   rV   r   r   r   Útest_td64arr_mod_int1  s    
z4TestTimedeltaArraylikeMulDivOps.test_td64arr_mod_intc                 C   s„   t ddƒ}t ||¡}dddgdgd  }t|ƒ}t ||¡}|| }t ||¡ t||ƒ}t |d |¡ t |d || ¡ d S )Nr
  r_  r`  z3 Daysé   r   r   )r   r   r,   r   r-   ra  )r.   r/   rb  r1   rê   r4   rU   r   r   r   Útest_td64arr_rmod_tdscalarC  s    

z:TestTimedeltaArraylikeMulDivOps.test_td64arr_rmod_tdscalarc              	   C   sz   t tddd�gd ƒ}tj|jd< t ||¡}d}tjt	|d�� ||  W 5 Q R X tjt	|d�� ||  W 5 Q R X d S ©NrM   rN   rÙ   r   z(operate|unsupported|cannot|not supportedrO   ©
r
   r   r)   rÍ   r¾   r   r,   rR   rS   rT   )r.   r/   rZ  r[  r]  r   r   r   Ú!test_td64arr_mul_tdscalar_invalidU  s    zATestTimedeltaArraylikeMulDivOps.test_td64arr_mul_tdscalar_invalidc              	   C   sˆ   t tjddd�ƒ}t ||¡}d dddg¡}tjt|d�� ||d d	…   W 5 Q R X tjt	|d�� |t 
d
dg¡  W 5 Q R X d S )NrM   rŸ   r�   r;  ú$cannot use operands with types dtypez$Cannot multiply with unequal lengthszUnable to coerce to SeriesrO   rN   r   r   )r   r)   rd   r   r,   r<  rR   rS   rT   rž   r   ©r.   r/   rƒ   rV   r   r   r   Ú!test_td64arr_mul_too_short_raisesd  s    ýÿzATestTimedeltaArraylikeMulDivOps.test_td64arr_mul_too_short_raisesc              	   C   sH   t tjddd�ƒ}t ||¡}d}tjt|d�� ||  W 5 Q R X d S )NrM   rŸ   r�   rk  rO   )r   r)   rd   r   r,   rR   rS   rT   rl  r   r   r   Útest_td64arr_mul_td64arr_raisest  s
    z?TestTimedeltaArraylikeMulDivOps.test_td64arr_mul_td64arr_raisesc                 C   sº   t dddgdd�}t dddgdd�}t ||¡}t ||¡}||  }t ||¡ | | }t ||¡ t dddgdd�}t ||¡}|d|  }t ||¡ d| | }t ||¡ d S )	Nrù   r	   rÊ   r�   z-59 DaysrÒ   z118 Daysr   )r
   r   r,   r-   )r.   r/   r  rì   r4   rU   r   r   r   Útest_td64arr_mul_numeric_scalar~  s    

z?TestTimedeltaArraylikeMulDivOps.test_td64arr_mul_numeric_scalarÚtwor   ræ   c              	   C   sv   t dddgdd�}t dddgdd�}t ||¡}t ||¡}|| }t ||¡ tjtdd�� ||  W 5 Q R X d S ©	Nrù   r	   rÊ   r�   z29.5DrÒ   r?  rO   ©r
   r   r,   r-   rR   rS   rT   ©r.   r/   rp  rì   r4   rU   r   r   r   Útest_td64arr_div_numeric_scalar”  s    z?TestTimedeltaArraylikeMulDivOps.test_td64arr_div_numeric_scalarc              	   C   sv   t dddgdd�}t dddgdd�}t ||¡}t ||¡}|| }t ||¡ tjtdd�� ||  W 5 Q R X d S rq  rr  rs  r   r   r   Ú$test_td64arr_floordiv_numeric_scalar¤  s    zDTestTimedeltaArraylikeMulDivOps.test_td64arr_floordiv_numeric_scalarr  é   rV  é(   c                 C   s
   t | ƒjS r”   rü   rþ   r   r   r   rÿ   µ  r   c                 C   s|   t dddgdd�}| |¡}t dddgdd�}t ||¡}t||ƒ}t ||¡}|| }t ||¡ || }t ||¡ d S )Nrù   r	   rÊ   r�   z	1180 Daysz	1770 DaysrÒ   )r
   re   r   r,   r   r-   )r.   r/   r  r  rì   r4   r0   rU   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              	      sn  t dddgdd�‰ ˆ |¡‰t dddgdd�}t ˆ |¡‰ tˆ ˆƒ}t ||¡}ˆ ˆ }t ||¡ d d	d
ddddg¡}tjt	|d�� ˆˆ   W 5 Q R X ˆ ˆ t
¡ }|tkrâ‡ ‡fdd„ttˆƒƒD ƒ}t ||¡ t
¡}nT‡ ‡fdd„ttˆ ƒƒD ƒ}dd„ |D ƒ}|tjk�r*t |¡ t
¡}n||t
d�}t ||¡ tjt	|d�� ˆ t
¡ˆ   W 5 Q R X d S )Nrù   r	   rÊ   r�   z2.95Dz
1D 23H 12mrÒ   r;  z!true_divide'? cannot use operandszcannot perform __div__zcannot perform __truediv__zunsupported operandr?  z-ufunc 'divide' cannot use operands with typesrO   c                    s"   g | ]}ˆ j d |f ˆ|  ‘qS )r   )r¾   r  ©rì   r  r   r   rØ   ö  s     zRTestTimedeltaArraylikeMulDivOps.test_td64arr_div_numeric_array.<locals>.<listcomp>c                    s   g | ]}ˆ | ˆ|  ‘qS r   r   r  ry  r   r   rØ   ù  s     c                 S   s$   g | ]}|t k	r|n
t d d¡‘qS )r	   r:  )r	   r)   rv   rL  r   r   r   rØ   ú  s    )r
   re   r   r,   r   r-   r<  rR   rS   rT   rf   r   rc   r#  r   )r.   r/   r  r  r4   r0   rU   r]  r   ry  r   Útest_td64arr_div_numeric_arrayÐ  sB    

úÿ
ÿz>TestTimedeltaArraylikeMulDivOps.test_td64arr_div_numeric_arrayc           
      C   s¬   |}t ||ƒ}tdddddg|d d�}tddd	d
dgtj|d d�}tdddddgd|d�}t ||¡}t||ƒ}t ||¡}|| }	t |	|¡ || }	t |	|¡ d S )NÚ0daysÚ1dayÚ2daysÚ3daysÚ4daysr   r‡   r   r   rN   r&   rC  Z9daysZ16daysrÒ   )	r#   r   r
   r)   rŸ   r   r,   r   r-   )
r.   r/   r!   r    r"   r1   r:   r4   r0   rU   r   r   r   Útest_td64arr_mul_int_series  s&    
 ÿý
z;TestTimedeltaArraylikeMulDivOps.test_td64arr_mul_int_seriesc                    sÔ   |}t dddddg|d d�‰tdd	d
ddgtj|d d�‰ |tjtjfkrT|d n|d }t‡ ‡fdd„tt	ˆ ƒƒD ƒd|d�}t 
ˆ|¡‰tˆˆ ƒ}t 
||¡}ˆ  ˆ¡}|tkrÄ|tksÐt‚nt ||¡ d S )Nr{  r|  r}  r~  r  r   r‡   rå   rN   g      @rf  g      @r   rC  r   c                    s   g | ]}ˆ| ˆ |  ‘qS r   r   r  ©r:   r1   r   r   rØ   .  s     zRTestTimedeltaArraylikeMulDivOps.test_float_series_rdiv_td64arr.<locals>.<listcomp>rÒ   )r   r
   r)   r6  r   r   r   r   rc   r#  r,   r   Ú__rtruediv__r   ÚNotImplementedr   r-   )r.   r/   r!   r    Zxnamer4   r0   rU   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t dd¡gd td�}|tk	r^t ||¡ 	t¡}|| }t 
||¡ || }t 
||¡ d S )Nr   ræ   r�   r	   r:  )r   r	   r   r,   r)   r   rf   r   rv   re   r-   )r.   r/   r1   rj   rk   r4   rU   r   r   r   Ú-test_td64arr_all_nat_div_object_dtype_numeric=  s    zMTestTimedeltaArraylikeMulDivOps.test_td64arr_all_nat_div_object_dtype_numericN)3rX   rY   rZ   r.  r/  r1  r3  r5  r7  rR   r[   r\   r)   rd   r   rŸ   rc   Zuint64r6  r   Z
RangeIndexr9  r=  r>  rA  rE  rN  rO  rP  rQ  rU  rX  Úfilterwarningsr\  r^  rd  re  rg  rj  rm  rn  ro  r   rt  ru  r
   rx  rz  r€  r„  r…  r   r   r   r   r,  �  st   


û÷
&"#


 
 
(ý
(ý
2r,  c                   @   s   e Zd Zdd„ ZdS )Ú"TestTimedelta64ArrayLikeArithmeticc              	   C   sz   t tddd�gd ƒ}tj|jd< t ||¡}d}tjt	|d�� ||  W 5 Q R X tjt	|d�� ||  W 5 Q R X d S rh  ri  )r.   rZ  r/   r[  r]  r   r   r   Útest_td64arr_pow_invalidT  s    z;TestTimedelta64ArrayLikeArithmetic.test_td64arr_pow_invalidN)rX   rY   rZ   rˆ  r   r   r   r   r‡  O  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.000000001srN   r   )r   r½   ra  rÕ   ©Ú	timestampr   r   rØ   j  s   ûÿþz3test_add_timestamp_to_timedelta.<locals>.<listcomp>)r   r   r   rc   r   r~   r•   r   rŠ  r   Útest_add_timestamp_to_timedeltae  s    
úÿ
rŒ  )'r   r   Únumpyr)   rR   Zpandas.errorsr   r   Zpandasr   r   r   r   r	   r
   r   r   r   r   r   Zpandas._testingZ_testingr   Zpandas.core.arraysr   Zpandas.tests.arithmetic.commonr   r   r   r   r#   r$   rh   rw   r»   rÆ   r,  r‡  rŒ  r   r   r   r   Ú<module>   s>   0	kg   A     N     7