o
    Û­j•  ã                   @   s®   d Z ddlmZmZ ddlZddlZddlZddlmZ ddl	Z
ddl	mZmZmZmZ ddlmZ ddlmZ G dd„ dƒZG d	d
„ d
ƒZG dd„ dƒZdd„ Zdd„ ZdS )z+
Tests for scalar Timedelta arithmetic ops
é    )ÚdatetimeÚ	timedeltaN)ÚOutOfBoundsTimedelta)ÚNaTÚ	TimedeltaÚ	TimestampÚoffsets)Úopsc                   @   s   e Zd ZdZej deddd�edd�e	 
dd¡e	 
dd¡e d¡g¡d	d
„ ƒZej dedƒedƒeddd�e	 
dd¡e	 
dd¡ e ¡ e d¡ g¡dd„ ƒZej dejejg¡dd„ ƒZdd„ Zej dejejg¡dd„ ƒZej dejejg¡dd„ ƒZej dejejg¡dd„ ƒZej dejejg¡dd„ ƒZd d!„ Zd"d#„ Zd$d%„ Zd&d'„ Zd(d)„ Zd*d+„ Zd,d-„ Z d.d/„ Z!d0d1„ Z"d2d3„ Z#d4d5„ Z$d6d7„ Z%d8d9„ Z&ej dejejg¡d:d;„ ƒZ'ej dejejg¡d<d=„ ƒZ(d>d?„ Z)d@dA„ Z*dBdC„ Z+dDS )EÚ TestTimedeltaAdditionSubtractionz\
    Tests for Timedelta methods:

        __add__, __radd__,
        __sub__, __rsub__
    Úten_secondsé
   Ús©Úunit©Úsecondsl    d(	 Únsc                 C   óD   t dƒ}t dƒ}t dƒ}|| }||ksJ ‚|| }||ks J ‚d S )Nz20130101 09:01:12.123456z20130101 09:01:22.123456ú20130101 09:01:02.123456©r   )Úselfr   ÚbaseÚexpected_addÚexpected_subÚresult© r   új/var/www/html/CropPilot/venv/lib/python3.10/site-packages/pandas/tests/scalar/timedelta/test_arithmetic.pyÚtest_td_add_sub_ten_seconds"   ó   z<TestTimedeltaAdditionSubtraction.test_td_add_sub_ten_secondsÚone_day_ten_secsz1 day, 00:00:10z1 days, 00:00:10é   ©Údaysr   ÚDc                 C   r   )Nz20130102 09:01:12.123456z20130103 09:01:22.123456r   r   )r   r   r   r   r   r   r   r   r   Ú#test_td_add_sub_one_day_ten_seconds8   r   zDTestTimedeltaAdditionSubtraction.test_td_add_sub_one_day_ten_secondsÚopc                 C   s¾   t ddd�}||tdddƒƒ}|tju rt|tƒsJ ‚|tdddƒks%J ‚||tdƒƒ}t|tƒs3J ‚|tdƒks;J ‚||t d	¡ƒ}t|tƒsJJ ‚|td
ƒksRJ ‚||tƒ}|tu s]J ‚d S )Nr   Údr   éà  r    é   z2018-01-12 18:09z2018-01-22 18:09z
2018-01-12ú
2018-01-22)	r   r   ÚoperatorÚaddÚ
isinstancer   ÚnpÚ
datetime64r   ©r   r%   Útdr   r   r   r   Útest_td_add_datetimelike_scalarN   s   

z@TestTimedeltaAdditionSubtraction.test_td_add_datetimelike_scalarc                 C   s–   t dƒ d¡}d}tjt|d�� |tddd�  W d   ƒ n1 s#w   Y  d}tjt|d�� |tdd	�  W d   ƒ d S 1 sDw   Y  d S )
Nz
1700-01-01r   z3Cannot cast 259987 from D to 'ns' without overflow.©Úmatchi“÷ r#   r   z>Cannot cast 259987 days 00:00:00 to unit='ns' without overflow©r"   )r   Úas_unitÚpytestÚraisesr   r   r   )r   ÚtsÚmsgr   r   r   Útest_td_add_timestamp_overflowe   s   ÿ"ÿz?TestTimedeltaAdditionSubtraction.test_td_add_timestamp_overflowc                 C   s@   t ddd�}||t dd�ƒ}t|t ƒsJ ‚|t dd�ksJ ‚d S )Nr   r&   r   r4   é   ©r   r,   r/   r   r   r   Útest_td_add_tdo   s   z/TestTimedeltaAdditionSubtraction.test_td_add_tdc                 C   s@   t ddd�}||tdd�ƒ}t|t ƒsJ ‚|t dd�ksJ ‚d S )Nr   r&   r   é	   r4   é   ©r   r   r,   r/   r   r   r   Útest_td_add_pytimedeltaw   s   z8TestTimedeltaAdditionSubtraction.test_td_add_pytimedeltac                 C   sB   t ddd�}||t dd¡ƒ}t|t ƒsJ ‚|t dd�ksJ ‚d S )Nr   r&   r   éüÿÿÿr#   é   r4   ©r   r-   Útimedelta64r,   r/   r   r   r   Útest_td_add_timedelta64~   s   z8TestTimedeltaAdditionSubtraction.test_td_add_timedelta64c                 C   sB   t ddd�}||t d¡ƒ}t|t ƒsJ ‚|t ddd�ksJ ‚d S )Nr   r&   r   rC   ©r"   Úhours©r   r   ÚHourr,   r/   r   r   r   Útest_td_add_offset…   s   z3TestTimedeltaAdditionSubtraction.test_td_add_offsetc                 C   s>   t ddd�}t ddd�}|| }t|t ƒsJ ‚||ksJ ‚d S ©Nr   r&   r   r   r   r<   ©r   r0   Úexpectedr   r   r   r   Útest_td_sub_td�   s
   z/TestTimedeltaAdditionSubtraction.test_td_sub_tdc                 C   óh   t ddd�}t ddd�}|| ¡  }t|t ƒsJ ‚||ksJ ‚| ¡ | }t|t ƒs,J ‚||ks2J ‚d S rL   )r   Úto_pytimedeltar,   rM   r   r   r   Útest_td_sub_pytimedelta”   ó   z8TestTimedeltaAdditionSubtraction.test_td_sub_pytimedeltac                 C   rP   rL   )r   Úto_timedelta64r,   rM   r   r   r   Útest_td_sub_timedelta64    rS   z8TestTimedeltaAdditionSubtraction.test_td_sub_timedelta64c                 C   s$   t ddd�}|t }|tu sJ ‚d S ©Nr   r&   r   ©r   r   ©r   r0   r   r   r   r   Útest_td_sub_nat¬   s   z0TestTimedeltaAdditionSubtraction.test_td_sub_natc                 C   sB   t ddd�}t d¡}|| }|tu sJ ‚|| }|tu sJ ‚d S ©Nr   r&   r   r   ©r   r-   rE   r   )r   r0   Útd_natr   r   r   r   Útest_td_sub_td64_nat²   s   
