U
    ÎZjì& ã                   @   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t‚dS )zT
    Helper to check the dtype for a Series, Index, or single-column DataFrame.
    N)ÚtmÚ	get_dtypeÚAssertionError)ÚobjZexpected_dtypeÚdtype© r   úk/var/www/html/TRUCKING_PROJECT/venv/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_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   s~   |}|t j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    Ú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kr|ntj}ttdd�tdd�gƒ}t ||¡}||k}tddgƒ}t ||¡}t 	||¡ d S )Nr   r9   r   FT)
r    r+   r!   r,   r-   r	   r   r   r.   r/   )r0   r1   r8   r"   r2   ÚserÚactualr6   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   )r0   r1   r?   r"   Úrngr   r   r   r   Útest_td64_comparisons_invalidl   s    zATestTimedelta64ArrayLikeComparisons.test_td64_comparisons_invalidr4   rE   z
1970-01-01©r*   Útzr)   z
1971-01-01ÚD©Úfreqr*   c                 C   s*   t ddd�j}t ||¡}t|||ƒ d S rC   )r   Ú_datar   r.   r   )r0   r4   r1   rF   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 )NrD   é   r)   r   r   r   é   rA   FTzDInvalid comparison between|Cannot compare type|not supported between©Úmatch)
r   rM   r,   r!   r   r   Úassert_numpy_array_equalÚpytestÚraisesÚ	TypeError)r0   rF   r4   Úresultr6   Úmsgr   r   r   Útest_td64arr_cmp_mixed_invalid™   s     zBTestTimedelta64ArrayLikeComparisons.test_td64arr_cmp_mixed_invalidN) Ú__name__Ú
__module__Ú__qualname__r7   rT   ÚmarkÚparametrizer   r
   Zto_timedelta64r   ÚHourr>   r   ÚnowÚto_datetime64Úto_pydatetimeÚdater,   r!   rG   ÚlistÚrangeÚarangeÚastypeZfloat32Úobjectr    Ú
date_rangeZperiod_rangerN   rY   r   r   r   r   r&   B   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 )NrD   ú3 daysFT)	r   r
   r   rh   rg   r,   r!   r   rS   )r0   r   ÚleftÚrightÚlhsÚrhsrW   r6   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   rJ   Znatr   ÚsrO   rP   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   rS   )r0   rq   Zidx1rW   r6   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 )NrD   rE   r)   rP   TFé   )r   r,   r!   r   rS   rd   )r0   rF   rW   r6   Úexpr   r   r   Útest_comparisons_coverage  s    z9TestTimedelta64ArrayComparisons.test_comparisons_coverage)rZ   r[   r\   rT   r]   r^   rh   rp   r   r   r,   r!   Útimedelta64rt   rw   r   r   r   r   rj   ¯   s(   
ÿ

úÿüþ
%rj   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©rL   Únamer   Z12HZ16HZ20HZ1HZ3HZ5HÚHz-2Hz-4Hz-6Hz-8Hz-10Hz-1HZ0H)r   r,   ÚmultiplyÚ
isinstancer   r   Úassert_index_equalrL   ÚdivideÚnegativeÚabsÚabsolute)r0   ÚidxrW   rv   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 )NrD   ú2 daysÚfoo©r|   Ú20130101rP   Úbar©r*   r|   z0cannot subtract a datelike from a TimedeltaArrayrQ   z#unsupported operand type\(s\) for -z((bad|unsupported) operand type for unaryú0 daysú-1 daysú-2 daysF)Zcheck_namesÚ20121231Ú20130102rJ   r{   Z20121230)r   r   r    ri   r
   r   rT   rU   rV   r   r€   r   )r0   r3   ÚdtiÚtdÚdtrX   rW   r6   r   r   r   Útest_subtraction_ops9  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Š   rP   r)   z
