
    o[we։                        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          Z G d d          Zd Z G d d          Z G d d          Z e
j!        "                    d ed          df ed          df edd          df edd          df edd          df ed          dfedfg          d             Z#d Z$dS )z test the scalar Timedelta     )	timedeltaN)given
strategies)lib)NaTiNaT)NpyDatetimeUnit)OutOfBoundsTimedelta)	TimedeltaTimedeltaIndexto_timedeltac                   &    e Zd Zd Zd Zd Zd ZdS )
TestAsUnitc                 R   t          d          }|                    d          |u sJ |                    d          }|j        |j        dz  k    sJ |j        t          j        j        k    sJ |                    d          }|j        |j        k    sJ |j        |j        k    sJ |                    d          }|j        |j        dz  k    sJ |j        t          j        j        k    sJ |                    d          }|j        |j        k    sJ |j        |j        k    sJ |                    d          }|j        |j        d	z  k    sJ |j        t          j        j        k    sJ |                    d          }|j        |j        k    sJ |j        |j        k    sJ 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rts       Llib/python3.11/site-packages/pandas/tests/scalar/timedelta/test_timedelta.pytest_as_unitzTestAsUnit.test_as_unit   s   Azz$2%%%%jjzRY$.....z_6<<<<<[[yBI%%%%yBI%%%%jjzRY)33333z_6<<<<<[[yBI%%%%yBI%%%%jjoozRY-77777z_5;;;;;[[yBI%%%%yBI%%%%%%    c                 h   d}t          j        |t          j        j                  }d}t          j        t          |          5  |                    d           d d d            n# 1 swxY w Y   |                    d          }|j	        |dz  k    sJ |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$   s        r&   test_as_unit_overflowsz!TestAsUnit.test_as_unit_overflows;   s    +B0I0OPPN]/s;;; 	 	JJt	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 jjzR4Z''''z_6<<<<<<<s   A&&A*-A*c                 h   t          d          }|                    d          }t          d          }||k    sJ |j        t          j        j        k    sJ |j        dk    sJ t          j        t          d          5  |                    dd	           d d d            d S # 1 swxY w Y   d S )
Ni  microsecondsr   r   )millisecondszCannot losslessly convert unitsr,   F)round_ok)
r   r   r   r	   r    r   r   r/   r0   
ValueErrorr"   r#   r$   expecteds       r&   test_as_unit_roundingz TestAsUnit.test_as_unit_roundingH   s    D)))jj!,,,hz_6<<<<<zQ]:-NOOO 	- 	-JJteJ,,,	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	-s   B''B+.B+c                    t          d                              d          }|j        dk    sJ |j        dk    sJ |j        j        dk    sJ |j        dk    sJ |                                dk    sJ |                    d          }|j        dk    sJ |j        j        dk    sJ |j        j        dk    sJ |j        dk    sJ |j        dk    sJ |                                dk    sJ d S )	Nr   r   r   i \&Q r   l    `;P r   )	r   r   r   r   
components_dtotal_secondshours_hr"   r#   r$   s      r&   test_as_unit_non_nanoz TestAsUnit.test_as_unit_non_nanoU   s   A&&t,,w!||||yJ&&&&}!Q&&&&uzzzz!!U****jjz^++++~"a''''~#q((((v{{{{v{{{{  ""e++++++r(   N)__name__
__module____qualname__r'   r2   r;   rD    r(   r&   r   r      sP        & & &:= = =- - -, , , , ,r(   r   c                      e Zd Z ej        g d          d             Zej        d             Zej        d             Zej        d             Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd ZddZdS )TestNonNano)r   r   r   )paramsc                     |j         S N)param)r"   requests     r&   unit_strzTestNonNano.unit_strh   s
    }r(   c                 @    d| }t          t          |          j        S )NNPY_FR_)getattrr	   r   )r"   rP   attrs      r&   unitzTestNonNano.unitl   s$     $##--33r(   c                 z    d}|t           j        j        k    r|}n |t           j        j        k    r|dz  }n|dz  }|S )Nr*   r   r   )r	   r   r   r    )r"   rU   r   r   s       r&   valzTestNonNano.valr   sK     ?,222EE_.444$JEE)OEr(   c                 ,    t          j        ||          S rM   )r   r.   )r"   rU   rW   s      r&   r#   zTestNonNano.td~   s    -c4888r(   c                 ~    t          j        ||          }|j        |k    sJ |j        |k    sJ |j        dk    sJ d S )N  )r   r.   r   r   r   )r"   rU   rW   r#   s       r&   test_from_value_and_resoz$TestNonNano.test_from_value_and_reso   sS    +C66yCyD    w&      r(   c                 r    t          |          j        |k    sJ | j        |k    sJ |
 j        |k    sJ d S rM   )absr   )r"   r#   rU   s      r&   test_unary_non_nanozTestNonNano.test_unary_non_nano   sK    2ww~%%%%|t####|t######r(   c                 d    ||z
  }t          j        d|          }||k    sJ |j        |k    sJ d S )Nr   )r   r.   r   )r"   r#   rU   r$   r:   s        r&   test_sub_preserves_resoz#TestNonNano.test_sub_preserves_reso   sC    2g1!T::hzT!!!!!!r(   c                 T    |dz  }|j         |j         dz  k    sJ |j        |k    sJ d S )N   )r   r   r"   r#   rU   r$   s       r&   test_mul_preserves_resoz#TestNonNano.test_mul_preserves_reso   s?     1fzRY]****zT!!!!!!r(   c                 h    t          dd          }||k     sJ ||k    sJ ||k    rJ ||k    sJ d S )Ni r   )r   rU   r   )r"   r#   others      r&   test_cmp_cross_resozTestNonNano.test_cmp_cross_reso   sL    vD111rzzzzEzzzzB;;;;U{{{{{{r(   c                     |                                 }t          d          }t          |          t          u sJ ||k    sJ d S )NrZ   r   )to_pytimedeltar   typer9   s       r&   test_to_pytimedeltazTestNonNano.test_to_pytimedelta   sK    !!&)))CyyI%%%%hr(   c                    |                                 |                                |j        fD ]}t          |t          j                  sJ |                    d          |j        k    sJ |t          j	        j
        k    r|j        dk    sJ a|t          j        j
        k    r|j        dk    sJ |t          j        j
        k    r|j        dk    sJ d S )Ni8m8[s]zm8[ms]zm8[us])to_timedelta64to_numpyasm8
isinstancenptimedelta64viewr   r	   r!   r   dtyper    r   rc   s       r&   test_to_timedelta64zTestNonNano.test_to_timedelta64   s    %%''@ 	- 	-Cc2>2222288D>>RY..../555yG+++++2888yH,,,,,2888yH,,,,	- 	-r(   c                 (   ||z  dk    sJ d|z  |z  dk    sJ t          |j                  }d}t          j        t          |          5  ||z   d d d            n# 1 swxY w Y   |                                |z  }|                                |                                z  }||k    sJ t          j        dt          j        j	                  }t          j        dt          j
        j	                  }||z  }|dk    sJ ||z  }|dk    sJ d S )Nr         @z?Cannot cast 106752 days 00:00:00 to unit='ns' without overflow.r,   2   gMbP?r   r   r   r/   r0   r
   rj   r.   r	   r   r   r    )	r"   r#   rg   r1   r$   r:   leftrightresults	            r&   test_truediv_timedeltalikez&TestNonNano.test_truediv_timedeltalike   s]   Bw!||||bB#%%%%")$$O]/s;;; 	 	JJ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ""$$r)''))B,=,=,?,??h -b/2K2QRR.r?3L3RSS~~~~~~   AA!$A!c                     |t           j        z  t          u sJ |dz  }|j        |j        dz  k    sJ |j        |j        k    sJ |dz  }|j        |j        dz  k    sJ |j        |j        k    sJ d S Nrb   g       @)rt   nanr   r   r   rC   s      r&   test_truediv_numericz TestNonNano.test_truediv_numeric   s    BF{c!!!!1fzRY]****zRY&&&&3hzRY]****zRY&&&&&&r(   c                    ||z  dk    sJ d|z  |z  dk    sJ t          |j                  }d}t          j        t          |          5  ||z   d d d            n# 1 swxY w Y   |                                |z  }|dk    sJ t          j        dt          j        j	                  }t          j        dt          j
        j	                  }||z  }|dk    sJ ||z  }|dk    sJ d S )	Nr   rz   rb   r+   r,   r   i  r{   r|   )r"   r#   rg   r1   r$   r}   r~   r   s           r&   test_floordiv_timedeltalikez'TestNonNano.test_floordiv_timedeltalike   s<   Rx1}}}}bR1$$$$")$$N]/s;;; 	 	%KK	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ""$$*axxxx -e_5N5TUU.r?3L3RSS{{{{${{{{{{r   c                 2   |t           j        z  t          u sJ |dz  }|j        |j        dz  k    sJ |j        |j        k    sJ |dz  }|j        |j        dz  k    sJ |j        |j        k    sJ |t          j        t           j                  z  t          u sJ |t          j        d          z  }|j        |j        dz  k    sJ |j        |j        k    sJ |t          j        d          z  }|j        |j        dz  k    sJ |j        |j        k    sJ d S r   )rt   r   r   r   r   arrayrC   s      r&   test_floordiv_numericz!TestNonNano.test_floordiv_numeric   s/   RV|s""""AgzRY!^++++zRY&&&&CizRY!^++++zRY&&&&RXbf%%%,,,,BHQKKzRY!^++++zRY&&&&BHSMM!zRY!^++++zRY&&&&&&r(   c                    t          d                              d          }||z   }|j        |j        k    sJ |j        |j        dz   k    sJ ||z   }|j        |j        k    sJ |j        |j        dz   k    sJ ||z
  }|j        |j        k    sJ |j        |j        dz
  k    sJ ||z
  }|j        |j        k    sJ |j        d|j        z
  k    sJ t          d          }d}t	          j        t          |          5  ||z    d d d            n# 1 swxY w Y   t	          j        t          |          5  ||z    d d d            n# 1 swxY w Y   t	          j        t          |          5  ||z
   d d d            n# 1 swxY w Y   t	          j        t          |          5  ||z
   d d d            d S # 1 swxY w Y   d S )Nr   r   r     r+   r,   )r   r   r   r   r/   r0   r
   )r"   r#   rg   r   other2r1   s         r&   test_addsub_mismatched_resoz'TestNonNano.test_addsub_mismatched_reso  s    q!!!))$// e},,,,{bgk))))},,,,{bgk))))e},,,,{bgk))))},,,,{a"'k))))3N]/s;;; 	 	KK	 	 	 	 	 	 	 	 	 	 	 	 	 	 	]/s;;; 	 	RKK	 	 	 	 	 	 	 	 	 	 	 	 	 	 	]/s;;; 	 	KK	 	 	 	 	 	 	 	 	 	 	 	 	 	 	]/s;;; 	 	RKK	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	sH    DDD8E

EE0FF	F(F;;F?F?c                     |j         |k    sJ |j         j        |j        k    sJ |j         j        t          j        dz   k    sJ d S Nr   )minr   r   r   r"   r#   s     r&   test_minzTestNonNano.test_min%  sI    v||||v}	))))v}
Q......r(   c                     |j         |k    sJ |j         j        |j        k    sJ |j         j        t          j        t          j                  j         k    sJ d S rM   )maxr   r   rt   iinfoint64r   s     r&   test_maxzTestNonNano.test_max*  sR    v||||v}	))))v} 2 2 6666666r(   c                 |    t          j        d|j                  }|j        }||k    sJ |j        |j        k    sJ d S r   )r   r.   r   
resolution)r"   r#   r:   r   s       r&   test_resolutionzTestNonNano.test_resolution/  sI    1!RY??!!!!}//////r(   returnNc                 v    t          d                              d          j        }t          |          sJ d S )Nr   r   )r   r   r   hash)r"   second_resolution_maxs     r&   	test_hashzTestNonNano.test_hash5  s:     )! 4 4S 9 9 =)*******r(   )r   N)rE   rF   rG   r/   fixturerP   rU   rW   r#   r[   r^   r`   rd   rh   rl   rx   r   r   r   r   r   r   r   r   r   rH   r(   r&   rJ   rJ   g   s       V^,,,---  .- ^4 4 ^4
 ^	 	 ^	 ^9 9 ^9! ! !$ $ $
" " "" " "    	- 	- 	-  2	' 	' 	'  .' ' '*  B/ / /
7 7 7
0 0 0+ + + + + +r(   rJ   c                      t           j        t          t          j        dz             k    sJ t           j        j        t
          j        j        k    sJ t           j        t          t          j
        t          j                  j                  k    sJ t           j        j        t
          j        j        k    sJ t           j        t          d          k    sJ t           j        j        t
          j        j        k    sJ d S r   )r   r   r   r   r   r	   	NPY_FR_nsr   r   rt   r   r   r   rH   r(   r&   'test_timedelta_class_min_max_resolutionr   <  s     =Icj1n555555=?#<#BBBBB=Ibhrx&8&8&<=======?#<#BBBBB9Q<<////&/*C*IIIIIIIr(   c                       e Zd Zd Zd ZdS )TestTimedeltaUnaryOpsc                    t          dd          }d}t          j        t          |          5  |  d d d            n# 1 swxY w Y   t          j        t          |          5  |                                  d d d            n# 1 swxY w Y   d}t          j        t          |          5  |                                  d d d            d S # 1 swxY w Y   d S )N
   drU   zbad operand type for unary ~r,   z0ufunc 'invert' not supported for the input types)r   r/   r0   	TypeErrorrj   rp   )r"   r#   r1   umsgs       r&   test_invertz!TestTimedeltaUnaryOps.test_invertJ  s   r$$$,]9C000 	 	CC	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ]9C000 	# 	#!!""	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# B]9D111 	# 	#!!""	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	#s3   ?AA%BBB/CCCc                 P   t          dd          }| t          dd          k    sJ | t          d          k    sJ |
 t          dd          k    sJ t          |          |k    sJ t          |           |k    sJ t          |           t          d          k    sJ d S )Nr   r   r   z-10d10d)r   r]   r   s     r&   test_unary_opsz$TestTimedeltaUnaryOps.test_unary_opsY  s    r$$$ si#.......si''''''si------- 2ww"}}}}B3xx2~~~~B3xx9U++++++++r(   N)rE   rF   rG   r   r   rH   r(   r&   r   r   I  s2        # # #, , , , ,r(   r   c                   4   e Zd Zej                            dg d          d             Zd Zd Zd Z	d Z
d Zej                            d	d
 dD             d dD             z   d dD             z   d dD             z   d dD             z   d dD             z   d dD             z             ej                            dej        eej        g          d                         Zej                            dg d          d             Zd Zd Zd Zej                            d d! ed"           ed#          fd$ ed%           ed&          fd' ed(           ed)          fd* ed+           ed,          fd- ed.           ed/          fd0 ed1           ed2          fd3 ed4           ed5          fd6 ed7           ed8          fd9 ed:           ed;          fd< ed=           ed>          fg
          d?             Zd@ ZdA Z e ej        edBz   ej        C          D          ej                            dEej         ej!        ej"        g          dF                         Z#ej                            dg dG          dH             Z$dI Z%dJ Z&dK Z'dL Z(dM Z)ej        *                    dNO           e ej        e+j,         dBz
  dPz  e+j,        dPz  C                    dQe-dRdSfdT                        Z.dU Z/dV Z0dW Z1dX Z2dSS )YTestTimedeltaszunit, value, expected))r   gsh|#@i'  )r   gr#@i )r   gh#@l   c(	 c                     t          ||          }|j        |k    sJ t          t          |          |z             }|j        |k    sJ d S )Nr   )r   r   str)r"   rU   r   r:   r   s        r&   &test_rounding_on_int_unit_constructionz5TestTimedeltas.test_rounding_on_int_unit_constructionh  sZ     5t,,,}((((3u::,--}((((((r(   c                     t          d          }d}t          j        |                                |           t          t          j                  }t	          j        |                                          sJ d S )Nz1 days, 10:11:12.100123456g@)r   tmassert_almost_equalr@   rt   r   isnan)r"   rngexpts      r&   test_total_seconds_scalarz(TestTimedeltas.test_total_seconds_scalarw  sk    455G
s0022D999x))++,,,,,,,r(   c                 H   t          dd          t          d          fD ]}|                                }|t          |          k    sJ ||k    sJ t          |t                    rt          |t                     rJ |t	          j        |j        d          k    sJ |                                }|t	          j        |j        d          k    sJ ||k    sJ t          |t          j                  sJ t          d          }||                                k    sJ d S )Nr   r   r   z1 days, 10:11:12.012345r   z1 days, 10:11:12.012345678)r   rj   rs   r   rt   ru   r   rp   )r"   r#   pydttd64s       r&   test_conversionzTestTimedeltas.test_conversion  s0   Rc***I6O,P,PQ 	4 	4B$$&&D4((((::::dI..Rz$	7R7RRRR	4888888$$&&D2>")T::::::::::dBN333333 344R&&((((((((r(   c                    d }t          d          }|j        dk    sJ |j        dk    sJ |j        dk    sJ |j        dk    sJ d}t          j        t          |                    d                    5  |j	         d d d            n# 1 swxY w Y   t          j        t          |                    d	                    5  |j
         d d d            n# 1 swxY w Y   t          j        t          |                    d
                    5  |j         d d d            n# 1 swxY w Y    ||j                    ||j                    ||j                    ||j                   t          d          }t          |          t          d          k    sJ t          |          dk    sJ | t          d          k    sJ t          d          j         dk    sJ t          d          j        dk    sJ t          d          }|j        dk    sJ |j        dk    sJ |j        dk    sJ |j        dk    sJ d}t          j        t          |                    d                    5  |j	         d d d            n# 1 swxY w Y   t          j        t          |                    d	                    5  |j
         d d d            n# 1 swxY w Y   t          j        t          |                    d
                    5  |j         d d d            n# 1 swxY w Y   t          dd          j        }|j        dk    sJ |j	        dk    sJ |j
        dk    sJ |j        dk    sJ |j        dk    sJ |j        dk    sJ |j        dk    sJ  ||j                    ||j	                    ||j
                    ||j                    ||j                    ||j                    ||j                   t          d          j        }|j        dk    sJ |j	        dk    sJ |j
        dk    sJ |j        dk    sJ |j        dk    sJ |j        dk    sJ |j        dk    sJ d S )Nc                 4    t          | t                    sJ d S rM   )rs   int)r   s    r&   checkz)TestTimedeltas.test_fields.<locals>.check  s    eS)))))))r(   z1 days, 10:11:12r   i@  r   z('Timedelta' object has no attribute '{}'rA   r,   minutesr6   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   secondsr5   nanosecondsr/   r0   AttributeErrorformatrA   r   r6   r   r]   r   r   r>   )r"   r   r   r1   r#   tups         r&   test_fieldszTestTimedeltas.test_fields  sM   	* 	* 	*
 -..x1}}}}{666661$$$$!####8]>G1D1DEEE 	 	II	 	 	 	 	 	 	 	 	 	 	 	 	 	 	]>I1F1FGGG 	 	KK	 	 	 	 	 	 	 	 	 	 	 	 	 	 	]>N1K1KLLL 	 		 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	chckcco*++2ww)J//////2ww-----si 1222222-..55GGGG,--4GGGG899x2~~~~{66666#33333#%%%%8]>G1D1DEEE 	 	II	 	 	 	 	 	 	 	 	 	 	 	 	 	 	]>I1F1FGGG 	 	KK	 	 	 	 	 	 	 	 	 	 	 	 	 	 	]>N1K1KLLL 	 		 	 	 	 	 	 	 	 	 	 	 	 	 	 	 2t$$/x2~~~~yB{b    {b    3&&&&3&&&&!#### 	chcickckccco''2x2~~~~yB{b    {b    3&&&&3&&&&!######sl   7BBBCCCD%%D),D)4JJJKKKL""L&)L&c                 R    t          dd          }t          d          |k    sJ d S )Nr   r   r   
P0DT0H0M1S)r   r   )r"   r:   s     r&   test_iso_conversionz"TestTimedeltas.test_iso_conversion  s3    QS)))L))X555555r(   c                 R   t          d                                          }|j        j        dk    sJ |                    d          t
          k    sJ t          d                                          }|j        j        dk    sJ |                    d          t
          k    sJ d S )NnatMr   r   )r   rq   rw   kindastyper   )r"   r   s     r&   test_nat_convertersz"TestTimedeltas.test_nat_converters  s    e$$--//| C''''}}W%%----e$$--//| C''''}}W%%------r(   zunit, np_unitc                     g | ]}|d fS )WrH   .0r   s     r&   
<listcomp>zTestTimedeltas.<listcomp>  s    ...%%...r(   )r   wc                     g | ]}|d fS )DrH   r   s     r&   r   zTestTimedeltas.<listcomp>  s    
N
N
NEE3<
N
N
Nr(   )r   r   r   dayDaysDayc                     g | ]}|d fS )mrH   r   s     r&   r   zTestTimedeltas.<listcomp>  s,     
 
 
 CL
 
 
r(   )r   minuter   r   MinuteMinMinutesc                     g | ]}|d fS )r   rH   r   s     r&   r   zTestTimedeltas.<listcomp>  s,     
 
 
 CL
 
 
r(   )r   r   secsecondSSecondsSecSecondc                     g | ]}|d fS )r   rH   r   s     r&   r   zTestTimedeltas.<listcomp>  s,     
 
 
 DM
 
 
r(   )
r   r6   millisecondmillimillisMSMillisecondsMillisecondMilliMillisc                     g | ]}|d fS )r   rH   r   s     r&   r   zTestTimedeltas.<listcomp>  ,     
 
 
 DM
 
 
r(   )r   r5   microsecondmicromicrosuUSMicrosecondsMicrosecondMicroMicrosUc                     g | ]}|d fS )r   rH   r   s     r&   r   zTestTimedeltas.<listcomp>(  r   r(   )r   r   
nanosecondnanonanosnNSNanoseconds
NanosecondNanoNanosNwrapperc                    t          fdt          j        d                                          D             d          }t	           |t          d                              }t          j        ||           t           |t          d                              }t          j        ||           fdt          j        d          D             }t	           ||                    }t          j        ||           t	           ||                    }t          j        ||           t          t          j	        d          
                    d                    }t	          d          }||k    sJ t          d          }||k    sJ t	          d	           }||k    sJ t          d	           }||k    sJ d S )
Nc                 :    g | ]}t          j        |          S rH   )rt   ru   )r   inp_units     r&   r   z3TestTimedeltas.test_unit_parser.<locals>.<listcomp>?  s%    GGGAR^Aw''GGGr(      m8[ns])rw   r   c                     g | ]}|  	S rH   rH   )r   xrU   s     r&   r   z3TestTimedeltas.test_unit_parser.<locals>.<listcomp>H  s!    777QqL$LL777r(   rb   ztimedelta64[ns]2)r   rt   arangetolistr   ranger   assert_index_equalr   ru   r   )r"   rU   r  r  r:   r   str_reprs    ``    r&   test_unit_parserzTestTimedeltas.test_unit_parser  s   f "GGGG11D1D1F1FGGG
 
 

 ggeAhh//d;;;
fh///a 1 1===
fh///7777")A,,777ggh//00
fh///ggh//00
fh/// R^Aw77>>?PQQRRad+++!!!!14(((!!!!j$jj))!!!!:t::&&!!!!!!r(   rU   )Yyr   c                    d}t          j        t          |          5  t          d|           d d d            n# 1 swxY w Y   t          j        t          |          5  t	          d|           d d d            n# 1 swxY w Y   t          j        t          |          5  t	          ddg|           d d d            d S # 1 swxY w Y   d S )Nz/Units 'M', 'Y', and 'y' are no longer supportedr,   r   r   rb   )r/   r0   r8   r   r   )r"   rU   r1   s      r&   test_unit_m_y_raisesz#TestTimedeltas.test_unit_m_y_raisesZ  s   ?]:S111 	  	 b$	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  ]:S111 	# 	#T"""	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# ]:S111 	' 	'!Q&&&	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	's1   ;??!A>>BB$CCCc                 J   t          d          t          j        dd          k    sJ t          d          t          j        dd          k    sJ t          dd          t          j        dd          k    sJ t          dd          t          j        dd          k    sJ t          dd          t          j        dd          k    sJ t          dd          t          j        dd          k    sJ t          dd          t          j        dd	          k    sJ d S )
Nr   r   r   r   r   r   r   r   r   )r   rt   ru   r"   s    r&   test_numeric_conversionsz'TestTimedeltas.test_numeric_conversionsf  s    ||r~a666666}}r4 8 88888$'''2>"d+C+CCCCC$'''2>"d+C+CCCCC$'''2>"d+C+CCCCC#&&&".S*A*AAAAA#&&&".S*A*AAAAAAAr(   c                    t          t          d                    t          j        dd                              d          k    sJ t          t          d                    t          j        dd                              d          k    sJ t          t          d                    t          j        dd                              d          k    sJ d S )	Nr   r   r   r  r4   r   r   r   )r   r   rt   ru   r   r'  s    r&   test_timedelta_conversionsz)TestTimedeltas.test_timedelta_conversionsp  s    1---..".C2H2H2O2O3
 3
 
 
 
 
 22233r~a7N7N7U7U8
 8
 
 
 
 
 ***++r~a/E/E/L/LX/V/VVVVVVVr(   c                    t          d          }|                                |                                k    sJ d}t          j        t
          |          5  |                    d           d d d            n# 1 swxY w Y   t          j        t
          |          5  |                    d           d d d            d S # 1 swxY w Y   d S )N10m7sz$dtype and copy arguments are ignoredr,   ro   T)copy)r   rp   rq   r/   r0   r8   )r"   r#   r1   s      r&   test_to_numpy_aliasz"TestTimedeltas.test_to_numpy_aliasy  sD   w  ""bkkmm3333 5]:S111 	! 	!KK   	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	!]:S111 	# 	#KKTK"""	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	#s$   A;;A?A?!CC	C	z
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:572Sz1 days 02:34:56z-1 days 02:34:565Sz1 days 02:34:55z-1 days 02:34:55T1 days 02:35:00z-1 days 02:35:00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                     t          d          }t          d          }|                    |          }||k    sJ |                    |          }||k    sJ d S )Nr0  r1  )r   round)r"   freqs1s2t1t2r1r2s           r&   
test_roundzTestTimedeltas.test_round  s\    : 233344XXd^^RxxxxXXd^^Rxxxxxxr(   c                     t          d          }dD ]M\  }}t          j        t          |          5  |                    |           d d d            n# 1 swxY w Y   Nd S )Nr0  ))r"  z,<YearEnd: month=12> is a non-fixed frequency)r   z#<MonthEnd> is a non-fixed frequency)foobarzInvalid frequency: foobarr,   )r   r/   r0   r8   r;  )r"   r?  r<  r1   s       r&   test_round_invalidz!TestTimedeltas.test_round_invalid  s    233
 	 	ID#
 z555                	 	s   AA	A	c                    t           j                            d          }t           j        t          d          z   t          d          z
  }||k    sJ t           j                            d          }t           j        t          d          z
  }||k    sJ d}t          j        t          |          5  t           j                            d           d d d            n# 1 swxY w Y   t          j        t          |          5  t           j                            d           d d d            n# 1 swxY w Y   d}t          j        t          |          5  t           j                            d           d d d            n# 1 swxY w Y   t          j        t          |          5  t           j                            d           d d d            d S # 1 swxY w 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   r   ceilr   floorr/   r0   r
   r;  )r"   r   r:   r1   s       r&    test_round_implementation_boundsz/TestTimedeltas.test_round_implementation_bounds  s    ##C((=9Q#7#7#77)I:N:NN!!!!$$S))=9Y#7#77!!!! Y 	 ]/s;;; 	% 	%M$$$	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	%]/s;;; 	% 	%M$$$	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% W]/s;;; 	$ 	$Ms###	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$]/s;;; 	% 	%M$$$	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	%sH   5 C!!C%(C% D33D7:D7 FFF- GG!Gr   )	min_value	max_value)rW   methodc                 F   t           t          t          j        |          } |          }fd}d} |||d           d} |||d           d} |||d           d} |||d	           d
} |||d           d} |||d           d} |||d           d S )Nc                 d   |dk    rnt          | j        |          \  }}t          ||z
            }| j        |z
  }|| j        k    sJ | j        |z   }|| j        k    sJ d}|dk    rnKj        u rM|j        j        k    r<t          j        |          5   | |           d d d            n# 1 swxY w Y   d S nj        u rM|j        j        k     r<t          j        |          5   | |           d d d            n# 1 swxY w Y   d S n||k    rM|j        j        k    r<t          j        |          5   | |           d d d            n# 1 swxY w Y   d S nL|j        j        k     r<t          j        |          5   | |           d d d            n# 1 swxY w Y   d S  | |          }	|	| z
  }
t          |
j                  }||k     sJ |	j        |z  dk    sJ j
        u r||dz  k    sJ d S j        u r
|	| k    sJ d S j        u r|	| k    sJ d S d S )Nr   zwithout overflowr   r,   rb   )divmodr   r   rH  r   r/   r0   rI  r   r]   r;  )tsr
  rU   divmoddifflbubr1   r$   r#   clserr_clsrM  s              r&   checkerz1TestTimedeltas.test_round_sanity.<locals>.checker  s   zz!")U33S53;''Y_RYY%BI~~~~(!88sx''CGN**#]7#>>> - -"F2t,,,- - - - - - - - - - - - - - - + sy((CGN**#]7#>>> - -"F2t,,,- - - - - - - - - - - - - - - + D[[CGN**#]7#>>> - -"F2t,,,- - - - - - - - - - - - - - - + #'.((wc::: ) )r4((() ) ) ) ) ) ) ) ) ) ) ) ) ) )F&T""CrBry>>D%<<<<:%****""uqy((((((39$$byyyyyy38##byyyy $# ysH   B44B8;B81D

DDEE!$E!F**F.1F.r   r   r   r   r   r   r   r   l    Xp7 r   l     qahl     "R: r   )r   r
   rt   r   )r"   rW   rM  r#   rY  r
  rW  rX  s     `   @@r&   test_round_sanityz TestTimedeltas.test_round_sanity  s   
 &hsmmSXX0	! 0	! 0	! 0	! 0	! 0	! 0	!d E4   E4   E4   E3"E5!!!'E3,E3r(   )r   r   r   r   c                    t          d                              |          }|                    d          }|t          d          k    sJ |j        |j        k    sJ |                    d          }|t          d          k    sJ |j        |j        k    sJ |                    d          }|t          d          k    sJ |j        |j        k    sJ d S )Nr3  r   r7  z1 days 02:34:00)r   r   r;  r   rI  rH  )r"   rU   r#   r$   s       r&   test_round_non_nanoz"TestTimedeltas.test_round_non_nano   s    ())11$77hhuooi 1222222zRY&&&&hhuooi 1222222zRY&&&&ggenni 1222222zRY&&&&&&r(   c                     t          dd          }t          |t                     sJ t          |t                    sJ d S )Nr   r   r   )r   rs   r   r   s     r&   test_identityzTestTimedeltas.test_identity0  sF    r$$$"i((((("i(((((((r(   c                 &   d }t          d          t          j        dd          k    sJ t          d          t          j        dd          k    sJ t          d          t          j        dd          k    sJ t          d          t          j        dd          k    sJ t          d	          t          j        d
d          k    sJ t          d          t          j        d
d          k    sJ t          d          t          j        d
d          k    sJ t          d          t          j        dd          k    sJ t          d          t          j        dd          k    sJ t          d          t          j        dd          k    sJ t          d          t          j        dd          k    sJ t          d          t          j        dd          k    sJ t          d          t          j        dd          k    sJ t          d          t          j        dd          k    sJ t          d          t          j        dd          k    sJ t          d          t          j        dd          k    sJ t          d          t          j        dd           k    sJ t          d          t          j        dd          k    sJ t          d          t          j        dd          k    sJ t          d           t          j        d!d          k    sJ t          d"          t          j        d#d          k    sJ t          d$           |t          j        d%d&                    k    sJ t          d'           |t          j        d%d&                     k    sJ t          d(           |t          j        d%d&                    k    sJ t          d)           |t          j        dd&                    k    sJ t          d*           |t          j        dd&                    k    sJ t          d+           |t          j        d
d&                    k    sJ t          d,           |t          j        dd&                    k    sJ t          d-           |t          j        dd&                    k    sJ t          d.           |t          j        dd&                     k    sJ d/}t          j        t
          |0          5  t          d1           d d d            n# 1 swxY w Y   d2}t          j        t
          |0          5  t          d3           d d d            d S # 1 swxY w Y   d S )4Nc                 ,    |                      d          S Nr  r   vs    r&   convz9TestTimedeltas.test_short_format_converters.<locals>.conv6      88H%%%r(   10r   r   10ns100d   100ns1000r   1000ns1000NS10usi'  100usi 1000usr   1000Us1000uS1ms10msi 100msi 1000msr   z-1s1s10sl    d(	 100sl    h] 1000sl    J)1dr   r   z-1d1D10D100D1000D10000Dz 10000D z
 - 10000D zinvalid unit abbreviationr,   1foozunit abbreviation w/o a numberfoo)r   rt   ru   r/   r0   r8   )r"   rf  r1   s      r&   test_short_format_convertersz+TestTimedeltas.test_short_format_converters5  s   	& 	& 	& ".T":":::::  BN2t$<$<<<<<2>#t#<#<<<<<!!R^C%>%>>>>>  BN4$>$>>>>>""bnT4&@&@@@@@""bnT4&@&@@@@@  BN5$$?$?????!!R^FD%A%AAAAA""bnWd&C&CCCCC""bnWd&C&CCCCC""bnWd&C&CCCCC2>'4#@#@@@@@  BN8T$B$BBBBB!!R^It%D%DDDDD""bnZ&F&FFFFFBN:t$D$D#DDDDD".T"B"BBBBB2>+t#D#DDDDD  BN<$F$FFFFF!!R^M4%H%HHHHH$$r~a'='=">">>>>>DD3)?)?$@$@#@@@@@$$r~a'='=">">>>>>44r3(?(?#@#@@@@@  DDS)A)A$B$BBBBB!!TT".s*C*C%D%DDDDD""dd2>%+E+E&F&FFFFF $$R^E3-G-G(H(HHHHH&&44uc0J0J+K+K*KKKKK *]:S111 	 	f	 	 	 	 	 	 	 	 	 	 	 	 	 	 	.]:S111 	 	e	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s$   %UUU)VV
V
c                 8   d }t          j        dd          }t          d           ||          k    sJ t          d           ||          k    sJ t          d           ||           k    sJ t          d           |t          j        dd                    k    sJ t          d	           |t          j        d
d                    k    sJ t          d           |t          j        d
d                    k    sJ t          d           |t          j        dd                    k    sJ t          d           || t          j        dd          z             k    sJ t          d           ||t          j        d
d          z             k    sJ t          d           ||t          j        dd          z             k    sJ d}t          j        t
          |          5  t          d           d d d            d S # 1 swxY w Y   d S )Nc                 ,    |                      d          S rb  rc  rd  s    r&   rf  z8TestTimedeltas.test_full_format_converters.<locals>.convh  rg  r(   r   r   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)rt   ru   r   r/   r0   r8   )r"   rf  d1r1   s       r&   test_full_format_convertersz*TestTimedeltas.test_full_format_convertersg  s   	& 	& 	& ^As##!!TT"XX----""dd2hh....$$b	1111$$R^As-C-C(D(DDDDD$$R^L#-N-N(O(OOOOO&&$$r~lC/P/P*Q*QQQQQ''44N5t<<,
 ,
 
 
 
 
 ,--rcBN1c<R<R6R1S1SSSSS*++ttc2220
 0
 
 
 
 
 -..$$ :DAAA3
 3
 
 
 
 

 $]:S111 	% 	%m$$$	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	%s   2HHHc                 \    t          d          }t          j        |          }||k    sJ d S )Nz1 days 10:11:12.0123456)r   r   round_trip_pickle)r"   re  v_ps      r&   test_picklezTestTimedeltas.test_pickle  s1    /00"1%%Cxxxxxxr(   c                    t          dd          }t          d          }t          |          t          |          k    sJ |di}||         dk    sJ d t          d          D             }t	          d |D                       sJ t          dd          }t          |          t          |                                          k    sJ d S )	Nr   r   r   rb   c                 P    g | ]#}t          d           t          |          z   $S )r   r*  r   rf   )r   r  s     r&   r   z?TestTimedeltas.test_timedelta_hash_equality.<locals>.<listcomp>  s3    KKKAy###iQ&7&7&77KKKr(      c              3   z   K   | ]6}t          |          t          |                                          k    V  7d S rM   )r   rj   )r   r#   s     r&   	<genexpr>z>TestTimedeltas.test_timedelta_hash_equality.<locals>.<genexpr>  sA      GGR488tB$5$5$7$7888GGGGGGr(   r   )r   r   r   r  allrj   )r"   re  r#   r   tdsns_tds         r&   test_timedelta_hash_equalityz+TestTimedeltas.test_timedelta_hash_equality  s    aAAww$r((""""GtqyyyyKKrKKKGG3GGGGGGGG !T""E{{d5#7#7#9#9::::::::r(   z;pd.Timedelta violates the Python hash invariant (GH#44504).)reasonr   half_microsecondsr   Nc                     |dz  }t          |          }t          j        |          }||k    s"t          |          t          |          k    sJ d S d S )Nr   )r   rt   ru   r   )r"   r  r   pandas_timedeltanumpy_timedeltas        r&   test_hash_equality_invariancez,TestTimedeltas.test_hash_equality_invariance  sy     (#-$[11.55  ?22d;K6L6LPTQ
 Q
 7
 7
 7
 7
22 7
 7
r(   c                    t          t           j                  }t          t           j                  }|j        t          dz   k    sJ |j        t
          j        k    sJ |t          dd          z
  t          u sJ d}t          j	        t          |          5  |t          dd          z
   d d d            n# 1 swxY w Y   t          j	        t          |          5  |t          dd          z    d d d            n# 1 swxY w Y   t          |j        dz
  d          }|t          u sJ d}t          j	        t          |          5  t          |j        dz
  d           d d d            n# 1 swxY w Y   d}t          j	        t          |          5  t          |j        dz   d           d d d            d S # 1 swxY w Y   d S )Nr   r   zint too (large|big) to convertr,   rb   zACannot cast -9223372036854775809 from ns to 'ns' without overflowz@Cannot cast 9223372036854775808 from ns to 'ns' without overflow)r   r   r   r   r   r   i8maxr   r/   r0   OverflowErrorr
   )r"   min_tdmax_tdr1   r#   s        r&   test_implementation_limitsz)TestTimedeltas.test_implementation_limits  s   9=))9=)) }q((((}	)))) 1d+++3333.]=444 	( 	(Yq$''''	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( ]=444 	( 	(Yq$''''	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( v}q($//SyyyyQ]/s;;; 	/ 	/fma'...	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ Q]/s;;; 	/ 	/fma'...	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/sH   B88B<?B<C>>DD	E..E25E2F<<G G c                    t          d                                          dk    sJ t          d                                          dk    sJ t          d                                          dk    sJ t          d                                          dk    sJ t          d                                          dz
  d	k     sJ dt          d                                          z
  d	k     sJ d S )
N30Sg      >@0g        z-2Sg       z5.324SgK@g#B;)r   r@   r'  s    r&   test_total_seconds_precisionz+TestTimedeltas.test_total_seconds_precision  s    --//47777~~++--4444--//47777""0022e;;;;%  ..00475@@@@y''557775@@@@@@r(   c                    t          d          j        dk    sJ t          dd          j        dk    sJ t          dd          j        dk    sJ t          dd	          j        d
k    sJ t          dd          j        dk    sJ t          dd          j        dk    sJ t          dd          j        dk    sJ d S )Nr   r   r      r   rA   r9  )r   r   r6  )r   r   r   )r   r6   r2  )r   r5   r  )r   r   r  )r   resolution_stringr'  s    r&   test_resolution_stringz%TestTimedeltas.test_resolution_string  s    a   2c9999aq)));sBBBBa+++=DDDDa+++=DDDDaa000BcIIIIaa000BcIIIIaQ///ASHHHHHHr(   c                     t          dd          }|j        }|t          d          k    sJ t           j        }|t          d          k    sJ d S )N      r  r   )r   )r   r   )r"   r#   r   s      r&   test_resolution_deprecatedz)TestTimedeltas.test_resolution_deprecated  sc    AQ'''q1111111 %q111111111r(   )3rE   rF   rG   r/   markparametrizer   r   r   r   r   r   rt   r   listpdIndexr!  r%  r(  r+  r/  r   rC  rF  rJ  r   stintegersr   r   r  r;  rI  rH  r[  r]  r_  r  r  r  r  xfailsysmaxsizer   r  r  r  r  r  rH   r(   r&   r   r   g  s       [	
 	
 	
 ) ) )- - -) ) )&H$ H$ H$T6 6 6
