a
    é´«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   sD   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   úl/var/www/html/laksyashrimp/venv/lib/python3.9/site-packages/pandas/tests/scalar/timedelta/test_arithmetic.pyÚtest_td_add_sub_ten_seconds"   s    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   sD   t dƒ}t dƒ}t dƒ}|| }||ks,J ‚|| }||ks@J ‚d S )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   s    zDTestTimedeltaAdditionSubtraction.test_td_add_sub_one_day_ten_secondsÚopc                 C   s¾   t ddd�}||tdddƒƒ}|tju r6t|tƒs6J ‚|tdddƒksJJ ‚||tdƒƒ}t|tƒsfJ ‚|tdƒksvJ ‚||t d	¡ƒ}t|tƒs”J ‚|td
ƒks¤J ‚||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 sF0    Y  d}tjt|d�� |tdd	�  W d   ƒ n1 s†0    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   r2   é   ©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   é	   r2   é   ©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!   é   r2   ©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   rA   ©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   r.   Úexpectedr   r   r   r   Útest_td_sub_td�   s
    z/TestTimedeltaAdditionSubtraction.test_td_sub_tdc                 C   sh   t ddd�}t ddd�}|| ¡  }t|t ƒs2J ‚||ks>J ‚| ¡ | }t|t ƒsXJ ‚||ksdJ ‚d S rJ   )r   Úto_pytimedeltar*   rK   r   r   r   Útest_td_sub_pytimedelta”   s    z8TestTimedeltaAdditionSubtraction.test_td_sub_pytimedeltac                 C   sh   t ddd�}t ddd�}|| ¡  }t|t ƒs2J ‚||ks>J ‚| ¡ | }t|t ƒsXJ ‚||ksdJ ‚d S rJ   )r   Úto_timedelta64r*   rK   r   r   r   Útest_td_sub_timedelta64    s    z8TestTimedeltaAdditionSubtraction.test_td_sub_timedelta64c                 C   s$   t ddd�}|t }|tu s J ‚d S ©Nr   r$   r   ©r   r   ©r   r.   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+   rC   r   )r   r.   Ú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   éï   ÚhrG   rT   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 ]Ü}tjt|d�� ||  W d   ƒ n1 sX0    Y  tjt|d�� ||  W d   ƒ n1 sŽ0    Y  tjt|d�� ||  W d   ƒ n1 sÄ0    Y  tjt|d�� ||  W d   ƒ q(1 sú0    Y  q(d S )Nr   r$   r   úunsupported operand typeé   ç       @r0   )r   r+   Úint64Úfloat64r4   r5   Ú	TypeError)r   r.   r7   Ú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 sL0    Y  d ddg¡}tjt|d�� ||  W d   ƒ n1 s�0    Y  d}tjt|d�� ||  W d   ƒ n1 sÊ0    Y  d	}tjt|d�� ||  W d   ƒ n1 �s0    Y  d S )
