
    OwgW                     6   d dl mZ d dl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mZmZmZmZmZ d dlmZ  G d d      Zd	 Zd
 Zd Zd Zd Zd Zd Zej:                  j=                  d eddddddddjA                                     ej:                  j=                  dejB                  ejD                  ejF                  ejH                  ejJ                  ejL                  g      d               Z'ej:                  j=                  dg d      d        Z(d Z)ej:                  j=                  dg d       d!        Z*ej:                  j=                  dg d"      d#        Z+ej:                  j=                  d$d% ed&d'd(d)d)d*+      fd, ed-d'd(d)d)d*+      fd. ed/d*d0d12      fd3 ed45      fd6 ed)7      fd8 ed9:      fd; ed9<      fd= ed9d>d?d?2      fd@ ed9A      fdB ed A      fdC edDd E      fdF ed9G      fdH ed9d9I      fdJ edDG      fdK edLA      fdM ed9G      fdN ed-d(O      fdP ed-dQO      fdR ed&dQO      fg      dS        Z,ej:                  j=                  dTg dU      dV        Z-ej:                  j=                  dW edX5      dYf ed9d9d9d9d9d9d9d9Z      d[f ed97       ed95      z   d\f ed97       ed95      z
  d]f ed97      d1 ed^5      z  z   d_fg      d`        Z.da Z/db Z0dc Z1ej:                  j=                  ddedede2dfffedede2dfffeg dgde2dfffg      dh        Z3ej:                  j=                  didjD  cg c]"  }  edk| l      D ]  }dmji                  |       $ c}}       dn        Z5do Z6dp Z7dq Z8yc c}} w )r    )	timedelta)productN)OutOfBoundsTimedelta)NpyDatetimeUnit)IndexNaT	TimedeltaTimedeltaIndexoffsetsto_timedeltac            
          e Zd Zej                  j                  dg d      d        Zej                  j                  dg d      d        Zej                  j                  ddD  cg c]  }|d	f c}} d
D  cg c]  }|df c}} z   dD  cg c]  }|df c}} z   dD  cg c]  }|df c}} z   dD  cg c]  }|df c}} z   dD  cg c]  }|df c}} z   dD  cg c]  }|df c}} z         ej                  j                  dej                  e
eg      d               Zyc c}} w c c}} w c c}} w c c}} w c c}} w c c}} w c c}} w )#TestTimedeltaConstructorUnitKeywordunit)YyMc                 t   d}t        j                  t        |      5  t        d|       d d d        t        j                  t        |      5  t	        d|       d d d        t        j                  t        |      5  t	        ddg|       d d d        y # 1 sw Y   lxY w# 1 sw Y   HxY w# 1 sw Y   y xY w)Nz/Units 'M', 'Y', and 'y' are no longer supportedmatch
         )pytestraises
ValueErrorr	   r   )selfr   msgs      f/var/www/horilla/myenv/lib/python3.12/site-packages/pandas/tests/scalar/timedelta/test_constructors.pytest_unit_m_y_raisesz8TestTimedeltaConstructorUnitKeyword.test_unit_m_y_raises   s    ?]]:S1 	 b$	  ]]:S1 	#T"	# ]]:S1 	'!Q&	' 	'	  	 	# 	#	' 	's#   BB">B.B"B+.B7zunit,unit_depr))hH)minT)sS)msL)nsN)usUc                     d| d}t        d|      }t        j                  t        |      5  t        d|      }d d d        t        j                  |       y # 1 sw Y    xY w)N'8' is deprecated and will be removed in a future version.r   r   r   )r	   tmassert_produces_warningFutureWarningassert_equal)r   r   	unit_deprr   expectedresults         r   !test_units_H_T_S_L_N_U_deprecatedzETestTimedeltaConstructorUnitKeyword.test_units_H_T_S_L_N_U_deprecated#   s^     )TUQT*''SA 	2qy1F	2
)	2 	2s   AA%zunit, np_unit)Wwr8   )DddaysdayDaysDayr:   )mminuter"   minutesMinuteMinMinutesr@   )r$   secondssecsecondSecondsSecSecondr$   )
r&   millisecondsmillisecondmillimillisMSMillisecondsMillisecondMilliMillisr&   )r*   microsecondsmicrosecondmicromicrosuUSMicrosecondsMicrosecondMicroMicrosr+   r*   )r(   nanoseconds
nanosecondnanonanosnNSNanoseconds
NanosecondNanoNanosr)   r(   wrapperc           	         t        t        j                  d      j                         D cg c]  }t        j                  ||       c}d      }d| d}||fdv rt
        }nt
        }d}t        j                  ||      5  t         |t        d            |	      }t        j                  ||       t         |t        d            |	      }t        j                  ||       t        j                  d      D 	cg c]  }	|	 | 
 }
}	t         ||
            }t        j                  ||       t         ||
            }t        j                  ||       t        t        j                  d
|      j                  d            }t        d
|	      }||k(  sJ t        d
|	      }||k(  sJ t        d|       }||k(  sJ t        d|       }||k(  sJ 	 d d d        y c c}w c c}	w # 1 sw Y   y xY w)N   m8[ns])dtyper-   r.   ))rY   r*   )r+   r*   )rc   r(   )r)   r(   z?The 'unit' keyword in TimedeltaIndex construction is deprecatedr   r/   r   ztimedelta64[ns]2)r
   nparangetolisttimedelta64r2   r0   r1   r   rangeassert_index_equalr	   astype)r   r   np_unitri   ir5   r   warnr6   xstr_reprs              r   test_unit_parserz4TestTimedeltaConstructorUnitKeyword.test_unit_parser7   s   d "1311D1D1FGAR^^Aw'G

 $OP'?RR D DSC''C8 	&!'%("3$?F!!&(3#GE!H$5DAF!!&(3.0iil;1#dV;H;!'("34F!!&(3!'("34F!!&(3 !7!;!B!BCT!UVH!!$/FX%%%qt,FX%%%!AdV*-FX%%%4&z*FX%%%-	& 	& H" <	& 	&s%   G&A<G0?G+CG0+G00G9N)__name__
__module____qualname__r   markparametrizer   r7   ro   arraylistr   r{   ).0values   00r   r   r      s   [[V_5
' 6
' [[	

*
* [[#-.%%.%M
NEE3<
N	O
 CL
	
 
 CL
	
8
 DM
5(	
V
 DM
S9	
x
 DM
uJ	
M\ [[Y4(?@%& A]M^%&[ 	/
N



"
s*   (D,;D2D8%D>:EE
$Er   c                      d} t        j                  t        |       5  t        d       d d d        d} t        j                  t        |       5  t        d       d d d        y # 1 sw Y   <xY w# 1 sw Y   y xY w)NzKseconds=86400000000000000000, milliseconds=0, microseconds=0, nanoseconds=0r   i@B r<   zKseconds=60000000000000000000, milliseconds=0, microseconds=0, nanoseconds=0 ʚ;rB   r   r   r   r	   r   s    r   #test_construct_from_kwargs_overflowr      si    
WC	+3	7 u
WC	+3	7 !% ! ! ! !s   A&A2&A/2A;c                      t        j                  t        d      5  t        dd       d d d        t        j                  t        d      5  t        dd       d d d        y # 1 sw Y   ;xY w# 1 sw Y   y xY w)Nzwithout overflowr        NZor8   r/   g NgmCr        r   'test_construct_with_weeks_unit_overflowr      si    	+3E	F 1%C01 
+3E	F 3'c23 31 13 3s   A$A0$A-0A9c                     t        j                  dd      } t        j                  t        d      5  t        | d       d d d        t        j                  t        d      5  t        | d       d d d        t        j                  t        d      5  t        |        d d d        y # 1 sw Y   jxY w# 1 sw Y   ExY w# 1 sw Y   y xY w)Nl    J.mr    z123456789000000000 hoursr   psr/   r(   )ro   rr   r   r   r   r	   )objs    r   "test_construct_from_td64_with_unitr      s     ..+S
1C	+3M	N "#D!" 
+3M	N "#D!" 
+3M	N # " "" " s#   B)#B5C)B25B>C
c                  Z   t        j                  dd      } t        |       }|j                  | j	                  d      k(  sJ |j
                  t        j                  j                  k(  sJ t        j                  dd      }t        |      }|j
                  t        j                  j                  k(  sJ ||k(  sJ |j                  dk(  sJ t        j                  dd      }t        |      }|j                         dk(  sJ |j
                  t        j                  j                  k(  sJ y )	Ni90  r&   i8i  r:   r   r*   l    J))ro   rr   r	   _valueview_cresor   	NPY_FR_msr   NPY_FR_sr<   total_seconds	NPY_FR_us)r   tdobj2td2obj3td3s         r    test_from_td64_retain_resolutionr      s    
..
%C	3B99&&&991177777 >>$$D
D/C::1177777$;;88t >>-t4D
D/C-///::2288888r   c                      t        dd      } t        |       }|j                         | k(  sJ |j                  t        j
                  j                  k(  sJ y )N      )r<   rB   )r   r	   to_pytimedeltar   r   r   r   )r   r6   s     r   test_from_pytimedelta_us_resor      sL    	1	%Br]F  "b(((==O55;;;;;r   c                     t        j                         } t        |       j                  t        j
                  j                  k(  sJ t        j                         } t        |       j                  t        j                  j                  k(  sJ t        j                         } t        |       j                  t        j                  j                  k(  sJ t        j                         } t        |       j                  t        j                  j                  k(  sJ t        j                         } t        |       j                  t        j                  j                  k(  sJ t        j                         } t        |       j                  t        j                  j                  k(  sJ t        j                         } t        |       j                  t        j                  j                  k(  sJ y N)r   rg   r	   r   r   	NPY_FR_nsr   r]   r   rS   r   rK   r   rC   Hourr?   )ticks    r   test_from_tick_resor      sO   <<>DT?!!_%>%>%D%DDDD==?DT?!!_%>%>%D%DDDD==?DT?!!_%>%>%D%DDDD>>DT?!!_%=%=%C%CCCC >>DT?!!_%=%=%C%CCCC<<>DT?!!_%=%=%C%CCCC;;=DT?!!_%=%=%C%CCCCr   c                     t        j                  dd      j                  d      j                  d      } t	        dd      j
                  | k(  sJ t	        dd      j
                  | k(  sJ t	        d      j
                  | k(  sJ t	        d	      j
                  | k(  sJ t	        d	      j
                  | k(  sJ | t        j                  dd
      j                  d      j                  d      z  } t	        d      j
                  | k(  sJ t	        dd      j
                  | k(  sJ t	        dd      j
                  | k(  sJ t	        dd      j
                  | k(  sJ t	        d      j
                  dk(  sJ dt        t	        d            v sJ t	        d      j
                  dk(  sJ dt        t	        d            v sJ t	        d      t        d      k(  sJ t	        d      t        d      k(  sJ t	        d      t        d       k(  sJ t	        d      t        d       k(  sJ t	        d      t        d      k(  sJ t	        d      t        d      k(  sJ t	        d      t        d      k(  sJ t	        d      t        d      k(  sJ t	        d       t        d       k(  sJ t	        d!      t        d"      k(  sJ t	        d#      t        d$%      k(  sJ t	        d&      t        d"      k(  sJ t	        d'      t        d"      k(  sJ t	        d(      t        d%      k(  sJ t	        d)      t        d%      k(  sJ t	        d*      t        d%      k(  sJ t	        d+      t        d,      k(  sJ t	        d-      t        d,      k(  sJ t	        d.      t        d,      k(  sJ t	        d/      t        d0      k(  sJ t	        d1      t        d0      k(  sJ t	        d2      t        d0      k(  sJ t	        d3      t        d0      k(  sJ t	        d4      t	        d5      k(  sJ t	        d6      t	        d7      k(  sJ t	        d8      t	        d7      k(  sJ t	        d9      t	        d7      k(  sJ t	        d:      t        dd;      k(  sJ t	        d<      t        dd;      k(  sJ t	        d=      t        dddd>      k(  sJ t	        d?      t        dddd>       k(  sJ t	        d?      t        dddd>       k(  sJ t	        d@      t        dddddAB       k(  sJ t	        dC      t        ddddDdAB       k(  sJ dE}t        j                  t        |F      5  t	        dG       d d d        t        j                  t        |F      5  t	        dH       d d d        dI}t        j                  t        |F      5  t	        dJ       d d d        dK}t        j                  t        |F      5  t	                d d d        dL}t        j                  t        |F      5  t	        dM       d d d        dN}t        j                  t        |F      5  t	        dO       d d d        t        j                  dd
      j                  d      j                  d      t        j                  dPdQ      j                  d      j                  d      z   } t	        dRd
      j
                  | k(  sJ t        t        j                  dS            t	        dS      k(  sJ t	        t        j                  dS            t	        dS      k(  sJ t	        t        j                  dS            t	        dS%      k(  sJ t	        dT      } t	        dT      }|| k(  sJ t        t        j                  dS            t	        dU      k(  sJ dL}t        j                  t        |F      5  t	        dV       d d d        y # 1 sw Y   xY w# 1 sw Y   bxY w# 1 sw Y   >xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   y xY w)WNr   r:   rl   r   r;   r/   g      $@z10 daysr   r$   z10 days 00:00:10r<   rF   i'  )r<   rL   i )r<   rU   l   >P- z0 days 22:58:59.999850l   @B]? z1 days 10:11:12.001z0:00:00r   )hoursz00:00:00z-1:00:00r   z	-01:00:00z1 hz1 hourz1 hrz1 hoursz-1 hoursz1 mr   z1.5 mZ   rF   1 minutez	1 minutesz1 sz1 secondz	1 secondsz1 msrL   z1 milliz1 millisecondz1 usrU   u   1 µsz1 microsz1 microsecondz1.5 microsecondz00:00:00.000001500z1 nsz00:00:00.000000001z1 nanoz1 nanosecondz10 days 1 hourr<   r   z10 days 1 hz10 days 1 h 1m 1sr<   r   rB   rF   z-10 days 1 h 1m 1sz-10 days 1 h 1m 1s 3usr   )r<   r   rB   rF   rU   z-10 days 1 h 1.5m 1s 3us   'only leading negative signs are allowedr   z-10 days -1 h 1.5m 1s 3usz10 days -1 h 1.5m 1s 3uszno units specifiedz3.1415zcannot construct a Timedeltazunit abbreviation w/o a numberfoozMcannot construct a Timedelta from the passed arguments, allowed keywords are )r=   i  r&   g      %@r   1hz0 days, 02:00:00zfoo bar)ro   rr   ru   r   r	   r   strr   r   r   r   r   r   r   rK   )r5   r   r6   s      r   test_constructionr     s   ~~b#&--h7<<TBHRc"))X555T$++x777Y&&(222"$$000$&&(222r3'..x8==dCCH'(//8;;;"b)00H<<<"95<<HHH"+;<CCxOOO ^$++~===#s9^+D'EEEE_%,,??? C	/(B$CCCC Y91#5555Z IA$6666Z YQ%7$7777[!ia&8%8888 Uyq1111X)!"4444V	 2222Y91#5555Z YQ%7$7777Uy3333W2!6666Z Ia$8888[!Yq%9999Uy3333Z Ia$8888[!Yq%9999V	q 9999Y9!#<<<<_%)BBBBV	q 9999W!::::Z I1$====_%)BBBB&'95I+JJJJV	*> ????X),@"AAAA^$	2F(GGGG %&)1*EEEE]#yb'BBBB()Yq!Q.    )*yq!Q0 /    )*yq!Q0 /    -.9q!QQ4 3    /0Yq!Ra6 5    4C	z	- /-./ 
z	- .,-. C	z	- ( )C	z	-  +C	z	- %	6  
z	- b ~~b#&--h7<<TBR^^TFfXttDz"H T$++x777 Q(IA,>>>>W\\!_%);;;;W^^A&'9Q+???? Ht_FXQ(I6H,IIII
*C	z	- ) ]/ /. .
 
   * sT   -_;``>`".`/`<&a	;```"`,/`9<a	aitemr:   r$   r*   r&   r@   r    r8   )r<   rF   rU   rL   rB   r   weeksnpdtypec                     |\  }}t        j                  d|      j                  d      j                  d      }t	        di | | d      ij
                  |k(  sJ y )Nr   rl   r   r   )ro   rr   ru   r   r	   r   )r   r   pykwargnpkwargr5   s        r   #test_td_construction_with_np_dtypesr     sY    & GW~~a)00:??EH-,-44@@@r   val)1sz-1s1usz-1usz1 dayz-1 dayz-23:59:59.999999z-1 days +23:59:59.999999z-1ns1nsz-23:59:59.999999999c                     t        |       }t        |j                        |k(  sJ t        t        |            |k(  sJ t        |j                  d            |k(  sJ t        |j                               |k(  sJ y )Nall)format)r	   r   r   