z5TestTimedeltaAdditionSubtraction.test_td_sub_td64_natc                 C   s@   t ddd�}|t d¡ }t|t ƒsJ ‚|t ddd�ksJ ‚d S )Nr   r&   r   r    éï   ÚhrI   rX   r   r   r   Útest_td_sub_offset¼   s   z3TestTimedeltaAdditionSubtraction.test_td_sub_offsetc              	   C   s
  t ddd�}d}ddt d¡t d¡fD ]n}tjt|d�� ||  W d   ƒ n1 s,w   Y  tjt|d�� ||  W d   ƒ n1 sGw   Y  tjt|d�� ||  W d   ƒ n1 sbw   Y  tjt|d�� ||  W d   ƒ n1 s}w   Y  qd S )Nr   r&   r   úunsupported operand typeé   ç       @r2   )r   r-   Úint64Úfloat64r6   r7   Ú	TypeError)r   r0   r9   Úotherr   r   r   Útest_td_add_sub_numeric_raisesÂ   s"   
ÿ
ÿ
ÿ
ÿ€ùz?TestTimedeltaAdditionSubtraction.test_td_add_sub_numeric_raisesc                 C   s  t dƒ}t dg¡}d}tjt|d�� |t dg¡  W d   ƒ n1 s&w   Y  d ddg¡}tjt|d�� ||  W d   ƒ n1 sHw   Y  d}tjt|d�� ||  W d   ƒ n1 sew   Y  d	}tjt|d�� ||  W d   ƒ d S 1 sƒw   Y  d S )
Nú1 dayr    z;unsupported operand type\(s\) for \+: 'Timedelta' and 'int'r2   ú|zEunsupported operand type\(s\) for \+: 'numpy.ndarray' and 'Timedelta'z;Concatenation operation is not implemented for NumPy arraysz:unsupported operand type\(s\) for -: 'Timedelta' and 'int'zDunsupported operand type\(s\) for -: 'numpy.ndarray' and 'Timedelta')r   r-   Úarrayr6   r7   rf   Újoin©r   r0   rg   r9   r   r   r   Útest_td_add_sub_int_ndarrayÏ   s,   ÿùÿ
ÿ
ÿ
"ÿz<TestTimedeltaAdditionSubtraction.test_td_add_sub_int_ndarrayc                 C   s>   t ddd�}t| }|tu sJ ‚t d¡| }|tu sJ ‚d S rZ   )r   r   r-   r.   rX   r   r   r   Útest_td_rsub_natë   s
   z1TestTimedeltaAdditionSubtraction.test_td_rsub_natc                 C   s<   t  d¡tddd� }t|tƒsJ ‚|tddd�ksJ ‚d S )Nr    r   r&   r   iÿÿÿr_   )r   rJ   r   r,   ©r   r   r   r   r   Útest_td_rsub_offsetó   s   z4TestTimedeltaAdditionSubtraction.test_td_rsub_offsetc                 C   sH   t  tdƒtdƒg¡}t  tdƒtdƒg¡}|tdƒ }t ||¡ d S )Nú20130101 9:01ú20121230 9:02z20121231 9:01z20121229 9:02Ú1D©r-   rk   r   r   ÚtmÚassert_numpy_array_equal)r   ÚarrÚexpÚresr   r   r   Ú,test_td_sub_timedeltalike_object_dtype_arrayø   s   zMTestTimedeltaAdditionSubtraction.test_td_sub_timedeltalike_object_dtype_arrayc                 C   sl   t dƒ}t |tdƒt dd¡g¡}t |tdƒ tdƒt dd¡tdƒ g¡}|tdƒ }t ||¡ d S )Nú2021-11-09 09:54:00rt   rb   r_   Ú0D)r   r-   rk   r   rE   rv   rw   )r   Únowrx   ry   rz   r   r   r   Ú7test_td_sub_mixed_most_timedeltalike_object_dtype_arrayÿ   s   