Nú1 dayr   z;unsupported operand type\(s\) for \+: 'Timedelta' and 'int'r0   ú|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+   Úarrayr4   r5   rb   Újoin©r   r.   rc   r7   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 rV   )r   r   r+   r,   rT   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s8J ‚d S )Nr   r   r$   r   iÿÿÿr[   )r   rH   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+   rg   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:00rp   r^   r[   Z0D)r   r+   rg   r   rC   rr   rs   )r   Únowrt   ru   rv   r   r   r   Ú7test_td_sub_mixed_most_timedeltalike_object_dtype_arrayÿ   s    
ýÿzXTestTimedeltaAdditionSubtraction.test_td_sub_mixed_most_timedeltalike_object_dtype_arrayc                 C   sf   t dƒ}t |tdƒt dd¡g¡}d}tjt|d�� tdƒ|  W d   ƒ n1 sX0    Y  d S )Nrx   rp   r^   r[   zAunsupported operand type\(s\) for \-: 'Timedelta' and 'Timestamp'r0   )r   r+   rg   r   rC   r4   r5   rb   )r   ry   rt   r7   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 )Nrn   ro   z20130102 9:01z20121231 9:02rp   rq   )r   r#   rt   ru   rv   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 )Nrx   rp   Z2D)r   r+   rg   r   rr   rs   )r   r#   ry   rt   ru   rv   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 )Nre   ú2 Daysr   ©r   r+   rg   rP   rr   rs   ©r   r.   rc   rL   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 )Nre   z
2000-01-01zM8[ns]©Údtypez
2000-01-02z
1999-12-31©r   r+   rg   rr   rs   )r   r.   rc   rL   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 ƒsPJ ‚|d| ks`J ‚|| }t|t ƒsvJ ‚|d| ks†J ‚|| }t|t ƒsœJ ‚|d| ks¬J ‚d S )Nre   r^   r   )r   r+   rg   Úasm8r*   )r   r.   rc   r   r   r   r   Útest_td_add_sub_ndarray_0dB  s    z;TestTimedeltaAdditionSubtraction.test_td_add_sub_ndarray_0dN),Ú__name__Ú
__module__Ú__qualname__Ú__doc__r4   ÚmarkÚparametrizer   r   r+   rC   r   ZSecondr   ZDayr"   r(   r)   r	   Zraddr/   r8   r;   r?   rD   rI   rM   rO   rQ   rU   rY   r\   rd   rj   rk   rm   rw   rz   r{   r|   r}   r�   r…   r‡   r   r   r   r   r
      sh   


ûþ

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










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__
    rX   r   r   r#   c                 C   sr   t ddd�}d g d¢¡}d d|› d|› d�d	g¡}tjt|d
�� |||ƒ W d   ƒ n1 sd0    Y  d S )Nr   r$   r   rf   )znumpy.timedelta64ZNaTTyper   z'unsupported operand type\(s\) for \*: 'z' and 'ú'z1ufunc '?multiply'? cannot use operands with typesr0   ©r   rh   r4   r5   rb   )r   r#   rX   r.   Ztypsr7   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 rR   rS   )r   r#   r’   r.   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sDJ ‚||tjƒtu sXJ ‚|d	|ƒjd	|j ksrJ ‚|d
|ƒjd
|j ksŒJ ‚d}tjt|d��" ||tdddƒƒ W d   ƒ n1 sÆ0    Y  tjt|d�� |||ƒ W d   ƒ n1 sþ0    Y  d S )Né   ©Úminutesr^   rA   g      ø?é   é   ©r—   r   éÿÿÿÿg      ð¿r]   r0   r%   r   )	r   r+   r’   r   Ú_valuer4   r5   rb   r   )r   r#   r.   r   r7   r   r   r   Útest_td_mul_scalar  s    


0z6TestTimedeltaMultiplicationDivision.test_td_mul_scalarc                 C   sT   t dƒ}t dg¡}t t dƒ ¡ g¡}|| }t ||¡ || }t ||¡ d S )Nre   r^   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 sFJ ‚||ksRJ ‚|| }t|ƒt u sjJ ‚||ksvJ ‚d S )Nre   r^   r‚   r   ú2 days)r   r+   rg   r`   ÚndimÚtype)r   r.   rc   rL   rv   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^0    Y  tjt|d�� ||  W d   ƒ n1 s”0    Y  d S )Nre   r~   z:ufunc '?multiply'? cannot use operands with types dtype\('zm8\[ns\]'\) and dtype\('zm8\[ns\]'\)r0   )	r   r+   rg   rP   rr   ZENDIANr4   r5   rb   ri   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s6J ‚|t dd¡ dksNJ ‚t |t ¡s`J ‚d S )	Nr   r$   r   r   éð   é<   r[   r˜   )r   r   rH   r+   rC   Úisnanr   rT   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sLJ ‚|t dd¡ }||jksjJ ‚t dƒ}|t dd¡ }|dksŽJ ‚|t dd¡ }|dksªJ ‚|t dd¡ }||jksÈJ ‚d S )	Nz1 days 2 hours 3 nsr   r!   l     ž"R: r   é Êš;r   i m )r   r+   rC   rœ   rT   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s4J ‚|d }t|t ƒsJJ ‚|t dd�ks\J ‚d S )Nr   r$   r   r^   é   r2   r:   rT   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 s4J ‚d S rR   rS   )r   r’   r.   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 )Nre   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s4J ‚d S )Nre   r   )r   r+   rg   r*   )r   r.   rc   rv   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   rH   r+   rC   rT   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 |¡s8J ‚t d¡| }t |¡sTJ ‚d}tjt|d�� t d¡|  W d   ƒ n1 sŠ0    Y  d}tjt|d�� tj	|  W d   ƒ n1 sÆ0    Y  d S )Nr   r$   r   r   zGunsupported operand type\(s\) for /: 'numpy.datetime64' and 'Timedelta'r0   ú<unsupported operand type\(s\) for /: 'float' and 'Timedelta')
r   r   r+   r¦   rC   r4   r5   rb   r,   r’   )r   r.   r   r7   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 s²0    Y  tjtjgtjd�}d}tj	t
|d�� ||  W d   ƒ n1 �s0    Y  d S )	Nr   r$   r   r‚   r   r°   r0   z$cannot use operands with types dtype)r   r+   rg   Úobjectra   rr   rs   r’   r4   r5   rb   )r   r.   rt   r   rL   r7   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+   rg   r†   )r   r.   rt   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sVJ ‚d S )Nr•   r˜   ©rF   r—   r   éþÿÿÿr^   )r   rN   rP   ©r   r.   Ú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 ¡s0J ‚t |t d¡ ¡sHJ ‚d S )Nr•   r˜   rµ   r   )r   r+   r’   r   r¦   rC   ©r   r.   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s8J ‚d S )Nr•   r˜   rµ   r   r^   é\   )r   r   rH   Z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   ƒ n1 sP0    Y  d S )
Nr•   r˜   rµ   rf   )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 typesr0   ú
2016-01-01zdatetime64[us]r‚   )r   rh   r4   r5   rb   r+   r,   ©r   r.   r7   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s8J ‚|t d¡ |ksNJ ‚|t d¡ |ksdJ ‚|t d¡ |kszJ ‚d S )Nr•   r˜   rµ   r   é    r^   r_   )r   r+   ra   Úint32Úuint8)r   r.   rL   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s2J ‚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+   rg   rP   r`   rr   rs   rC   r’   )r   r.   r¸   rv   rL   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s6J ‚d S )Nr•   r˜   rµ   r   r‚   Úm)r   ÚpdÚSeriesr+   r`   rƒ   Úkind)r   r.   Úserrv   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sBJ ‚d|  | ¡ ¡dks\J ‚d S )Nr•   rµ   r˜   r   r¶   r^   r   )r   Ú__rfloordiv__rN   rP   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   rC   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–   r^   )r   rH   r   ©r   r   r   r   Útest_td_rfloordiv_offsets³  s    z=TestTimedeltaMultiplicationDivision.test_td_rfloordiv_offsetsc                 C   sh   t ddd�}t dd¡}| |¡tu s*J ‚d}tjt|d�� ||  W d   ƒ n1 sZ0    Y  d S )Nr•   rµ   r¾   ÚuszHunsupported operand type\(s\) for //: 'numpy.datetime64' and 'Timedelta'r0   )r   r+   r,   rÌ   ÚNotImplementedr4   r5   rb   )r   r.   Zdt64r7   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 s2J ‚| d¡tu sDJ ‚| t d¡¡tu s\J ‚| t d¡¡tu stJ ‚| t d¡¡tu sŒJ ‚d}tj	t
|d�� t d¡|  W d   ƒ n1 sÂ0    Y  tj	t
|d�� t d¡|  W d   ƒ n1 sþ0    Y  tj	t
|d�� t d¡|  W d   ƒ n1 �s<0    Y  d S )	Nr•   rµ   g      @r^   r_   r<   z9unsupported operand type\(s\) for //: '.*' and 'Timedeltar0   )r   rÌ   r+   r’   rÓ   ra   rÃ   rÂ   r4   r5   rb   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s4J ‚| 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+   rg   rP   r`   rr   rs   rC   r’   )r   r.   r¸   rv   rL   rt   r   r   r   Ú%test_td_rfloordiv_timedeltalike_arrayÙ  s    
zITestTimedeltaMultiplicationDivision.test_td_rfloordiv_timedeltalike_arrayc                 C   sX   t  g d¢¡d }d}tjt|d��  |tddd�  W d   ƒ n1 sJ0    Y  d S )N)i€rPi isPi€ºtPi vPr¨   úInvalid dtyper0   r   r   r   )r+   rg   r4   r5   rb   r   )r   Zintsr7   r   r   r   Útest_td_rfloordiv_intarrayê  s    z>TestTimedeltaMultiplicationDivision.test_td_rfloordiv_intarrayc                 C   sr   t ddd�}tjdgtjd�}| |¡}|tu s4J ‚d}tjt	|d�� ||  W d   ƒ n1 sd0    Y  d S )Nr•   rµ   r   r‚   r×   r0   )
r   rÇ   rÈ   r+   r`   rÌ   rÓ   r4   r5   rb   )r   r.   rÊ   rv   r7   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s8J ‚|tdd� }t|t ƒsTJ ‚|t dƒksdJ ‚|t }|tu sxJ ‚d S )Né%   ©rF   rA   r   r¥   r–   r   )r   r*   r   r   rT   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   rW   rT   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Û   r^   r[   r   rB   rT   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s8J ‚d S )NrÚ   rÛ   rª   r^   rG   rT   r   r   r   Útest_mod_offset   s    
z3TestTimedeltaMultiplicationDivision.test_mod_offsetc                 C   sŒ   t dd�}|d }t|t ƒs J ‚|t dƒks0J ‚|d }t|t ƒsFJ ‚|t ddd�ksZJ ‚|tdƒ }t|t ƒstJ ‚|t ddd�ksˆJ ‚d S )	NrÚ   rÛ   r^   r   g   ¢”mBr•   r9   rš   )r   r*   ÚintrT   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>0    Y  tjt|d�� |g   W d   ƒ n1 st0    Y  d S )NrÚ   rÛ   r]   r0   r'   )r   r4   r5   rb   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s8J ‚d S )Nr•   r–   r˜   r   r>   rT   r   r   r   Útest_rmod_pytimedeltaC  s    
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Æ   r^   rB   rT   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>0    Y  tjt|d�� d|  W d   ƒ n1 st0    Y  tjt|d�� d|  W d   ƒ n1 sª0    Y  d}tjt|d��" t d	d
g¡|  W d   ƒ n1 sî0    Y  d S )Nr•   r–   zunsupported operandr0   r'   é   ç      0@úInvalid dtype inté   é   )r   r4   r5   rb   r   r+   rg   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sVJ ‚|s^J ‚t|tjƒ}|d tu szJ ‚|d tu sŠJ ‚d S )
Nr^   rA   rE   g  $Ç±åBr   r   r   r   rÛ   )r   Údivmodr*   r+   r’   r   rT   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sTJ ‚t|dƒ}|d t dd�kstJ ‚t|d t ƒs†J ‚|d t dƒksšJ ‚t|tƒ}t |d ¡s¶J ‚|d tu sÆJ ‚d S )	Nr^   rA   rE   r   r2   r   rÛ   é6   )r   rë   r   r*   r   r+   r¦   rT   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sTJ ‚d S )
Nr^   rA   rE   r@   r   éòÿÿÿr   r¶   rÛ   )r   rë   r   rH   r*   rT   r   r   r   Útest_divmod_offset‡  s
    z6TestTimedeltaMultiplicationDivision.test_divmod_offsetc                 C   sP   t ddd�}d}tjt|d�� t|tdƒƒ W d   ƒ n1 sB0    Y  d S )Nr^   rA   rE   zAunsupported operand type\(s\) for //: 'Timedelta' and 'Timestamp'r0   r'   )r   r4   r5   rb   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sPJ ‚d S )Nr^   rA   rE   r   r2   r   rÛ   )rë   r   r   r*   rl   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ƒs8J ‚|d tdd�ksNJ ‚d S )Nrí   r@   rÛ   r   rï   r   r¶   )rë   r   rH   r   r*   rl   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@0    Y  tjt|d�� td|ƒ W d   ƒ n1 sx0    Y  tjt|d�� td|ƒ W d   ƒ n1 s°0    Y  d}tjt|d��$ tt d	d
g¡|ƒ W d   ƒ n1 sö0    Y  d S )Nr•   r–   r]   r0   r'   rå   ræ   rç   rè   ré   )r   r4   r5   rb   rë   r   r+   rg   r¿   r   r   r   Útest_rdivmod_invalid¥  s    
,((z8TestTimedeltaMultiplicationDivision.test_rdivmod_invalidrt   rn   ro   rx   rp   c                 C   sD   d}t jt|d�� ||tdƒƒ W d   ƒ n1 s60    Y  d S )Nz7unsupported operand type|cannot use operands with typesr0   rp   )r4   r5   rb   r   )r   r#   rt   r7   r   r   r   Ú(test_td_op_timedelta_timedeltalike_array¹  s    zLTestTimedeltaMultiplicationDivision.test_td_op_timedelta_timedeltalike_arrayN)Grˆ   r‰   rŠ   r‹   r4   rŒ   r�   r   r+   rC   r(   Úmulr	   Zrmulr‘   r’   ra   Ú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ô   ÚtruedivZrdivZrsubrg   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 ]È}t j |¡j}t j |¡j}|tjk s2J ‚|tjks@J ‚|tjkrNJ ‚|tjkr\J ‚|tjksjJ ‚|tjkrxJ ‚|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 ‚q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�r2J ‚|tjk�sBJ ‚|tjk�rRJ ‚|tjk �sbJ ‚|tjk�srJ ‚|tjk�r‚J ‚|tjk�r’J ‚|tjk�s¢J ‚|tjkrÒJ ‚qÒd S )N)r   rÒ   )Úmsr   )r   Úmaxr3   Úminr   )r   r   ZtdmaxZ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sPJ ‚||ks\J ‚||krhJ ‚||k rtJ ‚||kr€J ‚||ksŒJ ‚||ks˜J ‚|tdd� d¡ }||ks¸J ‚||krÄJ ‚||k sÐJ ‚||ksÜJ ‚||krèJ ‚||krôJ ‚d S )NiÿÉš;iQ r   r!   r   r   r   )r   r+   rC   r    r   r   r3   )r   ZpytdZtd64r.   Z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r8J ‚||ksDJ ‚||ksPJ ‚||k r\J ‚||krhJ ‚|d| krxJ ‚|d| ksˆJ ‚|d| ks˜J ‚|d| k s¨J ‚|d| kr¸J ‚|d| krÈJ ‚d S )Nr˜   r^   )Z_as_pd_timedeltar*   r   )r   Ztick_classesÚclsÚoffr.   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 ¡ sLJ ‚tj||g||ggtd�}||k}tjddgddggtd�}|j|jks˜J ‚||k ¡ s¨J ‚d S )NrŸ   z3 hoursr‚   FT)r   r+   rg   r²   ÚboolÚallÚshape)r   r.   rc   rt   rv   rL   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   Zperiodsrt   r   rL   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+   ZarangeZastyper   rg   r  rr   rs   )r   rt   r.   rL   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sNJ ‚||dd�k s`J ‚||dd�k rrJ ‚||dd�ks„J ‚d	S )
zˆ
        Make sure non supported operations on Timedelta returns NonImplemented
        and yields to other operand (GH#20829).
        c                   @   s4   e Zd Zd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 d S r	  )r  rÓ   rÐ   r   r   r   Úgeneric_resultV  s    