US/EasternZCETrD   c                 S   s   | |kst ‚t| tƒst ‚d S ©N)r   r   r
   ©rW   r6   r   r   r   Ú_checkv  s    zNTestTimedelta64ArithmeticUnsorted.test_subtraction_ops_with_tz.<locals>._checkr�   z<Cannot subtract tz-naive and tz-aware datetime-like objects.rQ   z6can't subtract offset-naive and offset-aware datetimesz%Cannot subtract tz-naive and tz-awarer‡   rŽ   r�   r�   r‘   ©rI   )r    ri   r   r.   r   rb   Ztz_localizer
   rT   rU   rV   r   r/   r   )r0   r1   r’   Útsr”   Zdti_tzZts_tzZts_tz2Zdt_tzr“   r˜   rW   r6   rX   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 )NrD   r‡   rˆ   r‰   rŠ   rP   r‹   rŒ   r�   ú4 daysr�   )r   r   r    ri   r   r€   r   )r0   r3   r’   rW   r6   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ƒ  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 )NrD   r‡   rˆ   r‰   rŠ   rP   r‹   rŒ   r‘   Z20130103rk   z$cannot add indices of unequal lengthrQ   r   r   ú3Addition/subtraction of integers and integer-arraysr   Z20130105)r   r   r    ri   r
   r   r   r   r€   rT   rU   Ú
ValueErrorrV   r   r   )r0   r3   r’   r“   r”   rW   r6   rX   r   r   r   Útest_addition_opsÎ  sH    z3TestTimedelta64ArithmeticUnsorted.test_addition_opsrL   rJ   Ú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*   rL   r   éÿÿÿÿÚinferrJ   )r    ri   r   Ú
_with_freqr   r€   Ztseriesr   ÚDayrL   r   ZBusinessDay)r0   rL   ÚindexZshiftedÚbackr6   rW   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    ri   r	   r   r_   r   r,   rx   rL   r   r¦   r   r€   )r0   rF   rr   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 )NrD   r‡   z
1999-12-31rP   rJ   r£   )r   r   r!   r    ri   r   r€   )r0   r3   Ztdar’   rW   r6   r   r   r   Útest_tda_add_sub_index.  s    z8TestTimedelta64ArithmeticUnsorted.test_tda_add_sub_indexc           	   	   C   sr   |}t jdd|d�}| d ¡}|| }t ||¡}t ||¡}t t¡� || t¡ }W 5 Q R X t 	||¡ d S )Nú
2016-01-01rP   rH   )
r    ri   r¦   r   r.   Úassert_produces_warningr   rg   rh   r/   )	r0   r1   Útz_naive_fixturer"   r’   r3   r   r4   rW   r   r   r   Útest_tda_add_dt64_object_arrayA  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k	r^t ||¡ d S ©NrD   ú10 daysz1 days 02:00:00z10 days 02:00:00rJ   ©rL   ©r   r   r.   r/   r    r+   ©r0   Ú	two_hoursr1   rF   r6   Zorig_rngr   r   r   Útest_tdi_iadd_timedeltalikeS  s    

z=TestTimedelta64ArithmeticUnsorted.test_tdi_iadd_timedeltalikec                 C   s^   t ddƒ}t ddƒ}t ||¡}t ||¡}|}||8 }t ||¡ |tjk	rZt ||¡ d S ©NrD   r²   z0 days 22:00:00z9 days 22:00:00r´   rµ   r   r   r   Útest_tdi_isub_timedeltalikeb  s    