_repr_base)r   r   s     r   test_td_from_repr_roundtripr     sr    $ 
3BRYY2%%%SW###R]]%]01R777R]]_%+++r   c                     t        d      j                  dz  } d}t        j                  t        |      5  t        |        d d d        d}t        j                  t        |      5  t        dd       d d d        t        t        d	
            }|j                  t        j                  j                  k(  sJ |j                  d	k(  sJ y # 1 sw Y   xY w# 1 sw Y   exY w)N1dayi3zCCannot cast 1742682816000000000000 from ns to 'ns' without overflowr   z2Cannot cast 139993 from D to 'ns' without overflowi" r:   r/   i r   )r	   r   r   r   r   r   r   r   r   r   r<   )r   r   r   s      r   test_overflow_on_constructionr     s    f$$x/E
OC	+3	7 % ?C	+3	7 ')#&' 
9*-	.B99117777777j    
' 's   C'CCC"z	val, unit))i;  r8   )i  r:   )i ' r    )i)	r@   )l   }K r$   c                    t        j                  | |      }|j                  d      j                  d      dk  sJ t	        |      }|dk7  r|j
                  |k(  sJ |j
                  j                  dk(  sJ d}t        j                  t        |      5  |j                  d       d d d        t	        |d	z
        |d	z
  k(  sJ |d
z  }|j                  d      j                  d      dkD  sJ t	        |      }d}t        j                  t        |      5  |j                  d       d d d        t	        |d	z         |d	z   k(  sJ y # 1 sw Y   xY w# 1 sw Y   ,xY w)Nrl   r   r   r   zm8[s]z:Cannot cast 1067\d\d days .* to unit='ns' without overflowr   r(   r   z;Cannot cast -1067\d\d days .* to unit='ns' without overflow)ro   rr   ru   r   r	   asm8rm   r   r   r   as_unit)r   r   td64r   r   r   s         r   &test_construction_out_of_bounds_td64nsr     sF    >>#t$D;;x %%d+a///	4Bs{ ww$77==G###
GC	+3	7 


4 TAX$(***BJD;;x %%d+a///
D/C
HC	+3	7 D TAX$(***  s   EEEE))l    ~L{7r8   )l     F\ r:   )l     hH r    )l    r@   c                     t        j                  | |      }t        j                  t        t        |            5  t        |       d d d        t        |dz
        |dz
  k(  sJ y # 1 sw Y    xY w)Nr   r   )ro   rr   r   r   r   r   r	   )r   r   r   s      r   %test_construction_out_of_bounds_td64sr     s`     >>#t$D	+3t9	= $ TE\"dUl222	 s   A&&A/zfmt,expzP6DT0H50M3.010010012S   2   r   r      )r<   rB   rF   rL   rU   r_   zP-6DT0H50M3.010010012SiP4DT12H30M5Sr      rk   r   zP0DT0H0M0.000000123S{   r_   zP0DT0H0M0.00001Sr   zP0DT0H0M0.001Sr   r   
P0DT0H1M0Sr   P1DT25H61M61S   =   PT1Sr   PT0SP1WT0S   r   P1Dr   P1DT1Hr   P1WPT300Si,  P1DT0H0M00000000000SzPT-6H3M)r   rB   z-PT6H3Mz	-PT-6H+3Mc                 $    t        |       |k(  sJ y r   r	   )fmtexps     r   test_iso_constructorr     s    Z S>S   r   r   )PPPPPPPPPPPPPDTHMSP0DT999H999M999SzP1DT0H0M0.0000000000000SzP1DT0H0M0.SPz-Pc                     d|  }t        j                  t        |      5  t        |        d d d        y # 1 sw Y   y xY w)Nz#Invalid ISO 8601 Duration format - r   r   r   r   r	   )r   r   s     r   test_iso_constructor_raisesr   4  s:     0u
5C	z	- #  s   6?zconstructed_td, conversiond   100ns)r<   r   rB   r   rF   rL   rU   r_   l   )D^_ 1us1ns999ns990nsc                 $    | t        |      k(  sJ y r   r   )constructed_td
conversions     r   "test_td_constructor_on_nanosecondsr  F  s    0 Yz2222r   c                      d} t        j                  t        |       5  t        d       d d d        y # 1 sw Y   y xY w)Nz1Invalid type <class 'str'>. Must be int or float.r   abcr   )r   r   	TypeErrorr	   r   s    r   test_td_constructor_value_errorr  a  s2    
=C	y	, %e$% % %s   4=c                  d    t        t        j                  dd            } t        |       }|| u sJ y )Nr   r$   )r	   ro   rr   )r5   r6   s     r   #test_timedelta_constructor_identityr
  g  s/    3/0Hx FXr   c                      t        d      } d}t        j                  t        |      5  t        | d       d d d        y # 1 sw Y   y xY w)Nr   r   zRCannot pass both a Timedelta input and timedelta keyword arguments, got \['days'\]r   r   )r	   r   r   r   )r   r   s     r   (test_timedelta_pass_td_and_kwargs_raisesr  n  sE    		B	  
