a
    d                     @   sD  d Z ddlmZ ddlZddlmZmZ ddlZ	ddl
Z
ddlmZ ddlmZmZ ddlmZ ddlmZ ddlZdd	lmZmZmZ ddlmZ G d
d dZG dd dZdd ZG dd dZG dd dZ e
j!"deddfeddfeddddfeddddfeddddfeddfedfgdd Z#dd  Z$dS )!z test the scalar Timedelta     )	timedeltaN)given
strategies)lib)NaTiNaT)NpyDatetimeUnit)OutOfBoundsTimedelta)	TimedeltaTimedeltaIndexto_timedeltac                   @   s,   e Zd Zdd Zdd Zdd Zdd Zd	S )

TestAsUnitc                 C   s4  t dd}|d|u sJ |d}|j|jd ks:J |jtjjksLJ |d}|j|jksfJ |j|jksvJ |d}|j|jd ksJ |jtjjksJ |d}|j|jksJ |j|jksJ |d}|j|jd	 ksJ |jtjjksJ |d}|j|jksJ |j|jks0J d S )
N   daysnsus  ms@B s ʚ;)	r
   as_unit_value_cresor   	NPY_FR_usvalue	NPY_FR_msNPY_FR_s)selftdresrt r#   u/var/www/html/stable-diffusion-webui/venv/lib/python3.9/site-packages/pandas/tests/scalar/timedelta/test_timedelta.pytest_as_unit   s(    






zTestAsUnit.test_as_unitc                 C   s   d}t |tjj}d}tjt|d |d W d    n1 sF0    Y  |d}|j	|d kslJ |j
tjjks~J d S )N     &o>Cannot cast 106752 days 00:00:00 to unit='ns' without overflowmatchr   r   r   )r
   _from_value_and_resor   r   r   pytestraisesr	   r   r   r   r   )r   r   r    msgr!   r#   r#   r$   test_as_unit_overflows;   s    (
z!TestAsUnit.test_as_unit_overflowsc                 C   s   t dd}|d}t dd}||ks*J |jtjjks<J |jdksJJ tjt	dd |jddd	 W d    n1 s|0    Y  d S )
Ni  microsecondsr   r   )millisecondszCannot losslessly convert unitsr(   F)Zround_ok)
r
   r   r   r   r   r   r   r+   r,   
ValueErrorr   r    r!   expectedr#   r#   r$   test_as_unit_roundingH   s    