z=TestTimedelta64ArithmeticUnsorted.test_tdi_isub_timedeltalikec                 C   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‡   rO   Z2Drz   )r*   rL   r|   r   rœ   r   r�   Z4DrD   rJ   z-2Dr�   r‰   )r   rL   r   r€   r   rƒ   r   )r0   rF   rW   rv   r   r   r   Útest_tdi_ops_attributess  s:     ÿz9TestTimedelta64ArithmeticUnsorted.test_tdi_ops_attributesN)rZ   r[   r\   r†   r•   r›   r�   r    rT   r]   r^   rª   r«   r¬   r°   r·   r¹   rº   r   r   r   r   ry     s   /U8
ry   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   rb   ra   rg   r   Úilocr   r   )	r0   r1   r¼   ZtdinatZtdobjrš   Zts_variantsÚvariantr5   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10155196800000000000rQ   iT  rJ   Ú2000r   zOverflow in int64 additionrD   z5 daysú1 hoursz	7 secondsz4 hoursrœ   z5 hours)rT   rU   r   r    r½   r   r   ÚvalueÚOverflowErrorr
   r   r   r€   )r0   Z_NaTrX   rv   rW   r   r   r   Útest_tdi_add_overflow±  s<    
   ÿÿ
ÿz*TestAddSubNaTMasking.test_tdi_add_overflowN)rZ   r[   r\   rT   r]   r^   rÀ   rÅ   r   r   r   r   r»   ™  s   
r»   c                	   @   sš  e Zd Zdd„ Zdd„ Zdd„ Zej de	e
ejg¡dd	„ ƒZd
d„ Zdd„ Zdd„ Zej d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-d.„ Zd/d0„ Zej d1e d2¡eg¡d3d4„ ƒZ d5d6„ Z!d7d8„ Z"d9d:„ Z#d;d<„ Z$d=d>„ Z%ej d?ejejeg¡d@dA„ ƒZ&dBdC„ Z'dS )DÚTestTimedeltaArraylikeAddSubOpsc              	   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 )
Nz00:00:01z00:00:02z?dtype datetime64\[ns\] cannot be converted to timedelta64\[ns\]rQ   úm8[ns]©r   r   úunsupported operand typez8cannot subtract a datelike from|unsupported operand type)r    r½   r	   rT   rU   rV   r   r   ÚapplyrÃ   r   r   Úassert_series_equalr,   ÚnanZassert_frame_equal)r0   Ús1Ús2rX   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-1rP   rJ   r£   z2012-1-2g  ÀS$¥ÓBÚint64útimedelta64[ns]ÚAc                 S   s   g | ]}t |d �‘qS )r9   ©r   ©Ú.0Úir   r   r   Ú
<listcomp>S  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±  r9   rÔ   rÕ   r   r   r   rØ   l  s     rÇ   r(   r9   rO   ©ÚminutesÚsecondsr   )r    ri   r	   r¨   rg   r   rË   r   r   r   re   ÚshiftÚmaxr   r   r   r   r,   rx   )r0   Zv1Zv2ÚrsZxpZdfr“   rW   ZmaxaZresultbÚvaluesr6   ÚdZresultarÃ   r   r   r   Útest_operators_timedelta64I  sV    
z:TestTimedeltaArraylikeAddSubOps.test_operators_timedelta64c                 C   s  t ttdƒgƒ}t ttgdd�}t tgdd�}t |t |¡ t t | |¡ t || |¡ t | | |¡ t |t |¡ t t| |¡ t || |¡ t || |¡ t |t |¡ t t| |¡ t || |¡ t || |¡ t |t |¡ t t| |¡ t || |¡ t || |¡ t |d |¡ t d| |¡ t |d |¡ t d| |¡ t |d t ttdƒgƒ¡ t d| t ttdƒgƒ¡ t |tj |¡ t tj| |¡ t |d t ttd	ƒgƒ¡ t |d
 t ttd	ƒgƒ¡ t |tj |¡ d S )NÚ1srÒ   rÈ   ç      ð?r   ç      ø?z1.5sr   z0.5sç       @)r	   r   r
   r   rË   r,   rÌ   )r0   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™   rs   rP   r)   z