. . . [..:...
N
N%M
N
N
N	O
 

 
 
	

 
	
 
 
	
6
 

 
 
7)	
T
 

 
 
U:	
v
 

 
 
wK	
N N^ [Y4(BCC" " DC_N N`"> [V___55	' 	' 65	'B B BW W W
# 
# 
# [ 	566	677 	566	677 	566	677
 ))-..		:L0M0MN99.//;M1N1NO99.//;M1N1NO))-..		:L0M0MNII/00))<N2O2OP))-..		:L0M0MN))H%%yy';';</	
 8 9 8	 	 	% % %2 U{r{TAXCCCDDD[9?IOY^D L  L   EDL \ [V%<%<%<==' ' >=') ) )
0 0 0d% % %<  
; ; ;  [L    U|a'C/kS(	
 	
 	
 
s 
t 
 
 
  
/ / />A A AI I I	2 	2 	2 	2 	2r(   r   zvalue, expected10STz-10Sr   r   r   Fr   c                 ,    t          |           |u sJ d S rM   )bool)r   r:   s     r&   test_truthinessr    s!     ;;(""""""r(   c                      t          dd          } | j        dz  }|| j        z  }|dz  }|| j        z  }|dz  }|| j        z  }| j        }||k    sJ d S )Nl   ?2\BT, r   r   r=   r   r   )r   r   r   r5   r   r   )r#   r   r:   s      r&   "test_timedelta_attribute_precisionr    su    	&T	2	2	2BWu_F
bjF
gF
boF
dNF
bnFyHXr(   )%__doc__datetimer   r  
hypothesisr   r   r  numpyrt   r/   pandas._libsr   pandas._libs.tslibsr   r   pandas._libs.tslibs.dtypesr	   pandas.errorsr
   pandasr  r   r   r   pandas._testing_testingr   r   rJ   r   r   r   r  r  r  r  rH   r(   r&   <module>r     s   ! !       



                          7 6 6 6 6 6 . . . . . .             
      G, G, G, G, G, G, G, G,TR+ R+ R+ R+ R+ R+ R+ R+j
J 
J 
J, , , , , , , ,<D
2 D
2 D
2 D
2 D
2 D
2 D
2 D
2N 	5		4 	6		D!	2D	!	!	!4(	14	 	 	 %(	3T	"	"	"D)	4$	d # # #

 
 
 
 
r(   