z TestAsUnit.test_as_unit_roundingc                 C   s   t ddd}|jdksJ |jdks,J |jjdks<J |jdksJJ | dksZJ |d}|jdksrJ |jjdksJ |jjdksJ |jdksJ |jdksJ | dksJ d S )	Nr   r   r   i \&Q r   l    `;P r   )	r
   r   r   r   
componentsZ_dtotal_secondshoursZ_hr   r    r!   r#   r#   r$   test_as_unit_non_nanoU   s    
z TestAsUnit.test_as_unit_non_nanoN)__name__
__module____qualname__r%   r.   r5   r;   r#   r#   r#   r$   r      s   r   c                   @   s   e Zd Zejg dddd Zejdd Zejdd Zej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dd  Zd!d" Zd#d$ Zd%d& Zd'd( Zd)d*d+d,Zd)S )-TestNonNano)r   r   r   )paramsc                 C   s   |j S N)param)r   requestr#   r#   r$   unit_strh   s    zTestNonNano.unit_strc                 C   s   d| }t t|jS )NZNPY_FR_)getattrr   r   )r   rD   attrr#   r#   r$   unitl   s    
zTestNonNano.unitc                 C   s8   d}|t jjkr|}n|t jjkr,|d }n|d }|S )Nr&   r   r   )r   r   r   r   )r   rG   r   r   r#   r#   r$   valr   s    
zTestNonNano.valc                 C   s   t ||S rA   )r
   r*   )r   rG   rH   r#   r#   r$   r    ~   s    zTestNonNano.tdc                 C   s:   t ||}|j|ksJ |j|ks(J |jdks6J d S )N  )r
   r*   r   r   r   )r   rG   rH   r    r#   r#   r$   test_from_value_and_reso   s    z$TestNonNano.test_from_value_and_resoc                 C   s6   t |j|ksJ | j|ks"J |
 j|ks2J d S rA   )absr   )r   r    rG   r#   r#   r$   test_unary_non_nano   s    zTestNonNano.test_unary_non_nanoc                 C   s2   || }t d|}||ks J |j|ks.J d S )Nr   )r
   r*   r   )r   r    rG   r!   r4   r#   r#   r$   test_sub_preserves_reso   s    z#TestNonNano.test_sub_preserves_resoc                 C   s.   |d }|j |j d ksJ |j|ks*J d S )N   )r   r   r   r    rG   r!   r#   r#   r$   test_mul_preserves_reso   s    z#TestNonNano.test_mul_preserves_resoc                 C   s@   t ddd}||k sJ ||ks$J ||kr0J ||ks<J d S )Ni r   )r   rG   r
   )r   r    otherr#   r#   r$   test_cmp_cross_reso   s
    zTestNonNano.test_cmp_cross_resoc                 C   s2   |  }tdd}t|tu s"J ||ks.J d S )NrI   r   )to_pytimedeltar   typer3   r#   r#   r$   test_to_pytimedelta   s    
zTestNonNano.test_to_pytimedeltac                 C   s   |  | |jfD ]z}t|tjs(J |d|jks<J |tj	j
krX|jdksJ q|tjj
krt|jdksJ q|tjj
kr|jdksJ qd S )Ni8m8[s]zm8[ms]zm8[us])to_timedelta64to_numpyZasm8
isinstancenptimedelta64viewr   r   r   r   dtyper   r   rO   r#   r#   r$   test_to_timedelta64   s    zTestNonNano.test_to_timedelta64c           	      C   s   || dksJ d| | dks$J t |j}d}tjt|d ||  W d    n1 s^0    Y  | | }| |  }||ksJ t dtjj	}t dtj
j	}|| }|dksJ || }|dksJ d S )Nr         @z?Cannot cast 106752 days 00:00:00 to unit='ns' without overflow.r(   2   gMbP?r   r
   r   r+   r,   r	   rT   r*   r   r   r   r   )	r   r    rR   r-   r!   r4   leftrightresultr#   r#   r$   test_truediv_timedeltalike   s    
&z&TestNonNano.test_truediv_timedeltalikec                 C   sn   |t j tu sJ |d }|j|jd ks.J |j|jks>J |d }|j|jd ksZJ |j|jksjJ d S NrN   g       @)r\   nanr   r   r   r:   r#   r#   r$   test_truediv_numeric   s    z TestNonNano.test_truediv_numericc                 C   s   || dksJ d| | dks$J t |j}d}tjt|d ||  W d    n1 s^0    Y  | | }|dksJ t dtjj	}t dtj
j	}|| }|dksJ || }|dksJ d S )	Nr   ra   rN   r'   r(   r   i  rb   rc   )r   r    rR   r-   r!   rd   re   rf   r#   r#   r$   test_floordiv_timedeltalike   s    
&z'TestNonNano.test_floordiv_timedeltalikec                 C   s   |t j tu sJ |d }|j|jd ks.J |j|jks>J |d }|j|jd ksZJ |j|jksjJ |t t j tu sJ |t d }|j|jd ksJ |j|jksJ |t d }|j|jd ksJ |j|jksJ d S rh   )r\   ri   r   r   r   arrayr:   r#   r#   r$   test_floordiv_numeric   s    z!TestNonNano.test_floordiv_numericc                 C   s  t ddd}|| }|j|jks(J |j|jd ks<J || }|j|jksTJ |j|jd kshJ || }|j|jksJ |j|jd ksJ || }|j|jksJ |jd|j ksJ t d}d}tjt|d ||  W d    n1 s0    Y  tjt|d ||  W d    n1 s00    Y  tjt|d ||  W d    n1 sh0    Y  tjt|d ||  W d    n1 s0    Y  d S )Nr   r   r     r'   r(   )r
   r   r   r   r+   r,   r	   )r   r    rR   rf   Zother2r-   r#   r#   r$   test_addsub_mismatched_reso  s.    &((z'TestNonNano.test_addsub_mismatched_resoc                 C   s:   |j |ksJ |j j|jks J |j jtjd ks6J d S Nr   )minr   r   r   r   r    r#   r#   r$   test_min%  s    zTestNonNano.test_minc                 C   s>   |j |ksJ |j j|jks J |j jttjj ks:J d S rA   )maxr   r   r\   iinfoint64rr   r#   r#   r$   test_max*  s    zTestNonNano.test_maxc                 C   s4   t d|j}|j}||ks J |j|jks0J d S rp   )r
   r*   r   
resolution)r   r    r4   rf   r#   r#   r$   test_resolution/  s    zTestNonNano.test_resolutionN)returnc                 C   s    t ddj}t|sJ d S )Nr   r   )r
   r   rt   hash)r   Zsecond_resolution_maxr#   r#   r$   	test_hash5  s    zTestNonNano.test_hash)r<   r=   r>   r+   ZfixturerD   rG   rH   r    rJ   rL   rM   rP   rS   rV   r`   rg   rj   rk   rm   ro   rs   rw   ry   r|   r#   r#   r#   r$   r?   g   s0   