2012-01-02rH   z
2011-12-31z-1D)r*   rL   rI   zcannot subtract a datelikerQ   )r   r   rb   r,   Ú
datetime64ra   r   r    ri   r   r.   r/   rT   rU   rV   )r0   rç   r1   r¯   rI   Z	dt_scalarrš   r3   r6   ÚtdarrZ	expected2rX   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   rs   rP   r)   )r,   rè   r   r   r   r.   r/   )r0   r1   r4   r3   r6   Ú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­   rP   r)   ú-1 Dayzcannot subtract a datelike fromrQ   )r    ri   r   rß   r   r   r.   rT   rU   rV   r/   )r0   r1   r’   r3   Údtarrr6   rX   rW   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­   rP   r)   rí   )r    ri   r   rß   r   r   r.   r/   )r0   r1   r’   r3   rî   r6   rW   r   r   r   Útest_td64arr_add_dt64_array"  s    z;TestTimedeltaArraylikeAddSubOps.test_td64arr_add_dt64_arrayÚpi_freqrJ   Ú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 typerQ   )r   r   Z	to_periodr   r.   rT   rU   rV   )
r0   r1   Zbox_with_array2rô   rñ   r3   r’   ÚpiZperrX   r   r   r   Útest_td64arr_sub_periodlike3  s    
z;TestTimedeltaArraylikeAddSubOps.test_td64arr_sub_periodliker4   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   )r0   r1   r4   rë   ré   r   r   r   Ú*test_td64arr_addsub_numeric_scalar_invalidH  s    zJTestTimedeltaArraylikeAddSubOps.test_td64arr_addsub_numeric_scalar_invalidÚvecrP   c                 C   s
   t | ƒjS r–   ©ÚtyperZ   ©rz   r   r   r   Ú<lambda>b  ó    z(TestTimedeltaArraylikeAddSubOps.<lambda>©Zidsc                 C   s6   t dddgdd�}t ||¡}| |¡}t||ƒ d S r÷   )r	   r   r.   rg   r   )r0   r1   rú   Úany_real_numpy_dtyperë   ré   Úvectorr   r   r   Ú'test_td64arr_addsub_numeric_arr_invalidZ  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}   rE   rK   ú Addition/subtraction of integersrQ   )r   r   r.   r   rT   rU   rV   )r0   r1   ÚonerF   ré   rX   r   r   r   Útest_td64arr_add_sub_intm  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}   rP   rK   r(   r   rž   )r    r!   r,   r-   r   r   r.   r   )r0   r1   r"   r2   rF   ré   r4   rX   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   )r0   r1   r"   r2   r3   ré   r4   rX   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­   rP   r)   r   r   r   )r    ri   rÜ   rß   r   r.   r/   )	r0   r1   r"   r’   r3   ré   r6   rW   Ú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�   rs   r   r‰   rP   )Úhoursr(   r   )r:   r  rÒ   éýÿÿÿéüÿÿÿ)r%   r   r   r   r    r!   r,   r	   r
   r.   r/   r   )	r0   r1   r#   r"   r$   r3   r<   r6   rW   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/   )r0   r1   r  r"   r3   r6   r   rW   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/   ©r0   r¶   r1   r"   rF   r6   rW   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           
   	      sX  |}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k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 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  ©r4   r3   r   r   rØ     s     zUTestTimedeltaArraylikeAddSubOps.test_td64arr_add_sub_offset_index.<locals>.<listcomp>r¥   r{   c                    s   g | ]}ˆ| ˆ |  ‘qS r   r   r  r  r   r   rØ     s     )r%   r   r    r+   r   r_   ÚMinuter   r   r!   r,   re   Úlenr.   r®   r   r/   )