z	- "1  s   AA
z%constructor, value, unit, expectation10szunit must not be specified)1r   r   c                 z    |\  }}t        j                  ||      5   | ||      }d d d        y # 1 sw Y   y xY w)Nr   r/   )r   r   )constructorr   r   expectationr   r   _s          r   test_string_with_unitr  y  s<     JC	s%	( *D)* * *s   1:r   )r   r   z+-, )repeat c                     | dk7  rdnd}t        j                  t        |      5  t        |        d d d        y # 1 sw Y   y xY w)Nz--zsymbols w/o a numberr   r   r   )r   r   s     r   test_string_without_numbersr    sE     D= 	6 
 
z	- %  s	   :Ac                  V    t        j                  dd      } t        |       t        u sJ y )Nr   r    )ro   rr   r	   r   )nats    r   test_timedelta_new_npnatr    s$    
..
$CS>S   r   c                  N     G d dt               }  | d      }t        ||       sJ y )Nc                       e Zd Zy)2test_subclass_respected.<locals>.MyCustomTimedeltaN)r|   r}   r~   r   r   r   MyCustomTimedeltar    s    r   r  r   )r	   
isinstance)r  r   s     r   test_subclass_respectedr     s+    I  
:	&Bb+,,,r   c                  Z   t        dd      j                  d      j                  } | dk(  sJ d}t        dd      j                  d      dz  }t        j                  t
        |      5  |j                   d d d        |j                  j                  d	      } | d