ýÿzXTestTimedeltaAdditionSubtraction.test_td_sub_mixed_most_timedeltalike_object_dtype_arrayc                 C   sh   t dƒ}t |tdƒt dd¡g¡}d}tjt|d�� tdƒ|  W d   ƒ d S 1 s-w   Y  d S )Nr|   rt   rb   r_   zAunsupported operand type\(s\) for \-: 'Timedelta' and 'Timestamp'r2   )r   r-   rk   r   rE   r6   r7   rf   )r   r~   rx   r9   r   r   r   Ú8test_td_rsub_mixed_most_timedeltalike_object_dtype_array  s   "ÿzYTestTimedeltaAdditionSubtraction.test_td_rsub_mixed_most_timedeltalike_object_dtype_arrayc                 C   sJ   t  tdƒtdƒg¡}t  tdƒtdƒg¡}||tdƒƒ}t ||¡ d S )Nrr   rs   z20130102 9:01z20121231 9:02rt   ru   )r   r%   rx   ry   rz   r   r   r   Ú,test_td_add_timedeltalike_object_dtype_array  s   zMTestTimedeltaAdditionSubtraction.test_td_add_timedeltalike_object_dtype_arrayc                 C   sR   t dƒ}t |tdƒg¡}t |tdƒ tdƒg¡}||tdƒƒ}t ||¡ d S )Nr|   rt   Ú2D)r   r-   rk   r   rv   rw   )r   r%   r~   rx   ry   rz   r   r   r   Ú2test_td_add_mixed_timedeltalike_object_dtype_array  s
   zSTestTimedeltaAdditionSubtraction.test_td_add_mixed_timedeltalike_object_dtype_arrayc                 C   sˆ   t dƒ}t | ¡ g¡}t t dƒ ¡ g¡}|| }t ||¡ || }t ||¡ || }t ||d ¡ || }t ||d ¡ d S )Nri   ú2 Daysr   ©r   r-   rk   rT   rv   rw   ©r   r0   rg   rN   r   r   r   r   Útest_td_add_sub_td64_ndarray&  s   z=TestTimedeltaAdditionSubtraction.test_td_add_sub_td64_ndarrayc                 C   s~   t dƒ}tjdgdd�}tjdgdd�}t || |¡ t || |¡ tjdgdd�}t | | |¡ t || |¡ d S )Nri   z
2000-01-01zM8[ns]©Údtypez
2000-01-02z
1999-12-31©r   r-   rk   rv   rw   )r   r0   rg   rN   r   r   r   Útest_td_add_sub_dt64_ndarray6  s   z=TestTimedeltaAdditionSubtraction.test_td_add_sub_dt64_ndarrayc                 C   s°   t dƒ}t |j¡}|| }t|t ƒsJ ‚|d| ksJ ‚|| }t|t ƒs(J ‚|d| ks0J ‚|| }t|t ƒs;J ‚|d| ksCJ ‚|| }t|t ƒsNJ ‚|d| ksVJ ‚d S )Nri   rb   r   )r   r-   rk   Úasm8r,   )r   r0   rg   r   r   r   r   Útest_td_add_sub_ndarray_0dB  s   z;TestTimedeltaAdditionSubtraction.test_td_add_sub_ndarray_0dN),Ú__name__Ú
__module__Ú__qualname__Ú__doc__r6   ÚmarkÚparametrizer   r   r-   rE   r   ÚSecondr   ÚDayr$   r*   r+   r	   Úraddr1   r:   r=   rA   rF   rK   rO   rR   rU   rY   r]   r`   rh   rn   ro   rq   r{   r   r€   r�   rƒ   r‡   r‹   r�   r   r   r   r   r
      sj    


ûþ


ûþ










r
   c                
   @   sŒ  e Zd ZdZej dee 	dd¡e 	d¡g¡ej de
jejg¡dd„ ƒƒZej deje d	¡edƒg¡ej de
jejg¡d
d„ ƒƒZej de
jejg¡dd„ ƒZdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zej deje d	¡edƒg¡dd„ ƒZdd„ Zdd„ Zd d!„ Zd"d#„ Zd$d%„ Zd&d'„ Z d(d)„ Z!d*d+„ Z"d,d-„ Z#d.d/„ Z$d0d1„ Z%d2d3„ Z&d4d5„ Z'd6d7„ Z(d8d9„ Z)d:d;„ Z*d<d=„ Z+d>d?„ Z,d@dA„ Z-dBdC„ Z.dDdE„ Z/dFdG„ Z0dHdI„ Z1dJdK„ Z2dLdM„ Z3dNdO„ Z4dPdQ„ Z5dRdS„ Z6dTdU„ Z7dVdW„ Z8dXdY„ Z9dZd[„ Z:d\d]„ Z;d^d_„ Z<d`da„ Z=dbdc„ Z>ddde„ Z?ej de
jeje
j@ejAejBg¡ej dfe CeDdgƒeDdhƒg¡e CeDdiƒeEdjƒg¡g¡dkdl„ ƒƒZFdmS )nÚ#TestTimedeltaMultiplicationDivisionzà
    Tests for Timedelta methods:

        __mul__, __rmul__,
        __div__, __rdiv__,
        __truediv__, __rtruediv__,
        __floordiv__, __rfloordiv__,
        __mod__, __rmod__,
        __divmod__, __rdivmod__
    r\   r   r   r%   c                 C   st   t ddd�}d g d¢¡}d d|› d|› d�d	g¡}tjt|d
�� |||ƒ W d   ƒ d S 1 s3w   Y  d S )Nr   r&   r   rj   )znumpy.timedelta64ÚNaTTyper   z'unsupported operand type\(s\) for \*: 'z' and 'ú'z1ufunc '?multiply'? cannot use operands with typesr2   ©r   rl   r6   r7   rf   )r   r%   r\   r0   Útypsr9   r   r   r   Útest_td_mul_natf  s   þÿ"ÿz3TestTimedeltaMultiplicationDivision.test_td_mul_natÚnanÚNaNc                 C   s&   t ddd�}|||ƒ}|tu sJ ‚d S rV   rW   )r   r%   r�   r0   r   r   r   r   Útest_td_mul_nanw  s   
z3TestTimedeltaMultiplicationDivision.test_td_mul_nanc                 C   s  t dd�}||dƒ}|t dd�ksJ ‚||dƒ}|t ddd�ks"J ‚||tjƒtu s,J ‚|d	|ƒjd	|j ks9J ‚|d
|ƒjd
|j ksFJ ‚d}tjt|d�� ||tdddƒƒ W d   ƒ n1 scw   Y  tjt|d�� |||ƒ W d   ƒ d S 1 s€w   Y  d S )Né   ©Úminutesrb   rC   g      ø?é   é   ©r¢   r   éÿÿÿÿg      ð¿ra   r2   r'   r    )	r   r-   r�   r   Ú_valuer6   r7   rf   r   )r   r%   r0   r   r9   r   r   r   Útest_td_mul_scalar  s   