r0   r#   r1   r"   r$   r6   r  r5   Ú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¡� ˆˆ  }W 5 Q R X t ||¡ t 
t¡� ˆ ˆ }W 5 Q R X 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Ø   /  s     )r   r,   r!   r   r_   r   re   r!  r   r.   r®   r   r/   )r0   r1   r"   r6   r  r5   r"  r#  r   r  r   Ú!test_td64arr_add_sub_offset_array%  s.     ÿ ÿzATestTimedeltaArraylikeAddSubOps.test_td64arr_add_sub_offset_arrayc              	      sP  |}|t j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 ƒ|d�}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 ƒ|d�}
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Ø   K  s     zSTestTimedeltaArraylikeAddSubOps.test_td64arr_with_offset_series.<locals>.<listcomp>c                    s   g | ]}ˆ| ˆ |  ‘qS r   r   r  r  r   r   rØ   W  s     )r    r+   r   r   r!   r	   r%   r   r   r_   r   re   r!  r.   r®   r   r/   )r0   r#   r1   r"   Zbox2r$   Zexpected_addr   r5   r"  r  Zres3r   r  r   Útest_td64arr_with_offset_seriesB  s&    
$$$z?TestTimedeltaArraylikeAddSubOps.test_td64arr_with_offset_seriesÚoboxc              
   C   s  t ddgƒ}t ||¡}|t ¡ tjdd�gƒ}d}tjt|d��$ t 	t
¡� ||  W 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 MonthEndrQ   )r   r   r.   r   ZMonthEndr§   rT   rU   rV   r®   r   )r0   r'  r1   r3   ZanchoredrX   r   r   r   Ú-test_td64arr_addsub_anchored_offset_arraylike^  s     zMTestTimedeltaArraylikeAddSubOps.test_td64arr_addsub_anchored_offset_arraylikec           
   
   C   s:  |}|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 ||¡ 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 ||¡ d S )Nrs   rP   rJ   r£   r   r9   r   z
2000-01-04r(   z
2000-01-07z3unsupported operand type|cannot subtract a datelikerQ   r   z
2000-01-01)r    r!   r,   r-   r   r   r.   r
   r   r§   r   r®   r   r+   r/   rT   rU   rV   )
r0   r1   r"   r2   r3   ré   r4   rW   r6   rX   r   r   r   Ú!test_td64arr_add_sub_object_arrayy  s*     ÿzATestTimedeltaArraylikeAddSubOps.test_td64arr_add_sub_object_array)(rZ   r[   r\   rÐ   rá   ræ   rT   r]   r^   r   r   r,   rè   rê   rì   rï   rð   rö   r!   rù   r    r+   r	   r   r  r  r  r  r  r  rx   r   r  r  r  r$  r%  r&  r(  r)  r   r   r   r   rÆ   Ú  sZ   jBU
#úþ
üø

	#
 
rÆ   c                   @   sJ  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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d3d4„ Zd5d6„ Z d7d8„ Z!d9d:„ Z"d;d<„ Z#d=d>„ Z$d?d@„ Z%dAdB„ Z&e	j
 dCdDdEe 'dD¡e 'dE¡g¡dFdG„ ƒZ(e	j
 dCdDdEe 'dD¡e 'dE¡g¡dHdI„ ƒZ)e	j