zVTestTimedeltaComparison.test_compare_custom_object.<locals>.CustomClass.generic_resultc                 S   s   |   ¡ S r	  ©r  ©r   rc   r   r   r   Ú__eq__\  s    zNTestTimedeltaComparison.test_compare_custom_object.<locals>.CustomClass.__eq__c                 S   s   |   ¡ S r	  r  r  r   r   r   Ú__gt___  s    zNTestTimedeltaComparison.test_compare_custom_object.<locals>.CustomClass.__gt__)N)rˆ   r‰   rŠ   r  r  r  r  r   r   r   r   ÚCustomClassR  s   r  Ú1sÚstringr   Fr
  TN)r   )r   r  Útr   r   r   Útest_compare_custom_objectL  s    z2TestTimedeltaComparison.test_compare_custom_objectÚvalr  r   c                 C   sè   t dƒ}d}tjt|d�� ||k W d   ƒ n1 s80    Y  tjt|d�� ||k W d   ƒ n1 sn0    Y  tjt|d�� ||k W d   ƒ n1 s¤0    Y  tjt|d�� ||k  W d   ƒ n1 sÚ0    Y  d S )Nr  z>not supported between instances of 'Timedelta' and '(int|str)'r0   )r   r4   r5   rb   )r   r  r  r7   r   r   r   Útest_compare_unknown_typen  s    &&&z1TestTimedeltaComparison.test_compare_unknown_typeN)rˆ   r‰   rŠ   r4   rŒ   Z
skip_ubsanrý   rþ   r  r  r  r  r  r�   r  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 sRJ ‚| |¡tu sdJ ‚| |¡tu svJ ‚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   r  re   )r   Ú__add__rÓ   Ú__sub__Ú__truediv__Ú__mul__Ú__floordiv__)r  rc   r.   r   r   r   Útest_ops_notimplemented}  s    r  c               	   C   s¼   t dƒ} | dfd| ffD ]ž\}}d g d¢¡}tjt|d�� ||  W d   ƒ n1 sZ0    Y  d}tjt|d�� ||k W d   ƒ n1 s”0    Y  ||krªJ ‚||ksJ ‚qd S )Nre   Úarf   )r]   z3can only concatenate str \(not "Timedelta"\) to strzmust be str, not Timedeltar0   z"not supported between instances ofr�   )r.   ÚleftÚrightr7   r   r   r   Útest_ops_error_str‹  s    ÿ&&r#  )r‹   r   r   r(   Únumpyr+   r4   Zpandas.errorsr   ZpandasrÇ   r   r   r   r   Zpandas._testingZ_testingrr   Zpandas.corer	   r
   rŽ   rù   r  r#  r   r   r   r   Ú<module>   s*     ?    v 5