
    Mh                     X    S SK r S SKJr  S SKJr  S SKJrJrJr  S SK	J
r   " S S5      rg)    N)	to_offset)INVALID_FREQ_ERR_MSG)DatetimeIndex	Timestamp
date_rangec                      \ rS rSrS r\R                  R                  S/ SQ5      S 5       rS r	S r
S rS	 rS
 r\R                  R                  SS/SSS/4S/SSS/4S/SSS/4S/SSS/4S/SSS/4S/SSS/4S/SSS/4S/SSS/4S/SSS/4S/SSS/4SS/5      S 5       r\R                  R                  SSS /5      \R                  R                  S!/ S"Q5      S# 5       5       rS$rg%)&TestDatetimeIndexRound   c                    [        SSS9nUR                  S5      n[        SSS9n[        R                  " X#5        UR	                  S5      R                  S5      nUR                  S5      n[        SSS9R	                  S5      n[        R                  " X#5        UR                  S5      n[        R                  " X!5        g )	N20130101 09:10:11   periodsD20130101UTC
US/Easterns)r   roundtmassert_index_equaltz_localize
tz_convert)selfdtiresultexpecteds       c/var/www/html/env/lib/python3.13/site-packages/pandas/tests/indexes/datetimes/methods/test_round.pytest_round_daily'TestDatetimeIndexRound.test_round_daily   s    ,a83j!4
f/ooe$//=3j!4@@N
f/3
f*    zfreq, error_msg))YEz,<YearEnd: month=12> is a non-fixed frequency)ME#<MonthEnd> is a non-fixed frequency)foobarzInvalid frequency: foobarc                     [        SSS9nUR                  S5      R                  S5      n[        R                  " [
        US9   UR                  U5        S S S 5        g ! , (       d  f       g = f)Nr   r   r   r   r   match)r   r   r   pytestraises