jdJe 'dKdLdMg¡e *dKdLdMg¡e+dKdLdMgƒgdNd„ d�dOdP„ ƒZ,e	j
jdJe 'dKdLdMg¡e *dKdLdMg¡e+dKdLdMgƒgdQd„ d�dRdS„ ƒZ-dTdU„ Z.dVdW„ Z/dXdY„ Z0dZS )[ÚTestTimedeltaArraylikeMulDivOpsc                 C   sJ   t tjddd�ƒ}t ||¡}|d }t ||¡ d| }t ||¡ d S )NrO   rÑ   rÈ   r   )r   r,   rf   r   r.   r/   ©r0   r1   r…   rW   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 )NrD   r²   rˆ   r‰   z@argument must be an integer|cannot use operands with types dtyperQ   )r   r   r.   rT   rU   rV   )r0   r¶   r1   rF   rX   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 )NrO   rÑ   rÈ   )r,   rf   r   r   r.   r!   r/   ©r0   r1   Zrng5r…   r6   rW   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 ©NrO   rÑ   rÈ   r   )r,   rf   r   r   r.   r/   r.  r   r   r   Útest_tdi_mul_int_array¼  s    z6TestTimedeltaArraylikeMulDivOps.test_tdi_mul_int_arrayc                 C   s†   |}|t j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 r0  ©r    r+   r   r   r!   r	   r   r,   rf   r.   r/   )r0   r1   r"   r2   r…   r6   rW   r   r   r   Útest_tdi_mul_int_seriesÇ  s    z7TestTimedeltaArraylikeMulDivOps.test_tdi_mul_int_seriesc                 C   sˆ   |}|t j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 )NrO   rÑ   rÈ   Úfloat64rã   r2  )r0   r1   r"   r2   r…   Zrng5fr6   rW   r   r   r   Útest_tdi_mul_float_seriesÔ  s    z9TestTimedeltaArraylikeMulDivOps.test_tdi_mul_float_seriesr4   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	  rE   rD   r²   )r   r   r¦   r   r.   r   r/   )	r0   r4   r1   r"   r3   r6   r2   rW   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 )NrD   r²   rˆ   r‰   rÉ   rQ   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.   rT   rU   rV   r   r,   rè   Újoin)r0   r1   rF   Zdt64natrX   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 )NrD   r²   r   rE   )
r    r!   r,   r-   r   r   r.   rx   rÌ   r/   )r0   r1   r"   r2   rF   r4   r6   rW   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 )NrO   rÑ   rÈ   r   úCannot dividerQ   ©	r   r,   rf   r   r.   r/   rT   rU   rV   r+  r   r   r   Útest_td64arr_div_int,  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 dd�}t ||¡}t ||¡}|| }t 	||¡ || }d| }t 	||¡ d S )NrD   r²   rˆ   r‰   rE   r   é   )
r    r!   r,   r-   r   r   rf   r   r.   r/   ©r0   r¶   r1   r"   r2   rF   r6   rW   r   r   r   Útest_td64arr_div_tdlike_scalar7  s    z>TestTimedeltaArraylikeMulDivOps.test_td64arr_div_tdlike_scalarÚmrP   rE   ÚunitrJ   Úhrr   ÚmsÚusr8  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é;   r9   rP   r   c                    s   g | ]}|t  ˆ ˆ¡ ‘qS r   )r,   rx   ©rÖ   rz   ©rC  rD  r   r   rØ   U  s     zPTestTimedeltaArraylikeMulDivOps.test_td64arr_div_td64_scalar.<locals>.<listcomp>c                    s    g | ]}t t ˆ ˆ¡ƒ| ‘qS r   )r
   r,   rx   rI  rJ  r   r   rØ   [  s     )r    r!   r,   r-   r	   r
   rÌ   r   r.   rx   r/   )