þ"þz6TestTimedeltaMultiplicationDivision.test_td_mul_scalarc                 C   sT   t dƒ}t dg¡}t t dƒ ¡ g¡}|| }t ||¡ || }t ||¡ d S )Nri   rb   r„   r…   r†   r   r   r   Útest_td_mul_numeric_ndarray˜  s   z?TestTimedeltaMultiplicationDivision.test_td_mul_numeric_ndarrayc                 C   sz   t dƒ}tjdtjd�}|jdksJ ‚t dƒ}|| }t|ƒt u s#J ‚||ks)J ‚|| }t|ƒt u s5J ‚||ks;J ‚d S )Nri   rb   rˆ   r   ú2 days)r   r-   rk   rd   ÚndimÚtype)r   r0   rg   rN   rz   r   r   r   Útest_td_mul_numeric_ndarray_0d£  s   zBTestTimedeltaMultiplicationDivision.test_td_mul_numeric_ndarray_0dc                 C   s¤   t dƒ}t t dƒ ¡ g¡}dtj› dtj› d�}tjt|d�� ||  W d   ƒ n1 s/w   Y  tjt|d�� ||  W d   ƒ d S 1 sKw   Y  d S )Nri   r„   z:ufunc '?multiply'? cannot use operands with types dtype\('zm8\[ns\]'\) and dtype\('zm8\[ns\]'\)r2   )	r   r-   rk   rT   rv   ÚENDIANr6   r7   rf   rm   r   r   r   Ú test_td_mul_td64_ndarray_invalid±  s   ÿÿÿ
ÿ
"ÿzDTestTimedeltaMultiplicationDivision.test_td_mul_td64_ndarray_invalidc                 C   sd   t ddd�}|t d¡ }|dksJ ‚|| dksJ ‚|t dd¡ dks'J ‚t |t ¡s0J ‚d S )	Nr   r&   r   r    éð   é<   r_   r£   )r   r   rJ   r-   rE   Úisnanr   rX   r   r   r   Ú test_td_div_timedeltalike_scalarÁ  s   zDTestTimedeltaMultiplicationDivision.test_td_div_timedeltalike_scalarc                 C   sÌ   t dƒ}|t dd¡ }||jd ksJ ‚|t dd¡ }||jd ks&J ‚|t dd¡ }||jks5J ‚t dƒ}|t dd¡ }|dksGJ ‚|t dd¡ }|dksUJ ‚|t dd¡ }||jksdJ ‚d S )	Nz1 days 2 hours 3 nsr    r#   l     ž"R: r   é Êš;r   i m )r   r-   rE   r§   rX   r   r   r   Útest_td_div_td64_non_nanoÍ  s   z=TestTimedeltaMultiplicationDivision.test_td_div_td64_non_nanoc                 C   s`   t ddd�}|d }t|t ƒsJ ‚|t dd�ksJ ‚|d }t|t ƒs%J ‚|t dd�ks.J ‚d S )Nr   r&   r   rb   é   r4   r<   rX   r   r   r   Útest_td_div_numeric_scalarà  s   z>TestTimedeltaMultiplicationDivision.test_td_div_numeric_scalarc                 C   s8   t ddd�}|| }|tu sJ ‚|| }|tu sJ ‚d S rV   rW   )r   r�   r0   r   r   r   r   Útest_td_div_nanì  s
   
z3TestTimedeltaMultiplicationDivision.test_td_div_nanc                 C   sX   t dƒ}t t dƒ ¡ g¡}t dg¡}|| }t ||¡ || }t ||d ¡ d S )Nri   r„   g      à?r£   r…   r†   r   r   r   Útest_td_div_td64_ndarrayý  s   z<TestTimedeltaMultiplicationDivision.test_td_div_td64_ndarrayc                 C   s8   t dƒ}t d¡}|| }t|t ƒsJ ‚||ksJ ‚d S )Nri   r    )r   r-   rk   r,   )r   r0   rg   rz   r   r   r   Útest_td_div_ndarray_0d	  s
   
z:TestTimedeltaMultiplicationDivision.test_td_div_ndarray_0dc                 C   sB   t ddd�}t d¡| }|dksJ ‚t dd¡| dksJ ‚d S )	Nr   r&   r   r    gq?r±   r_   g      Ð?)r   r   rJ   r-   rE   rX   r   r   r   Ú!test_td_rdiv_timedeltalike_scalar  s   zETestTimedeltaMultiplicationDivision.test_td_rdiv_timedeltalike_scalarc                 C   sÖ   t ddd�}t| }t |¡sJ ‚d | }t |¡sJ ‚t d¡| }t |¡s*J ‚d}tjt|d�� t d¡|  W d   ƒ n1 sEw   Y  d}tjt|d�� tj	|  W d   ƒ d S 1 sdw   Y  d S )Nr   r&   r   r   zGunsupported operand type\(s\) for /: 'numpy.datetime64' and 'Timedelta'r2   ú<unsupported operand type\(s\) for /: 'float' and 'Timedelta')
r   r   r-   r²   rE   r6   r7   rf   r.   r�   )r   r0   r   r9   r   r   r   Útest_td_rdiv_na_scalar  s   ÿ"ÿz:TestTimedeltaMultiplicationDivision.test_td_rdiv_na_scalarc                 C   s  t ddd�}tj|gtd�}|| }tjdgtjd�}t ||¡ t d g¡}|| }t tjg¡}t ||¡ tjtjgtd�}d}tj	t
|d�� ||  W d   ƒ n1 sYw   Y  tjtjgtjd�}d}tj	t
|d�� ||  W d   ƒ d S 1 s�w   Y  d S )	Nr   r&   r   rˆ   r    r¼   r2   z$cannot use operands with types dtype)r   r-   rk   Úobjectre   rv   rw   r�   r6   r7   rf   )r   r0   rx   r   rN   r9   r   r   r   Útest_td_rdiv_ndarray1  s&   
ÿ
"ÿz8TestTimedeltaMultiplicationDivision.test_td_rdiv_ndarrayc                 C   s,   t ddd�}t |j¡}|| dksJ ‚d S )Nr   r&   r   r    )r   r-   rk   rŒ   )r   r0   rx   r   r   r   Útest_td_rdiv_ndarray_0dH  s   z;TestTimedeltaMultiplicationDivision.test_td_rdiv_ndarray_0dc                 C   sZ   t ddd�}t ddd�}|| dksJ ‚| | ¡  dksJ ‚d| | ¡  dks+J ‚d S )Nr    r£   ©rH   r¢   r    éþÿÿÿrb   )r   rQ   rT   ©r   r0   Úscalarr   r   r   Ú%test_td_floordiv_timedeltalike_scalarR  s
   zITestTimedeltaMultiplicationDivision.test_td_floordiv_timedeltalike_scalarc                 C   sL   t ddd�}|tj tu sJ ‚t |t ¡sJ ‚t |t d¡ ¡s$J ‚d S )Nr    r£   rÁ   r   )r   r-   r�   r   r²   rE   ©r   r0   r   r   r   Útest_td_floordiv_null_scalar[  s   z@TestTimedeltaMultiplicationDivision.test_td_floordiv_null_scalarc                 C   s<   t ddd�}|t d¡ dksJ ‚|t d¡ dksJ ‚d S )Nr    r£   rÁ   r    rb   é\   )r   r   rJ   ÚMinuterÆ   r   r   r   Útest_td_floordiv_offsetsc  s   z<TestTimedeltaMultiplicationDivision.test_td_floordiv_offsetsc                 C   s`   t ddd�}d g d¢¡}tjt|d�� |tjddd	�  W d   ƒ d S 1 s)w   Y  d S )