ValueErrorr   )r   freq	error_msgr   s       r   test_round_invalid)TestDatetimeIndexRound.test_round_invalid   sO     ,a8ooe$//=]]:Y7IIdO 877s   A
A-c                 V   Un[        SSSX2S9nUS   n[        [        SUS9[        SUS9[        SUS9[        S	US9[        S	US9/5      R                  U5      nUS   nUR	                  S
S9n[
        R                  " X5        UR	                  S
S9U:X  d   e[        n	[        R                  " [        U	S9   UR	                  SS9  S S S 5        [        R                  " [        U	S9   UR	                  SS9  S S S 5        Sn	[        R                  " [        U	S9   UR	                  SS9  S S S 5        [        R                  " [        U	S9   UR	                  SS9  S S S 5        g ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       Nb= f! , (       d  f       g = f)N
2016-01-01r   30Min)startr   r,   tzunit   2016-01-01 00:00:00r4   z2016-01-01 01:00:00z2016-01-01 02:00:00hr,   r'   foor$   r#   )r   r   r   as_unitr   r   r   r   r)   r*   r+   )
r   tz_naive_fixturer5   r4   rngeltexpected_rngexpected_eltr   msgs
             r   
test_round!TestDatetimeIndexRound.test_round+   si   |QWW!f$/B7/B7/B7/B7/B7
 '$- 	 $A$
f3yycy"l222"]]:S1II5I! 2]]:S1II5I! 2 4]]:S1II4I  2]]:S1II4I  21 2111 2111s0   9E'*E8F	F'
E58
F	
F
F(c                    Un[        S/US9R                  S5      nUR                  S5      n[        S/US9R                  S5      n[        R                  " XE5        S H(  n[        R                  " X3R                  U5      5        M*     g )Nz2016-10-17 12:00:00.0015r8   nsmsz2016-10-17 12:00:00.002000)usrF   r   r<   r   r   r   )r   r=   r4   indexr   r   r,   s          r   test_round2"TestDatetimeIndexRound.test_round2K   s{    9:rBJJ4PT" ">!?BGOOPTU
f/ D!!%T):; !r!   c                     Un[        S/US9R                  S5      nUR                  S5      n[        S/US9R                  S5      n[        R                  " XE5        g )Nz2016-10-17 12:00:00.00149r8   rF   rG   z2016-10-17 12:00:00.001000rI   )r   r=   r4   rJ   r   r   s         r   test_round3"TestDatetimeIndexRound.test_round3V   sZ    :;CKKDQT" ">!?BGOOPTU
f/r!   c                    [        S/SS9nUR                  S5      n[        S/SS9n[        R                  " X45        Sn[        U/SS9n[        R                  " S5         UR                  S5        S S S 5        g ! , (       d  f       g = f)Nz2016-10-17 12:00:00.001501031zM8[ns])dtype10nsz2016-10-17 12:00:00.001501030F1010ns)r   r   r   r   assert_produces_warning)r   r=   rJ   r   r   tsr   s          r   test_round4"TestDatetimeIndexRound.test_round4]   sw    >?xPV$ "A!B(S
f/,RD1''.IIh /..s   !A<<
B
c                     Un[        SSSUS9n[        [        SUS9[        SUS9[        SUS9[        S	US9[        S
US9/5      R                  S5      nUR	                  SS9n[
        R                  " XT5        g )Nr1   r   2Min)r3   r   r,   r4   r7   r8   z2016-01-01 00:02:00z2016-01-01 00:04:00z2016-01-01 00:06:00z2016-01-01 00:08:00rF   2minr:   )r   r   r   r<   r   r   r   )r   r=   r4   r>   r@   r   s         r   test_no_rounding_occurs.TestDatetimeIndexRound.test_no_rounding_occursh   s    |QVK$/B7/B7/B7/B7/B7
 '$- 	 '
f3r!   z#test_input, rounder, freq, expectedz2117-01-01 00:00:45floor15sceilz2117-01-01 00:00:45.000000012rR   z2117-01-01 00:00:45.000000010z1823-01-01 00:00:01.000000012z1823-01-01 00:00:01.0000000201823-01-01 00:00:011sz2018-01-01 00:15:0015minz1823-01-01 03:00:003h)NaTr`   r]   ra   rd   )rd   r_   ra   rd   c                     [        [        U5      5      n[        XR5      nU" U5      n[        [        U5      5      nUR                  U5      (       d   eg )N)r   listgetattrequals)r   
test_inputrounderr,   r   dtfuncr   s           r   test_ceil_floor_edge+TestDatetimeIndexRound.test_ceil_floor_edgez   sJ    L 4
+,r#d h0v&&&&r!   zstart, index_freq, periods)z
2018-01-0112h   )z2018-01-01 0:0:0.1249991nsi  
round_freq)2ns3ns4ns5ns6ns7ns250ns500ns750ns1us19us250us500us750usra   2s3srp   1Dc                    [        XUS9n[        U5      R                  nUR                  U5      nUR                  UR                  -
  nUR                  U-  n	U	S:H  R                  5       (       d   SU S35       eSU:*  R                  5       (       a  X:  R                  5       (       d   S5       eUR                  U5      nUR                  UR                  -
  nUR                  U-  n	U	S:H  R                  5       (       d   SU S35       eSU:*  R                  5       (       a  X:  R                  5       (       d   S5       eUR                  U5      n[        UR                  UR                  -
  5      nUR                  U-  n	U	S:H  R                  5       (       d   SU S35       eXS	-  :*  R                  5       (       d   S
5       eUS	-  S:X  a5  UR                  XS	-  :H     S	-  S:H  R                  5       (       d   S5       eg g )N)r3   r,   r   r   zfloor not a z	 multiplezfloor errorzceil not a z
ceil errorzround not a    zround errorzround half to even error)	r   r   nanosr]   asi8allr_   r   abs)
r   r3   
index_freqr   rs   rl   r5   r   diffmods
             r   test_round_int64'TestDatetimeIndexRound.test_round_int64   s   : egF$** *%ww$kkD q~~E<
|9!EET	  dk%6%6%8%8G-G8 ${{RWW$kkD q~~D;zl)!DDT	  dk%6%6%8%8F,F8 *%6;;()kkD q~~E<
|9!EE	!&&((7-7(!8q=DAI-.2a7ce 0/0  r!    N)__name__
__module____qualname____firstlineno__r   r)   markparametrizer.   rC   rK   rN   rV   r[   rn   r   __static_attributes__r   r!   r   r	   r	      s   + [[	
!@	<0	 4$ [[-#$gu7L6MN#$fe6K5LM0101	 1101	 $$gt6K5LM#$fd5J4KL#$fg8M7NO#$gw9N8OP#$fd5J4KL#$gt6K5LM7!	
$J'K$J' [[$	"$LM [[	
001	80r!   r	   )r)   pandas._libs.tslibsr   pandas._libs.tslibs.offsetsr   pandasr   r   r   pandas._testing_testingr   r	   r   r!   r   <module>r      s)     ) < 
 O0 O0r!   