
    i                     h    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
 d dlmZ d dlmZ  G d d      Zy)	    )given
strategiesN)lib)iNaT)OutOfBoundsTimedelta)	Timedeltac                   t   e Zd Zej                  j                  dg d      d        Zd Zd Zej                  j                   e
 ej                  edz   ej                              ej                  j                  d	ej"                  ej$                  ej&                  g      d
                      Zd Zy)TestTimedeltaRoundz
freq,s1,s2)
)ns1 days 02:34:56.789123456-1 days 02:34:56.789123456)usz1 days 02:34:56.789123000z-1 days 02:34:56.789123000)msz1 days 02:34:56.789000000z-1 days 02:34:56.789000000)s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)min1 days 02:35:00z-1 days 02:35:00)12minz1 days 02:36:00z-1 days 02:36:00)hz1 days 03:00:00z-1 days 03:00:00)Dz1 daysz-1 daysc                     t        |      }t        |      }t        d      }t        d      }|j                  |      }||k(  sJ |j                  |      }||k(  sJ y )Nr   r   )r   round)selffreqs1s2t1t2r1r2s           m/app/cer_product_mecsu/.venv/lib/python3.12/site-packages/pandas/tests/scalar/timedelta/methods/test_round.py
test_roundzTestTimedeltaRound.test_round   s\    : r]r]2334XXd^RxxXXd^Rxx    c                     t        d      }dD ]:  \  }}t        j                  t        |      5  |j	                  |       d d d        < y # 1 sw Y   GxY w)Nr   ))YEz,<YearEnd: month=12> is a non-fixed frequency)MEz#<MonthEnd> is a non-fixed frequency)foobarzInvalid frequency: foobarmatch)r   pytestraises
ValueErrorr   )r   r   r   msgs       r#   test_round_invalidz%TestTimedeltaRound.test_round_invalid7   sW    23
 	ID#
 z5  	
 s   AA	c                    t         j                  j                  d      }t         j                  t        d      z   t        d      z
  }||k(  sJ t         j                  j	                  d      }t         j                  t        d      z
  }||k(  sJ d}t        j                  t        |      5  t         j                  j	                  d       d d d        t        j                  t        |      5  t         j                  j                  d       d d d        d}t        j                  t        |      5  t         j                  j                  d       d d d        t        j                  t        |      5  t         j                  j                  d       d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   exY w# 1 sw Y   y xY w)	Nr      )secondsi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   ceilmaxfloorr,   r-   r   r   )r   resultexpectedr/   s       r#    test_round_implementation_boundsz3TestTimedeltaRound.test_round_implementation_boundsB   sj    ##C(==9Q#77)I:NN!!!$$S)==9Y#77!!! Y 	 ]]/s; 	%MM$	%]]/s; 	%MM$	% W]]/s; 	$MMs#	$]]/s; 	%MM$	% 	%	% 	%	% 	%	$ 	$	% 	%s0   / F#2 F/7 F;: G#F,/F8;GGr2   )	min_value	max_value)valmethodc                    t         t        t        j                  |      } |      }fd}d} |||d       d} |||d       d} |||d       d} |||d	       d
} |||d       d} |||d       d} |||d       y )Nc                    |dk(  rnt        | j                  |      \  }}t        ||z
        }| j                  |z
  }|| j                  k  sJ | j                  |z   }|| j                  kD  sJ d}|dk(  rn.j                  u rD|j                  j                  kD  rt        j                  |      5   | |       d d d        y j                  u rC|j                  j                  k  rt        j                  |      5   | |       d d d        y ||k\  rC|j                  j                  kD  rmt        j                  |      5   | |       d d d        y |j                  j                  k  r*t        j                  |      5   | |       d d d        y  | |      }	|	| z
  }
t        |
j                        }||k  sJ |	j                  |z  dk(  sJ j                  u r||dz  k  sJ y j                  u r|	| k  sJ y j                  u r|	| k\  sJ y y # 1 sw Y   y xY w# 1 sw Y   y xY w# 1 sw Y   y xY w# 1 sw Y   y xY w)Nr2   zwithout overflowr   r*      )divmod_valueintr4   r5   r,   r-   r6   r   absr   )tsnanosunitdivmoddifflbubr/   restdclserr_clsr=   s              r#   checkerz5TestTimedeltaRound.test_round_sanity.<locals>.checkerg   s(   z!"))U3S53;'YY_RYY&YY%BII~%~(!8sxx'CGGNN*#]]7#> -"2t,-syy(CGGNN*#]]7#> -"2t,-D[CGGNN*#]]7#> -"2t,-#''..(wc: )r4()T"CrBryy>D%<<::%***"uqy(((399$by y388#by y $;---)s0   8
H+	
H7
I
I+H47I IIr2   r   i  r   i@B r   i ʚ;r   l    Xp7 r   l     qar   l     "R: r   )r   r   npint64)r   r<   r=   rN   rQ   rF   rO   rP   s     `   @@r#   test_round_sanityz$TestTimedeltaRound.test_round_sanity[   s     &hhsmX0	!d E4 E4 E4 E3"E5!'E3,E3r%   c                    t        d      j                  |      }|j                  d      }|t        d      k(  sJ |j                  |j                  k(  sJ |j	                  d      }|t        d      k(  sJ |j                  |j                  k(  sJ |j                  d      }|t        d      k(  sJ |j                  |j                  k(  sJ y )Nr   r   r   z1 days 02:34:00)r   as_unitr   _cresor6   r4   )r   rG   rN   rM   s       r#   test_round_non_nanoz&TestTimedeltaRound.test_round_non_nano   s    ()11$7hhuoi 12222zzRYY&&&hhuoi 12222zzRYY&&&ggeni 12222zzRYY&&&r%   N)__name__
__module____qualname__r,   markparametrizer$   r0   r9   slowr   stintegersr   r   i8maxr   r   r6   r4   rT   rX    r%   r#   r
   r
      s    [[	
8	98		%2 [[
{r{{TAXCD[[9??IOOY^^DL  E 
L \'r%   r
   )
hypothesisr   r   r_   numpyrR   r,   pandas._libsr   pandas._libs.tslibsr   pandas.errorsr   pandasr   r
   rb   r%   r#   <module>ri      s*       $ . l' l'r%   