r0   rC  rD  r1   r"   r2   r<   Zflatr6   rW   r   rJ  r   Útest_td64arr_div_td64_scalarI  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dd�}t 	||¡}t 	||¡}|| }t 
||¡ || }d| }t 
||¡ d S )NrD   r‡   rˆ   r‰   r@  r;   r   )r    r!   r,   r-   r   r   r   rÌ   r   r.   r/   rA  r   r   r   Ú'test_td64arr_div_tdlike_scalar_with_nat`  s    zGTestTimedeltaArraylikeMulDivOps.test_td64arr_div_tdlike_scalar_with_natc                 C   s2  |}|t jkrtjn|}tdtdgƒ}tdtjdgƒ}t 	||¡}t 	||¡}tjdddgdd�}|| }t 
||¡ |t 	||¡ }t 
||¡ || t¡ }t 
||¡ |t|ƒ }t 
||¡ d	| }|| }t 
||¡ t 	||¡| }t 
||¡ | t¡| }t 
||¡ t|ƒ| }t 
||¡ d S )
NrD   r‡   r@  r;   r   r(   zm8[h]rÈ   r   )r    r!   r,   r-   r   r   r   rÌ   r   r.   r/   rg   rh   rd   )r0   r1   r"   r2   rF   r6   r4   rW   r   r   r   Útest_td64arr_div_td64_ndarrayq  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 ]d}|t |¡t |¡fD ]H}tj	t
|d�� ||  W 5 Q R X tj	t
|d�� ||  W 5 Q R X qTq:d S )	NrD   r‡   r   r   rP   r(   z0Cannot divide vectors|Unable to coerce to SeriesrQ   )r   r   r   r.   r,   r!   r    r+   rT   rU   rŸ   )r0   r1   rF   Z
mismatchedrX   r   r4   r   r   r   Útest_tdarr_div_length_mismatch—  s    z>TestTimedeltaArraylikeMulDivOps.test_tdarr_div_length_mismatchc           	      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 ||¡ t |¡| }t ||¡ d S )
Niè  izd é   rÒ   rÈ   rã   r   r   rÑ   )r    r!   r,   r-   r	   r   r.   rÌ   r4  r   rg   r/   Zasarray)	r0   r1   Zusing_array_managerr"   r2   rl   rm   r6   rW   r   r   r   Ú&test_td64arr_floordiv_td64arr_with_nat¨  s    zFTestTimedeltaArraylikeMulDivOps.test_td64arr_floordiv_td64arr_with_natc           	      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È   F)Z	transposer   r   )r    r!   r,   r-   r
   r	   r   r   r.   rÌ   r/   Ú__rfloordiv__)	r0   r1   Ú	scalar_tdr"   r2   r“   Útd1r6   rW   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 )NrO   rÑ   rÈ   r   z@floor_divide cannot use operands|Cannot divide int by Timedelta*rQ   r>  )r0   r1   r…   rW   Ú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rdt|tjƒrdt	}t 
|¡� t||ƒ}W 5 Q R X t |d |¡ t |d || ¡ d S )Nr	  ú9 daysz2 Daysú0 DaysrP   r   r   )r   r   r.   r   r/   r   r   r    Z
DateOffsetr   r®   Údivmod)r0   r1   Ú
three_daysr3   ré   r6   rW   Ú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 nsrE   r)   z0 nsrO   r   zCannot divide int byrQ   r   r   )	r   r   r.   r   r/   rT   rU   rV   rY  )r0   r1   r3   ré   r6   rW   rX   r   r   r   Útest_td64arr_mod_int  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	  rW  rX  z3 Daysé   r   r   )r   r   r.   r   r/   rY  )r0   r1   rZ  r3   ré   r6   rW   r   r   r   Útest_td64arr_rmod_tdscalar  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 ©NrO   rP   rÙ   r   z(operate|unsupported|cannot|not supportedrQ   ©
r	   r   r,   rÌ   r¾   r   r.   rT   rU   rV   )r0   r1   rR  rS  rU  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 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 )NrO   rÑ   rÈ   r9  ú$cannot use operands with types dtypez$Cannot multiply with unequal lengthszUnable to coerce to SeriesrQ   rP   r   r   )r   r,   rf   r   r.   r:  rT   rU   rV   rŸ   r!   ©r0   r1   r…   rX   r   r   r   Ú!test_td64arr_mul_too_short_raises5  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 )NrO   rÑ   rÈ   rc  rQ   )r   r,   rf   r   r.   rT   rU   rV   rd  r   r   r   Útest_td64arr_mul_td64arr_raisesE  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/   )r0   r1   r  rë   r6   rW   r   r   r   Útest_td64arr_mul_numeric_scalarO  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=  rQ   ©r	   r   r.   r/   rT   rU   rV   ©r0   r1   rh  rë   r6   rW   r   r   r   Útest_td64arr_div_numeric_scalare  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 ri  rj  rk  r   r   r   Ú$test_td64arr_floordiv_numeric_scalaru  s    zDTestTimedeltaArraylikeMulDivOps.test_td64arr_floordiv_numeric_scalarr  é   rO  é(   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	   rg   r   r.   r   r/   )r0   r1   r  r  rë   r6   r2   rW   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 dddgdd�‰ ˆ |¡‰t dddgdd�}t ˆ |¡‰ tˆ ˆƒ}t ||¡}ˆ ˆ }t ||¡ 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 ƒ}n‡ ‡fdd„ttˆ ƒƒD ƒ}t |¡}t ||¡}t |¡dk�st‚t ||¡ tjt	|d�� ˆ t
¡ˆ   W 5 Q R X d S )Nrø   r   rÇ   rÈ   z2.95Dz
1D 23H 12mrÒ   r9  z!true_divide'? cannot use operandszcannot perform __div__zcannot perform __truediv__zunsupported operandr=  rQ   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  rq  r   r   rØ   È  s     )r	   rg   r   r.   r   r/   r:  rT   rU   rV   rh   r   re   r!  r    r+   r   r   )r0   r1   r  r  r6   r2   rW   rU  r   rq  r   Útest_td64arr_div_numeric_array¡  s8    