Nr    r£   rÁ   rj   )z.Invalid dtype datetime64\[D\] for __floordiv__z8'dtype' is an invalid keyword argument for this functionz8this function got an unexpected keyword argument 'dtype'z5ufunc '?floor_divide'? cannot use operands with typesr2   ú
2016-01-01zdatetime64[us]rˆ   )r   rl   r6   r7   rf   r-   r.   ©r   r0   r9   r   r   r   Útest_td_floordiv_invalid_scalari  s   ÿ"ÿzCTestTimedeltaMultiplicationDivision.test_td_floordiv_invalid_scalarc                 C   s~   t ddd�}t ddd�}|d |ksJ ‚|d |ksJ ‚|t d¡ |ks'J ‚|t d¡ |ks2J ‚|t d¡ |ks=J ‚d S )Nr    r£   rÁ   r    é    rb   rc   )r   r-   re   Úint32Úuint8)r   r0   rN   r   r   r   Útest_td_floordiv_numeric_scalarx  s   zCTestTimedeltaMultiplicationDivision.test_td_floordiv_numeric_scalarc                 C   s¨   t ddd�}t ddd�}|t | ¡ ¡ dksJ ‚d| t | ¡ g¡ }tjdgtjd�}t ||¡ d| t | ¡ t d¡g¡ }t dtjg¡}t ||¡ d S )Nr    r£   rÁ   r    rˆ   r   r   )	r   r-   rk   rT   rd   rv   rw   rE   r�   )r   r0   rÄ   rz   rN   r   r   r   Ú$test_td_floordiv_timedeltalike_arrayƒ  s    zHTestTimedeltaMultiplicationDivision.test_td_floordiv_timedeltalike_arrayc                 C   s:   t ddd�}tjdgtjd�}|| }|jjdksJ ‚d S )Nr    r£   rÁ   r    rˆ   Úm)r   ÚpdÚSeriesr-   rd   r‰   Úkind)r   r0   Úserrz   r   r   r   Útest_td_floordiv_numeric_series“  s   zCTestTimedeltaMultiplicationDivision.test_td_floordiv_numeric_seriesc                 C   s`   t ddd�}t ddd�}| |¡dksJ ‚|  | ¡ ¡dks!J ‚d|  | ¡ ¡dks.J ‚d S )Nr    rÁ   r£   r    rÂ   rb   r   )r   Ú__rfloordiv__rQ   rT   rÃ   r   r   r   Ú&test_td_rfloordiv_timedeltalike_scalar�  s
   zJTestTimedeltaMultiplicationDivision.test_td_rfloordiv_timedeltalike_scalarc                 C   s>   t ddd�}t | t¡¡sJ ‚t | t d¡¡¡sJ ‚d S )Nr    rÁ   r   )r   r-   r²   rÙ   r   rE   rÆ   r   r   r   Útest_td_rfloordiv_null_scalar¬  s   zATestTimedeltaMultiplicationDivision.test_td_rfloordiv_null_scalarc                 C   s    t  d¡tdd� dksJ ‚d S )Nr    é   r¡   rb   )r   rJ   r   ©r   r   r   r   Útest_td_rfloordiv_offsets³  s    z=TestTimedeltaMultiplicationDivision.test_td_rfloordiv_offsetsc                 C   sj   t ddd�}t dd¡}| |¡tu sJ ‚d}tjt|d�� ||  W d   ƒ d S 1 s.w   Y  d S )Nr    rÁ   rË   ÚuszHunsupported operand type\(s\) for //: 'numpy.datetime64' and 'Timedelta'r2   )r   r-   r.   rÙ   ÚNotImplementedr6   r7   rf   )r   r0   Údt64r9   r   r   r   Ú test_td_rfloordiv_invalid_scalar·  s   ÿ