!r?   c                   C   s   t jt tjd ksJ t jjtjjks,J t jt t	
t	jjksHJ t jjtjjks\J t jt dksnJ t jjtjjksJ d S rp   )r
   rq   r   r   r   r   Z	NPY_FR_nsr   rt   r\   ru   rv   rx   r#   r#   r#   r$   'test_timedelta_class_min_max_resolution<  s    r}   c                   @   s   e Zd Zdd Zdd ZdS )TestTimedeltaUnaryOpsc                 C   s   t ddd}d}tjt|d |  W d    n1 s:0    Y  tjt|d |   W d    n1 sr0    Y  d}tjt|d |   W d    n1 s0    Y  d S )N
   drG   zbad operand type for unary ~r(   z0ufunc 'invert' not supported for the input types)r
   r+   r,   	TypeErrorrT   rY   )r   r    r-   Zumsgr#   r#   r$   test_invertJ  s    $(z!TestTimedeltaUnaryOps.test_invertc                 C   s   t ddd}| t dddks"J | t dks4J |
 t dddksJJ t||ksZJ t| |kslJ t| t dksJ d S )Nr   r   r   z-10dZ10d)r
   rK   rr   r#   r#   r$   test_unary_opsY  s    z$TestTimedeltaUnaryOps.test_unary_opsN)r<   r=   r>   r   r   r#   r#   r#   r$   r~   I  s   r~   c                   @   s  e Zd Zejdg ddd Zdd Zdd Zd	d
 Z	dd Z
dd Zejddd dD dd dD  dd dD  dd dD  dd dD  dd dD  dd dD  ejdejeejgd d! Zejd"g d#d$d% Zd&d' Zd(d) Zd*d+ Zejd,d-ed.ed/fd0ed1ed2fd3ed4ed5fd6ed7ed8fd9ed:ed;fd<ed=ed>fd?ed@edAfdBedCedDfdEedFedGfdHedIedJfg
dKdL ZdMdN ZdOdP ZeejedQ ejdRdSejdTej ej!ej"gdUdV Z#ejd"g dWdXdY Z$dZd[ Z%d\d] Z&d^d_ Z'd`da Z(dbdc Z)ejj*dde+deeeje,j- dQ df e,j-df dRe.dgdhdidjZ/dkdl Z0dmdn Z1dodp Z2dqdr Z3dgS )sTestTimedeltaszunit, value, expected))r   gsh|#@i'  )r   gr#@i )r   gh#@l   c(	 c                 C   s<   t ||d}|j|ksJ t t|| }|j|ks8J d S )Nr   )r
   r   str)r   rG   r   r4   rf   r#   r#   r$   &test_rounding_on_int_unit_constructionh  s    
z5TestTimedeltas.test_rounding_on_int_unit_constructionc                 C   s<   t d}d}t| | t tj}t| s8J d S )Nz1 days, 10:11:12.100123456g@)r
   tmZassert_almost_equalr8   r\   ri   isnan)r   rngZexptr#   r#   r$   test_total_seconds_scalarw  s
    
z(TestTimedeltas.test_total_seconds_scalarc                 C   s   t dddt dfD ]}| }|t |ks0J ||ks<J t|trPt|t rTJ |t|jdksjJ | }|t|jdksJ ||ksJ t|tjsJ qt d}|| ksJ d S )Nr   r   r   z1 days, 10:11:12.012345r   z1 days, 10:11:12.012345678)r
   rT   r[   r   r\   r]   r   rY   )r   r    ZpydtZtd64r#   r#   r$   test_conversion  s    zTestTimedeltas.test_conversionc                 C   s  dd }t d}|jdksJ |jdks,J |jdks:J |jdksHJ d}tjt|dd	 |j	 W d    n1 s|0    Y  tjt|d