ûÿ	
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   rP   r(   ©r   r|   Z9daysZ16daysrÒ   )	r%   r   r	   r,   rÑ   r   r.   r   r/   )
r0   r1   r#   r"   r$   r3   r<   r6   r2   rW   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 )Nrs  rt  ru  rv  rw  r   r‰   rä   rP   g      @r^  g      @r   rx  r   c                    s   g | ]}ˆ| ˆ |  ‘qS r   r   r  ©r<   r3   r   r   rØ   ù  s     zRTestTimedeltaArraylikeMulDivOps.test_float_series_rdiv_td64arr.<locals>.<listcomp>rÒ   )r   r	   r,   r4  r   r   r    r!   re   r!  r.   r   Ú__rtruediv__r   ÚNotImplementedr   r/   )r0   r1   r#   r"   Zxnamer6   r2   rW   r   rz  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!   rh   r/   )r0   r1   r3   rl   rm   rW   r   r   r   Ú-test_td64arr_all_nat_div_object_dtype_numeric  s    zMTestTimedeltaArraylikeMulDivOps.test_td64arr_all_nat_div_object_dtype_numericN)1rZ   r[   r\   r,  r-  r/  r1  r3  r5  rT   r]   r^   r,   rf   r   re   r   r   r    Z
RangeIndexr7  r;  r<  r?  rB  rK  rL  rM  rN  rP  rT  rV  r\  r]  r_  rb  re  rf  rg  r!   rl  rm  r+   r	   rp  rr  ry  r}  r~  r   r   r   r   r*  ˜  sp   


û÷
&
 
 
*ý
*ý
,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 r`  ra  )r0   rR  r1   rS  rU  r   r   r   Útest_td64arr_pow_invalid  s    z;TestTimedelta64ArrayLikeArithmetic.test_td64arr_pow_invalidN)rZ   r[   r\   r€  r   r   r   r   r    s   r  c                     sD   t dƒ‰ ˆ tdddd� } t‡ fdd„tdƒD ƒƒ}t | |¡ d S )NrA   Z0srâ   é   r)   c                    s6   g | ].}ˆ t  d ¡| t  d¡t|dƒd    ‘qS )z0.033333333sz0.000000001srP   r   )r    r½   rY  rÕ   ©Ú	timestampr   r   rØ   1  s   ûÿþz3test_add_timestamp_to_timedelta.<locals>.<listcomp>)r   r   r   re   r   r€   r—   r   r‚  r   Útest_add_timestamp_to_timedelta,  s    
úÿ
r„  )(r   r   Únumpyr,   rT   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&   rj   ry   r»   rÆ   r*  r  r„  r   r   r   r   Ú<module>   s>   ,	mg   A     C     