"ÿzDTestTimedeltaMultiplicationDivision.test_td_rfloordiv_invalid_scalarc                 C   sJ  t ddd�}| tj¡tu sJ ‚| d¡tu sJ ‚| d¡tu s"J ‚| t d¡¡tu s.J ‚| t d¡¡tu s:J ‚| t d¡¡tu sFJ ‚d}tj	t
|d�� t d¡|  W d   ƒ n1 saw   Y  tj	t
|d�� t d¡|  W d   ƒ n1 sw   Y  tj	t
|d�� t d¡|  W d   ƒ d S 1 sžw   Y  d S )	Nr    rÁ   g      @rb   rc   r>   z9unsupported operand type\(s\) for //: '.*' and 'Timedeltar2   )r   rÙ   r-   r�   rà   re   rÐ   rÏ   r6   r7   rf   rÌ   r   r   r   Ú test_td_rfloordiv_numeric_scalarÅ  s"   ÿÿ"þzDTestTimedeltaMultiplicationDivision.test_td_rfloordiv_numeric_scalarc                 C   s²   t ddd�}t ddd�}| t | ¡ ¡¡dksJ ‚| t d|  ¡ g¡¡}tjdgtjd�}t ||¡ t d|  ¡ t d¡g¡}| |¡}t dtj	g¡}t ||¡ d S )Nr    rÁ   r£   r    rˆ   r   r   )
r   rÙ   r-   rk   rT   rd   rv   rw   rE   r�   )r   r0   rÄ   rz   rN   rx   r   r   r   Ú%test_td_rfloordiv_timedeltalike_arrayÙ  s   
zITestTimedeltaMultiplicationDivision.test_td_rfloordiv_timedeltalike_arrayc                 C   sZ   t  g d¢¡d }d}tjt|d�� |tddd�  W d   ƒ d S 1 s&w   Y  d S )N)i€rPi isPi€ºtPi vPr´   úInvalid dtyper2   r    r   r   )r-   rk   r6   r7   rf   r   )r   Úintsr9   r   r   r   Útest_td_rfloordiv_intarrayê  s
   "ÿz>TestTimedeltaMultiplicationDivision.test_td_rfloordiv_intarrayc                 C   st   t ddd�}tjdgtjd�}| |¡}|tu sJ ‚d}tjt	|d�� ||  W d   ƒ d S 1 s3w   Y  d S )Nr    rÁ   r    rˆ   rå   r2   )
r   rÔ   rÕ   r-   rd   rÙ   rà   r6   r7   rf   )r   r0   r×   rz   r9   r   r   r   Ú test_td_rfloordiv_numeric_seriesò  s   

"þzDTestTimedeltaMultiplicationDivision.test_td_rfloordiv_numeric_seriesc                 C   s|   t dd�}|t dd� }t|t ƒsJ ‚|t dd�ksJ ‚|tdd� }t|t ƒs*J ‚|t dƒks2J ‚|t }|tu s<J ‚d S )Né%   ©rH   rC   r    r±   r¡   r   )r   r,   r   r   rX   r   r   r   Útest_mod_timedeltalike  s   
z:TestTimedeltaMultiplicationDivision.test_mod_timedeltalikec                 C   s*   t dd�}|t dd¡ }|tu sJ ‚d S )Nré   rê   r   r   r[   rX   r   r   r   Útest_mod_timedelta64_nat  s   
z<TestTimedeltaMultiplicationDivision.test_mod_timedelta64_natc                 C   s>   t dd�}|t dd¡ }t|t ƒsJ ‚|t dd�ksJ ‚d S )Nré   rê   rb   r_   r    rD   rX   r   r   r   Útest_mod_timedelta64  s   
z8TestTimedeltaMultiplicationDivision.test_mod_timedelta64c                 C   s<   t dd�}|t d¡ }t|t ƒsJ ‚|t dd�ksJ ‚d S )Nré   rê   r¶   rb   rI   rX   r   r   r   Útest_mod_offset   ó   
z3TestTimedeltaMultiplicationDivision.test_mod_offsetc                 C   sŒ   t dd�}|d }t|t ƒsJ ‚|t dƒksJ ‚|d }t|t ƒs#J ‚|t ddd�ks-J ‚|tdƒ }t|t ƒs:J ‚|t ddd�ksDJ ‚d S )	Nré   rê   rb   r   g   ¢”mBr    r;   r¥   )r   r,   ÚintrX   r   r   r   Útest_mod_numeric(  s   
z4TestTimedeltaMultiplicationDivision.test_mod_numericc                 C   s„   t dd�}d}tjt|d�� |tdƒ  W d   ƒ n1 sw   Y  tjt|d�� |g   W d   ƒ d S 1 s;w   Y  d S )Nré   rê   ra   r2   r)   )r   r6   r7   rf   r   rÌ   r   r   r   Útest_mod_invalid9  s   
ÿ
"ÿz4TestTimedeltaMultiplicationDivision.test_mod_invalidc                 C   s<   t dd�}tdd�| }t|t ƒsJ ‚|t dd�ksJ ‚d S )Nr    r¡   r£   r    r@   rX   r   r   r   Útest_rmod_pytimedeltaC  rï   z9TestTimedeltaMultiplicationDivision.test_rmod_pytimedeltac                 C   s>   t dd�}t dd¡| }t|t ƒsJ ‚|t dd�ksJ ‚d S )Nr    r¡   r¶   rÓ   rb   rD   rX   r   r   r   Útest_rmod_timedelta64K  s   
z9TestTimedeltaMultiplicationDivision.test_rmod_timedelta64c                 C   sþ   t dd�}d}tjt|d�� tdƒ|  W d   ƒ n1 sw   Y  tjt|d�� d|  W d   ƒ n1 s:w   Y  tjt|d�� d|  W d   ƒ n1 sUw   Y  d}tjt|d�� t d	d
g¡|  W d   ƒ d S 1 sxw   Y  d S )Nr    r¡   zunsupported operandr2   r)   é   ç      0@úInvalid dtype inté   é   )r   r6   r7   rf   r   r-   rk   rÌ   r   r   r   Útest_rmod_invalidR  s   
ÿ
ÿ
ÿ"ÿz5TestTimedeltaMultiplicationDivision.test_rmod_invalidc                 C   sŽ   t ddd�}t|dƒ}|d t ddd�ksJ ‚t|d t ƒs J ‚|d t dd	�ks+J ‚|s/J ‚t|tjƒ}|d tu s=J ‚|d tu sEJ ‚d S )
Nrb   rC   rG   g  $Ç±åBr   r    r   r   rê   )r   Údivmodr,   r-   r�   r   rX   r   r   r   Útest_divmod_numericg  s   
z7TestTimedeltaMultiplicationDivision.test_divmod_numericc                 C   sÊ   t ddd�}t|tdd�ƒ}|d dksJ ‚t|d t ƒsJ ‚|d t dd�ks*J ‚t|dƒ}|d t dd�ks:J ‚t|d t ƒsCJ ‚|d t dƒksMJ ‚t|tƒ}t |d ¡s[J ‚|d tu scJ ‚d S )	Nrb   rC   rG   r    r4   r   rê   é6   )r   rû   r   r,   r   r-   r²   rX   r   r   r   Útest_divmodu  s   