k(  sJ y # 1 sw Y   ,xY w)Nr   r:   r/   r$   l     ,Z6G zCannot convert Timedelta to nanoseconds without overflow. Use `.asm8.view\('i8'\)` to cast represent Timedelta in its own unit \(here, s\).$i  r   r   l    `;P )r	   r   r   r   r   OverflowErrorr   r   )r6   r   r   s      r   test_non_nano_valuer#    s    r$,,S177F_$$$	" 
 
5#		&	&s	+e	3B	}C	0 
 WW\\$F[   	 s   )B!!B*)9datetimer   	itertoolsr   numpyro   r   pandas._libs.tslibsr   pandas._libs.tslibs.dtypesr   pandasr   r   r	   r
   r   r   pandas._testing_testingr0   r   r   r   r   r   r   r   r   r   r   r   itemsint64int32int16float64float32float16r   r   r   r   r   r   r   r  r  r
  r  r   r  joinr  r  r   r#  )
repetitionelementss   00r   <module>r6     s       4 6  V& V&r!39,<D0zz 
  	
 %'
 "((BHHbjj"**bjjQA"A 	 ,! ,!$ 	+	+B 33  $
	
 %
	
 
RKL	s!;<	YB78	9!45	y+,	)"b"MN	1%&	1%&	9!Q/0		q!"	9!1-.		q!"	9S)*	!23	IB23	IB34	ia45O(+X!Y+X! 	  	s	#W-	 	
 
	"Y1%=	=xH		"Y1%=	=wG		"Qr)B%B	BGL#,3-,3
% +	E4*.J!KL	udZ1M$NO	{C*6R)ST**  !z:  	!-!As   'N