d	 |j
 W d    n1 s0    Y  tjt|dd	 |j W d    n1 s0    Y  ||j ||j ||j ||j td}t|tdks@J t|dksRJ | tdksfJ tdj dks|J tdjdksJ t d}|jdksJ |jdksJ |jdksJ |jdksJ d}tjt|dd	 |j	 W d    n1 s0    Y  tjt|d
d	 |j
 W d    n1 sJ0    Y  tjt|dd	 |j W d    n1 s0    Y  t ddj}|jdksJ |j	dksJ |j
dksJ |jdksJ |jdksJ |jdksJ |jdksJ ||j ||j	 ||j
 ||j ||j ||j ||j tdj}|jdkslJ |j	dks|J |j
dksJ |jdksJ |jdksJ |jdksJ |jdksJ d S )Nc                 S   s   t | tsJ d S rA   )r[   int)r   r#   r#   r$   check  s    z)TestTimedeltas.test_fields.<locals>.checkz1 days, 10:11:12r   i@  r   z('Timedelta' object has no attribute '{}'r9   r(   minutesr1   z-1 days, 10:11:12z13:48:48z-1 days +10:11:12z0 days 13:48:48l     g4 l  g4 z-1 days, 10:11:12.100123456i i  r      ;   i  z-1 days 1 us)r   r   secondsr0   nanosecondsr+   r,   AttributeErrorformatr9   r   r1   r
   rK   r   r   r7   )r   r   r   r-   r    tupr#   r#   r$   test_fields  st    $$$



&&&







zTestTimedeltas.test_fieldsc                 C   s    t ddd}td|ksJ d S )Nr   r   r   Z
P0DT0H0M1S)r
   r   )r   r4   r#   r#   r$   test_iso_conversion  s    z"TestTimedeltas.test_iso_conversionc                 C   s`   t d }|jjdksJ |dtks.J t d }|jjdksJJ |dtks\J d S )NZnatMrv   ri   )r   rZ   r_   kindastyper   )r   rf   r#   r#   r$   test_nat_converters  s    z"TestTimedeltas.test_nat_converterszunit, np_unitc                 C   s   g | ]}|d fqS )Wr#   .0r   r#   r#   r$   
<listcomp>      zTestTimedeltas.<listcomp>)r   wc                 C   s   g | ]}|d fqS )Dr#   r   r#   r#   r$   r     r   )r   r   r   dayZDaysZDayc                 C   s   g | ]}|d fqS )mr#   r   r#   r#   r$   r     s   )r   minuterq   r   ZMinuteZMinZMinutesc                 C   s   g | ]}|d fqS )r   r#   r   r#   r#   r$   r     s   )r   r   secsecondSZSecondsZSecZSecondc                 C   s   g | ]}|d fqS )r   r#   r   r#   r#   r$   r     s   )
r   r1   ZmillisecondZmilliZmillisZMSZMillisecondsZMillisecondZMilliZMillisc                 C   s   g | ]}|d fqS )r   r#   r   r#   r#   r$   r     s   )r   r0   microsecondmicroZmicrosuZUSZMicrosecondsZMicrosecondZMicroZMicrosUc                 C   s   g | ]}|d fqS )r   r#   r   r#   r#   r$   r   (  s   )r   r   Z
nanosecondZnanonanosnZNSZNanosecondsZ
NanosecondZNanoZNanosNwrapperc                    s.  t  fddtd D dd}t|tdd}t|| t |tdd}t|| fddtdD }t||}t|| t||}t|| tt	d 
d	}tdd}||ksJ tdd}||ksJ td
 }||ksJ td
 }||ks*J d S )Nc                    s   g | ]}t | qS r#   )r\   r]   )r   i)np_unitr#   r$   r   ?  r   z3TestTimedeltas.test_unit_parser.<locals>.<listcomp>   m8[ns])r_   r   c                    s   g | ]}|   qS r#   r#   )r   xr   r#   r$   r   H  r   rN   ztimedelta64[ns]2)r   r\   Zarangetolistr   ranger   Zassert_index_equalr
   r]   r   )r   rG   r   r   r4   rf   Zstr_reprr#   )r   rG   r$   test_unit_parser  s,    SzTestTimedeltas.test_unit_parserrG   )Yyr   c                 C   s   d}t jt|d td| W d    n1 s20    Y  t jt|d td| W d    n1 sj0    Y  t jt|d tddg| W d    n1 s0    Y  d S )Nz/Units 'M', 'Y', and 'y' are no longer supportedr(   r   r   rN   )r+   r,   r2   r
   r   )r   rG   r-   r#   r#   r$   test_unit_m_y_raisesZ  s    ((z#TestTimedeltas.test_unit_m_y_raisesc                 C   s   t dtddksJ t dtddks0J t dddtddksLJ t dddtddkshJ t dddtddksJ t dddtddksJ t dddtdd	ksJ d S )