z/TestTimedeltaMultiplicationDivision.test_divmodc                 C   sX   t ddd�}t|t d¡ƒ}|d dksJ ‚t|d t ƒsJ ‚|d t dd	�ks*J ‚d S )
Nrb   rC   rG   rB   r   éòÿÿÿr    rÂ   rê   )r   rû   r   rJ   r,   rX   r   r   r   Útest_divmod_offset‡  s
   z6TestTimedeltaMultiplicationDivision.test_divmod_offsetc                 C   sR   t ddd�}d}tjt|d�� t|tdƒƒ W d   ƒ d S 1 s"w   Y  d S )Nrb   rC   rG   zAunsupported operand type\(s\) for //: 'Timedelta' and 'Timestamp'r2   r)   )r   r6   r7   rf   rû   r   rÌ   r   r   r   Útest_divmod_invalid�  s
   "ÿz7TestTimedeltaMultiplicationDivision.test_divmod_invalidc                 C   sT   t tddd�tdd�ƒ}|d dksJ ‚t|d tƒsJ ‚|d tdd�ks(J ‚d S )Nrb   rC   rG   r    r4   r   rê   )rû   r   r   r,   rp   r   r   r   Útest_rdivmod_pytimedelta˜  s   z<TestTimedeltaMultiplicationDivision.test_rdivmod_pytimedeltac                 C   sR   t t d¡tdd�ƒ}|d dksJ ‚t|d tƒsJ ‚|d tdd�ks'J ‚d S )Nrý   rB   rê   r   rÿ   r    rÂ   )rû   r   rJ   r   r,   rp   r   r   r   Útest_rdivmod_offsetŸ  s   z7TestTimedeltaMultiplicationDivision.test_rdivmod_offsetc                 C   s  t dd�}d}tjt|d�� ttdƒ|ƒ W d   ƒ n1 s w   Y  tjt|d�� td|ƒ W d   ƒ n1 s<w   Y  tjt|d�� td|ƒ W d   ƒ n1 sXw   Y  d}tjt|d�� tt d	d
g¡|ƒ W d   ƒ d S 1 s|w   Y  d S )Nr    r¡   ra   r2   r)   rõ   rö   r÷   rø   rù   )r   r6   r7   rf   rû   r   r-   rk   rÌ   r   r   r   Útest_rdivmod_invalid¥  s   
ÿÿÿ"ÿz8TestTimedeltaMultiplicationDivision.test_rdivmod_invalidrx   rr   rs   r|   rt   c                 C   sF   d}t jt|d�� ||tdƒƒ W d   ƒ d S 1 sw   Y  d S )Nz7unsupported operand type|cannot use operands with typesr2   rt   )r6   r7   rf   r   )r   r%   rx   r9   r   r   r   Ú(test_td_op_timedelta_timedeltalike_array¹  s   "ÿzLTestTimedeltaMultiplicationDivision.test_td_op_timedelta_timedeltalike_arrayN)GrŽ   r�   r�   r‘   r6   r’   r“   r   r-   rE   r*   Úmulr	   Úrmulrœ   r�   re   ÚfloatrŸ   r¨   r©   r­   r¯   r³   rµ   r·   r¸   r¹   rº   r»   r½   r¿   rÀ   rÅ   rÇ   rÊ   rÍ   rÑ   rÒ   rØ   rÚ   rÛ   rÞ   râ   rã   rä   rç   rè   rë   rì   rí   rî   rñ   rò   ró   rô   rú   rü   rþ   r   r  r  r  r  ÚtruedivÚrdivÚrsubrk   r   r   r  r   r   r   r   r—   W  s’    ÿ
ýþ
	
	

	ÿþþr—   c                   @   sf   e Zd Zejjdd„ ƒZd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S )ÚTestTimedeltaComparisonc                 C   s   dD ]d}t j |¡j}t j |¡j}|tjk sJ ‚|tjks J ‚|tjkr'J ‚|tjkr.J ‚|tjks5J ‚|tjkr<J ‚|tjksCJ ‚|tjksJJ ‚|tjk rQJ ‚|tjkrXJ ‚|tjks_J ‚|tjkrfJ ‚qdD ]d}t j |¡j}t j |¡j}|tjks€J ‚|tjks‡J ‚|tjk rŽJ ‚|tjkr•J ‚|tjksœJ ‚|tjkr£J ‚|tjk sªJ ‚|tjks±J ‚|tjkr¸J ‚|tjkr¿J ‚|tjksÆJ ‚|tjkrÍJ ‚qid S )N)r   rß   )Úmsr   )r   Úmaxr5   Úminr   )r   r   ÚtdmaxÚtdminr   r   r   Útest_compare_pytimedelta_boundsÊ  s>   ðz7TestTimedeltaComparison.test_compare_pytimedelta_boundsc                 C   sø   t ddd�}t |jd¡t |jd¡ }t|ƒ}|j|jks J ‚|j|jks(J ‚||ks.J ‚||kr4J ‚||k r:J ‚||kr@J ‚||ksFJ ‚||ksLJ ‚|tdd� d¡ }||ks\J ‚||krbJ ‚||k shJ ‚||ksnJ ‚||krtJ ‚||krzJ ‚d S )NiÿÉš;iQ r!   r#   r   r    r   )r   r-   rE   r"   r   r   r5   )r   ÚpytdÚtd64r0   Útd2r   r   r   Ú test_compare_pytimedelta_bounds2ó  s$   z8TestTimedeltaComparison.test_compare_pytimedelta_bounds2c                 C   sÌ   |}|dƒ}|j }t|tƒsJ ‚||ksJ ‚||krJ ‚||ks"J ‚||ks(J ‚||k r.J ‚||kr4J ‚|d| kr<J ‚|d| ksDJ ‚|d| ksLJ ‚|d| k sTJ ‚|d| kr\J ‚|d| krdJ ‚d S )Nr£   rb   )Ú_as_pd_timedeltar,   r   )r   Útick_classesÚclsÚoffr0   r   r   r   Útest_compare_tick  s    z)TestTimedeltaComparison.test_compare_tickc                 C   s¬   t dƒ}t dƒ}tj||gtd�}||k}tjddgtd�}||k ¡ s&J ‚tj||g||ggtd�}||k}tjddgddggtd�}|j|jksLJ ‚||k ¡ sTJ ‚d S )Nrª   z3 hoursrˆ   FT)r   r-   rk   r¾   ÚboolÚallÚshape)r   r0   rg   rx   rz   rN   r   r   r   Útest_comparison_object_array   s   z4TestTimedeltaComparison.test_comparison_object_arrayc                 C   sD   t dƒt dƒg}t |¡}|d |k}t ddg¡}t ||¡ d S )Nz0 days 01:00:00r   FrŠ   )r   Úperiodsrx   r   rN   r   r   r   Útest_compare_timedelta_ndarray1  s
   
z6TestTimedeltaComparison.test_compare_timedelta_ndarrayc                 C   s†   t  d¡ d¡}t|d ƒ}t jg d¢td�}||k}t ||¡ ||k}t ||¡ ||k}t || ¡ ||k}t || ¡ d S )Nr¶   ztimedelta64[ns]r    )FTFFFrˆ   )r-   ÚarangeÚastyper   rk   r  rv   rw   )r   rx   r0   rN   r   r   r   r   Útest_compare_td64_ndarray9  s   z1TestTimedeltaComparison.test_compare_td64_ndarrayc                 C   sˆ   G dd„ dƒ}t dƒ}|dksJ ‚|dksJ ‚||ƒ ksJ ‚||dd�ks'J ‚||dd�k s0J ‚||dd�k r9J ‚||dd�ksBJ ‚d	S )
zˆ
        Make sure non supported operations on Timedelta returns NonImplemented
        and yields to other operand (GH#20829).
        c                   @   s0   e Zd Zdddd„Zdd„ Zdd„ Zd	d
„ ZdS )zGTestTimedeltaComparison.test_compare_custom_object.<locals>.CustomClassNÚreturnc                 S   s
   || _ d S ©N©Ú
cmp_result)r   r(  r   r   r   Ú__init__S  s   
zPTestTimedeltaComparison.test_compare_custom_object.<locals>.CustomClass.__init__c                 S   s   | j d u rtS | j S r&  )r(  rà   rÝ   r   r   r   Úgeneric_resultV  s   
zVTestTimedeltaComparison.test_compare_custom_object.<locals>.CustomClass.generic_resultc                 S   ó   |   ¡ S r&  ©r*  ©r   rg   r   r   r   Ú__eq__\  ó   zNTestTimedeltaComparison.test_compare_custom_object.<locals>.CustomClass.__eq__c                 S   r+  r&  r,  r-  r   r   r   Ú__gt___  r/  zNTestTimedeltaComparison.test_compare_custom_object.<locals>.CustomClass.__gt__r&  )r%  N)rŽ   r�   r�   r)  r*  r.  r0  r   r   r   r   ÚCustomClassR  s
    r1  Ú1sÚstringr    Fr'  TN)r   )r   r1  Útr   r   r   Útest_compare_custom_objectL  s   z2TestTimedeltaComparison.test_compare_custom_objectÚvalr3  r    c                 C   sê   t dƒ}d}tjt|d�� ||k W d   ƒ n1 sw   Y  tjt|d�� ||k W d   ƒ n1 s7w   Y  tjt|d�� ||k W d   ƒ n1 sRw   Y  tjt|d�� ||k  W d   ƒ d S 1 snw   Y  d S )Nr2  z>not supported between instances of 'Timedelta' and '(int|str)'r2   )r   r6   r7   rf   )r   r6  r4  r9   r   r   r   Útest_compare_unknown_typen  s   
ÿ
ÿ
ÿ
"ÿz1TestTimedeltaComparison.test_compare_unknown_typeN)rŽ   r�   r�   r6   r’   Ú
skip_ubsanr  r  r  r  r!  r$  r5  r“   r7  r   r   r   r   r  É  s    
("r  c                  C   sz   G dd„ dƒ} | ƒ }t dƒ}| |¡tu sJ ‚| |¡tu s J ‚| |¡tu s)J ‚| |¡tu s2J ‚| |¡tu s;J ‚d S )Nc                   @   s   e Zd ZdS )z&test_ops_notimplemented.<locals>.OtherN)rŽ   r�   r�   r   r   r   r   ÚOther~  s    r9  ri   )r   Ú__add__rà   Ú__sub__Ú__truediv__Ú__mul__Ú__floordiv__)r9  rg   r0   r   r   r   Útest_ops_notimplemented}  s   r?  c               	   C   s¼   t dƒ} | dfd| ffD ]O\}}d g d¢¡}tjt|d�� ||  W d   ƒ n1 s-w   Y  d}tjt|d�� ||k W d   ƒ n1 sJw   Y  ||krUJ ‚||ks[J ‚qd S )Nri   Úarj   )ra   z3can only concatenate str \(not "Timedelta"\) to strzmust be str, not Timedeltar2   z"not supported between instances ofrš   )r0   ÚleftÚrightr9   r   r   r   Útest_ops_error_str‹  s   ÿ
ÿ
ÿðrC  )r‘   r   r   r*   Únumpyr-   r6   Úpandas.errorsr   ÚpandasrÔ   r   r   r   r   Úpandas._testingÚ_testingrv   Úpandas.corer	   r
   r—   r  r?  rC  r   r   r   r   Ú<module>   s,      ?    v 5