Nr   r   r   r   r   r   r   r   r   )r
   r\   r]   r   r#   r#   r$   test_numeric_conversionsf  s    z'TestTimedeltas.test_numeric_conversionsc                 C   sp   t tddtdddks$J t tddtdddksHJ t tddtdddkslJ d S )	Nr   r   r   r   r/   r   r   r   )r
   r   r\   r]   r   r   r#   r#   r$   test_timedelta_conversionsp  s    

z)TestTimedeltas.test_timedelta_conversionsc                 C   s   t d}| | ksJ d}tjt|d |d W d    n1 sN0    Y  tjt|d |jdd W d    n1 s0    Y  d S )NZ10m7sz$dtype and copy arguments are ignoredr(   rX   T)copy)r
   rY   rZ   r+   r,   r2   )r   r    r-   r#   r#   r$   test_to_numpy_aliasy  s    (z"TestTimedeltas.test_to_numpy_aliasz
freq,s1,s2r   1 days 02:34:56.789123456-1 days 02:34:56.789123456r   z1 days 02:34:56.789123000z-1 days 02:34:56.789123000Lz1 days 02:34:56.789000000z-1 days 02:34:56.789000000r   1 days 02:34:57z-1 days 02:34:57Z2Sz1 days 02:34:56z-1 days 02:34:56Z5Sz1 days 02:34:55z-1 days 02:34:55T1 days 02:35:00z-1 days 02:35:00Z12Tz1 days 02:36:00z-1 days 02:36:00Hz1 days 03:00:00z-1 days 03:00:00r   z1 daysz-1 daysc                 C   s@   t d}t d}||}||ks&J ||}||ks<J d S )Nr   r   )r
   round)r   freqs1s2t1t2Zr1Zr2r#   r#   r$   
test_round  s    

zTestTimedeltas.test_roundc              	   C   sR   t d}dD ]@\}}tjt|d || W d    q1 sB0    Y  qd S )Nr   ))r   z,<YearEnd: month=12> is a non-fixed frequency)r   z#<MonthEnd> is a non-fixed frequency)ZfoobarzInvalid frequency: foobarr(   )r
   r+   r,   r2   r   )r   r   r   r-   r#   r#   r$   test_round_invalid  s    z!TestTimedeltas.test_round_invalidc                 C   sN  t jd}t jt dd t d }||ks0J t jd}t jt d }||ksVJ d}tjt|d t jd W d    n1 s0    Y  tjt|d t jd W d    n1 s0    Y  d}tjt|d t jd W d    n1 s0    Y  tjt|d t jd W d    n1 s@0    Y  d S )	Nr   r   r   ii2zICannot round -106752 days \+00:12:43.145224193 to freq=s without overflowr(   zFCannot round 106751 days 23:47:16.854775807 to freq=s without overflow)	r
   rq   ceilrt   floorr+   r,   r	   r   )r   rf   r4   r-   r#   r#   r$    test_round_implementation_bounds  s"    **,z/TestTimedeltas.test_round_implementation_boundsr   )Z	min_valueZ	max_value)rH   methodc                    s   t  tt|} |} fdd}d}|||d d}|||d d}|||d d	}|||d
 d}|||d d}|||d d}|||d d S )Nc                    sR  |dkrnt | j|\}}t|| }| j| }|| jks@J | j| }|| jksXJ d}|dkrhnR ju r| jjkrtj|d | | W d    n1 s0    Y  d S n ju r| jjk rtj|d | | W d    n1 s0    Y  d S n||krn| jjkrtj|d | | W d    n1 s^0    Y  d S nL| jjk rtj|d | | W d    n1 s0    Y  d S | |}	|	|  }
t	|
j}||k sJ |	j| dksJ  j
u r||d ksNJ n6 ju r4|	| ksNJ n ju rN|	| ksNJ d S )Nr   zwithout overflowr   r(   rN   )divmodr   r   r   rt   r+   r,   r   rq   rK   r   )tsr   rG   divmoddiffZlbZubr-   r!   r    clsZerr_clsr   r#   r$   checker  sR    


(*
**

z1TestTimedeltas.test_round_sanity.<locals>.checkerr   r   r   r   r   r   r   r   l    Xp7 rq   l     qahl     "R: r   )r
   r	   r\   rv   )r   rH   r   r    r   r   r#   r   r$   test_round_sanity  s&    
2z TestTimedeltas.test_round_sanity)r   r   r   r   c                 C   s   t d|}|d}|t dks(J |j|jks8J |d}|t dksRJ |j|jksbJ |d}|t dks|J |j|jksJ d S )Nr   rq   r   z1 days 02:34:00)r
   r   r   r   r   r   )r   rG   r    r!   r#   r#   r$   test_round_non_nano   s    


z"TestTimedeltas.test_round_non_nanoc                 C   s,   t ddd}t|t sJ t|ts(J d S )Nr   r   r   )r
   r[   r   rr   r#   r#   r$   test_identity0  s    zTestTimedeltas.test_identityc                 C   s  dd }t dtddks J t dtddks8J t dtddksPJ t d	tddkshJ t d
tddksJ t dtddksJ t dtddksJ t dtddksJ t dtddksJ t dtddksJ t dtddksJ t dtddks,J t dtddksFJ t dtddks`J t dtddkszJ t dtddksJ t dtdd ksJ t dtddksJ t dtd dksJ t d!td"dksJ t d#td$dksJ t d%|td&d'ks6J t d(|td&d' ksVJ t d)|td&d'kstJ t d*|tdd'ksJ t d+|tdd'ksJ t d,|tdd'ksJ t d-|tdd'ksJ t d.|tdd'ks
J t d/|tdd' ks*J d0}tjt|d1 t d2 W d    n1 s\0    Y  d3}tjt|d1 t d4 W d    n1 s0    Y  d S )5Nc                 S   s
   |  dS Nr   r   vr#   r#   r$   conv6  s    z9TestTimedeltas.test_short_format_converters.<locals>.conv10r   r   Z10nsZ100d   Z100nsZ1000r   Z1000nsZ1000NSZ10usi'  Z100usi Z1000usr   Z1000UsZ1000uSZ1msZ10msi Z100msi Z1000msr   z-1sZ1sZ10sl    d(	 Z100sl    h] Z1000sl    J)Z1dr   r   z-1dZ1DZ10DZ100DZ1000DZ10000Dz 10000D z
 - 10000D zinvalid unit abbreviationr(   Z1foozunit abbreviation w/o a numberZfoo)r
   r\   r]   r+   r,   r2   )r   r   r-   r#   r#   r$   test_short_format_converters5  sJ      (z+TestTimedeltas.test_short_format_convertersc                 C   sh  dd }t dd}td||ks(J td||ks<J td|| ksRJ td|t dd	ksnJ td
|t dd	ksJ td|t dd	ksJ td|t ddksJ td|| t dd	 ksJ td||t dd	 ksJ td||t dd ks(J d}tjt|d td W d    n1 sZ0    Y  d S )Nc                 S   s
   |  dS r   r   r   r#   r#   r$   r   h  s    z8TestTimedeltas.test_full_format_converters.<locals>.convr   r   Z1daysz1days,z- 1days,z00:00:01r   z06:00:01iaT  z
06:00:01.0z06:00:01.01iIr   z- 1days, 00:00:01z1days, 06:00:01z1days, 06:00:01.01zhave leftover unitsr(   z- 1days, 00)r\   r]   r
   r+   r,   r2   )r   r   d1r-   r#   r#   r$   test_full_format_convertersg  s*    

"z*TestTimedeltas.test_full_format_convertersc                 C   s"   t d}t|}||ksJ d S )Nz1 days 10:11:12.0123456)r
   r   Zround_trip_pickle)r   r   Zv_pr#   r#   r$   test_pickle  s    
zTestTimedeltas.test_picklec                 C   s   t dd}tdd}t|t|ks(J |di}|| dks@J dd tdD }tdd	 |D shJ t dd
}t|t| ksJ d S )Nr   r   r   rN   c                 S   s    g | ]}t d dt |d qS )r   r   r   rQ   )r   r   r#   r#   r$   r     r   z?TestTimedeltas.test_timedelta_hash_equality.<locals>.<listcomp>   c                 s   s"   | ]}t |t | kV  qd S rA   )r{   rT   )r   r    r#   r#   r$   	<genexpr>  r   z>TestTimedeltas.test_timedelta_hash_equality.<locals>.<genexpr>r   )r
   r   r{   r   allrT   )r   r   r    r   ZtdsZns_tdr#   r#   r$   test_timedelta_hash_equality  s    


z+TestTimedeltas.test_timedelta_hash_equalityz;pd.Timedelta violates the Python hash invariant (GH#44504).)reasonr,   rn   N)half_microsecondsrz   c                 C   s:   |d }t |}t|}||ks6t|t|ks6J d S )Nrn   )r
   r\   r]   r{   )r   r   r   Zpandas_timedeltaZnumpy_timedeltar#   r#   r$   test_hash_equality_invariance  s    
z,TestTimedeltas.test_hash_equality_invariancec                 C   sp  t t j}t t j}|jtd ks&J |jtjks6J |t dd tu sLJ d}tj	t
|d |t dd  W d    n1 s0    Y  tj	t
|d |t dd  W d    n1 s0    Y  t |jd d}|tu sJ d}tj	t|d  t |jd d W d    n1 s0    Y  d}tj	t|d  t |jd d W d    n1 sb0    Y  d S )Nr   r   zint too (large|big) to convertr(   rN   zACannot cast -9223372036854775809 from ns to 'ns' without overflowz@Cannot cast 9223372036854775808 from ns to 'ns' without overflow)r
   rq   rt   r   r   r   i8maxr   r+   r,   OverflowErrorr	   )r   Zmin_tdZmax_tdr-   r    r#   r#   r$   test_implementation_limits  s$    

,,0z)TestTimedeltas.test_implementation_limitsc                 C   s   t d dksJ t d dks(J t d dks<J t d dksPJ t d d d	k shJ dt d  d	k sJ d S )
NZ30Sg      >@0g        z-2Sg       z5.324SgK@g#B;)r
   r8   r   r#   r#   r$   test_total_seconds_precision  s    z+TestTimedeltas.test_total_seconds_precisionc                 C   s   t ddjdksJ t dddjdks*J t dddjdks@J t ddd	jd
ksVJ t dddjdkslJ t dddjdksJ t dddjdksJ d S )Nr   r   r      r   r9   r   )r   r   r   )r   r   r   )r   r1   r   )r   r0   r   )r   r   r   )r
   Zresolution_stringr   r#   r#   r$   test_resolution_string  s    z%TestTimedeltas.test_resolution_stringc                 C   s@   t ddd}|j}|t ddks$J t j}|t ddks<J d S )N      r   r   )r   )r
   rx   )r   r    rf   r#   r#   r$   test_resolution_deprecated  s
    z)TestTimedeltas.test_resolution_deprecated)4r<   r=   r>   r+   markparametrizer   r   r   r   r   r   r\   rl   listpdIndexr   r   r   r   r   r
   r   r   r   r   stZintegersr   r   r   r   r   r   r   r   r   r   r   r   r   ZxfailAssertionErrorsysmaxsizer   r   r   r   r   r  r#   r#   r#   r$   r   g  s   
	J	*;O

	
	N
2		r   zvalue, expectedZ10STz-10Sr   r   r   Fr   c                 C   s   t | |u sJ d S rA   )bool)r   r4   r#   r#   r$   test_truthiness  s    r  c                  C   sZ   t ddd} | jd }|| j7 }|d9 }|| j7 }|d9 }|| j7 }| j}||ksVJ d S )Nl   ?2\BT, r   r   r6   r   r   )r
   r   r   r0   r   r   )r    rf   r4   r#   r#   r$   "test_timedelta_attribute_precision   s    



r  )%__doc__datetimer   r
  Z
hypothesisr   r   r  numpyr\   r+   Zpandas._libsr   Zpandas._libs.tslibsr   r   Zpandas._libs.tslibs.dtypesr   Zpandas.errorsr	   Zpandasr  r
   r   r   Zpandas._testingZ_testingr   r   r?   r}   r~   r   r  r  r  r  r#   r#   r#   r$   <module>   sH   J V     



