
    Mh                       S r SSKJr  SSKJrJr  SSKrSSKrSSKJ	r	J
r
JrJrJr  SSKJs  Js  Jr  SSKJrJrJr  SSKJr  SSKJr  SS	KJrJrJrJr  SSKJ r!  SS
K"J#r#  SSK$Jr  SSK%J&r&J'r'J(r(J)r)J*r*J+r+J,r,J-r-J.r.J/r/J0r0J1r1J2r2J3r3J4r4J5r5J6r6  / SQr7ScS jr8\Rr                  " \Rt                   V s/ s H5  n \;" \<" \U 5      \Rz                  5      (       d  M$  U S:w  d  M,  \<" \U 5      PM7     sn S9S 5       r>\Rr                  " \Rt                   V s/ s H  o S;  d  M
  \<" \U 5      PM     sn S9S 5       r?\Rr                  S 5       r@\Rr                  S 5       rA " S S5      rB " S S5      rC " S S5      rDS rES rF " S S 5      rGS! rH " S" S#5      rIS$ rJ\R                  R                  S%\M" \R                  5      5      S& 5       rOS' rP\R                  R                  S%\M" \R                  5      5      S( 5       rQ\R                  R                  S%\M" \R                  5      5      S) 5       rRS* rSS+ rTS, rU\R                  R                  S-S.S0S/4S.S00S14S.S20S34S4S0S54S4S20S64S7S0S84S7S20S94S:S0S;4S:S20S<4S=S0S>4S=S20S?4S@S0SA4S@S20SB4SCS0SD4SCS20SE4SFS0SG4SFS20SH4SIS0SJ4SIS20SK4/5      SL 5       rVSM rW\R                  R                  SN/ SOQ5      SP 5       rXSQ rY\R                  R                  SR/ SSQ5      ST 5       rZ\R                  R                  SU\." SVSWSX9\" SY5      4\." SZS[9\" S\5      4/5      S] 5       r[\R                  R                  S^/ S_Q5      S` 5       r\Sa r]Sb r^gs  sn f s  sn f )dz!
Tests of pandas.tseries.offsets
    )annotations)datetime	timedeltaN)NaT	Timedelta	Timestamp
conversion	timezones)_get_offset_offset_map	to_offset)INVALID_FREQ_ERR_MSG)PerformanceWarning)	DataFrameDatetimeIndexSeries
date_range)WeekDay)offsets)FY5253BDay	BMonthEndBusinessHourCustomBusinessDayCustomBusinessHourCustomBusinessMonthBeginCustomBusinessMonthEnd
DateOffsetEasterFY5253QuarterLastWeekOfMonth
MonthBeginNanoTickWeekWeekOfMonth)	yearsmonthsweeksdayshoursminutessecondsmillisecondsmicroseconds   c           	         U [         L a  U " USSSUS9n U $ U [        L a  U " USSSSUS9n U $ U [        L a
  U " USUS9n U $ U [        L a  U " USSUS9n U $ U [        L a
  U " USUS9n U $ U [
        L a  U " XS9n U $ U " XS	9n U $ )
Nr0   last)nstartingMonthweekday	variation	normalize)r3   r4   r5   qtr_with_extra_weekr6   r7      )r3   r5   r7   )r3   weekr5   r7   )r*   r7   r7   )r   r    r!   r&   r%   r   )klassvaluer7   s      [/var/www/html/env/lib/python3.13/site-packages/pandas/tests/tseries/offsets/test_offsets.py_create_offsetr?   I   s    
4 L' 
-	 !
$ L 
/	!qI> L 
+	AqIF L 
$qI>
 L	 
*	56 L e1L    MonthOffset)paramsc                    U R                   $ )zG
Fixture for month based datetime offsets available for a time series.
paramrequests    r>   month_classesrH   i   s     ==r@   )r$   
BaseOffsetc                    U R                   $ )zC
Fixture for all the datetime offsets available for a time series.
rD   rF   s    r>   offset_typesrK   x   s     ==r@   c                 .    [        [        SSS5      5      $ )N  r0      )r   r    r@   r>   dtrP      s    XdAq)**r@   c                 :   0 S[        S5      _S[        S5      _S[        S5      _S[        S5      _S[        S5      _S	[        S5      _S
[        S5      _S[        S5      _S[        S5      _S[        S5      _S[        S5      _S[        S5      _S[        S5      _S[        S5      _S[        S5      _S[        S5      _S[        S5      _0 S[        S5      _S[        S5      _S[        S5      _S[        S 5      _S![        S 5      _S"[        S#5      _S$[        S%5      _S&[        S'5      _S([        S'5      _S)[        S#5      _S*[        S+5      _S,[        S-5      _S.[        S/5      _S0[        S15      _S2[        S35      _S4[        S55      _S6[        S75      _E$ )8NDayz2011-01-02 09:00:00r   BusinessDay2011-01-03 09:00:00r   r   z2011-01-31 09:00:00r   r"   z2011-02-01 09:00:00BusinessMonthBeginMonthEndSemiMonthEndz2011-01-15 09:00:00SemiMonthBeginBusinessMonthEnd	YearBeginz2012-01-01 09:00:00
BYearBeginYearEndz2011-12-31 09:00:00BYearEndz2011-12-30 09:00:00QuarterBeginz2011-03-01 09:00:00BQuarterBegin
QuarterEndz2011-03-31 09:00:00BQuarterEndr   z2011-01-03 10:00:00r   r&   z2011-01-08 09:00:00r!   z2011-01-29 09:00:00r    z2011-01-25 09:00:00r   r%   r   z2011-04-24 09:00:00Hourz2011-01-01 10:00:00Minutez2011-01-01 09:01:00Secondz2011-01-01 09:00:01Milliz2011-01-01 09:00:00.001000Microz2011-01-01 09:00:00.000001r#   z2011-01-01T09:00:00.000000001)r   rO   r@   r>   	expectedsrg      sr   
#y./#i 56# 	y!67# 	Y'<=	#
 	!),A"B# 	#I.C$D# 	i 56# 	i(=># 	I34# 		"78# 	)$9:# 	I&;<# 	Y45# 	i 56# 	923#  	I34!#" 		"78##$ 	#89%#& 	i 56'#( 	y!67)#* 		"78+#, 	i(=>-#. 	y!67/#0 	9%:;1#2 	#893#4 	)125#6 		/07#8 	)129#: 		/0;#< 	)12=#> 	)12?#@ 	78A#B 	78C#D 		9:E# #r@   c                      \ rS rSrS rS rS rS rS rS r	SS jr
S	 rS
 rS rS rS rS rS rS rS r\R*                  R-                  S5      \R*                  R/                  S/ SQ5      S 5       5       rSrg)
TestCommon   c                   [        U5      nSn[        R                  " [        US9   SUl        S S S 5        [        R                  " [        US9   SUl        S S S 5        g ! , (       d  f       N8= f! , (       d  f       g = f)Nz8objects is not writable|DateOffset objects are immutablematchT[   )r?   pytestraisesAttributeErrorr7   r3   )selfrK   offsetmsgs       r>   test_immutableTestCommon.test_immutable   sY    -H]]>5#F 6]]>5FH 65 6555s   A!A2!
A/2
B c                   [        U5      n[        S5      U-   n[        U[        5      (       d   e[        U-   [        L d   eU[        -   [        L d   e[        U-
  [        L d   eU* R	                  [        5      [        L d   eg )N20080101)r?   r   
isinstancer   _apply)rr   rK   rs   results       r>   test_return_typeTestCommon.test_return_type   s    - :&/&),,,, V|s"""|s"""V|s"""$+++r@   c                    [        U5      nUR                  S:X  d   eUS-  nUR                  S:X  d   eUS-  nUR                  S:X  d   eg )Nr0      )r?   r3   )rr   rK   rs   
neg_offset
mul_offsets        r>   test_offset_nTestCommon.test_offset_n   sR    -xx1}}b[
||r!!!aZ
||q   r@   c                    [        U5      n[        R                  " SS5      n[        R                  " [
        SS9   [        U5      " SSU0UR                  D6  S S S 5        g ! , (       d  f       g = f)Ni  sargument must be an integerrl   r3   rO   )r?   nptimedelta64ro   rp   	TypeErrortypekwds)rr   rK   offtd64s       r>   test_offset_timedelta64_arg&TestCommon.test_offset_timedelta64_arg   sR     \*~~dC(]]9,IJI))) KJJs   A##
A1c                6   [        U5      n[        R                  " X"S-  /US-  US-  //5      n[        R                  " SS/SS//5      U-  n[        R                  " XC5        U[        R                  " SS/SS//5      -  n[        R                  " XC5        g )NrN   r      r0   )r?   r   arraytmassert_numpy_array_equal)rr   rK   r   expectedr{   s        r>   test_offset_mul_ndarray"TestCommon.test_offset_mul_ndarray   s    \*88c7^cAgsQw-?@AAq6Aq6*+c1
##F5rxx!Q!Q 011
##F5r@   c                z    [        U5      nUR                  nUS;  a  [        U5      nUR                  U:X  d   eg g )N)z<Easter>z<DateOffset: days=1>zLWOM-SAT)r?   freqstrr   	rule_code)rr   rK   rs   r   codes        r>   test_offset_freqstrTestCommon.test_offset_freqstr   sB    -..JJw'D##t+++ Kr@   c                   U(       a  [        U[        5      (       a  g [        XS9n[        Xb5      nU" U5      n[	        U[
        5      (       d   eX:X  d   eU" [        U5      5      n[	        U[
        5      (       d   eX:X  d   e[        U5      [        S5      -   n	[        R                  " S 5         U" U	5      nS S S 5        [	        U[
        5      (       d   eUSL a  X[        S5      -   :X  d   eOX:X  d   e[	        U[        R                  5      (       a  g S GH	  n
UR                  U
5      n[        R                  " U
5      n[        R                  " X<5      nU" U5      n[	        U[
        5      (       d   eX:X  d   eU" [        X:S95      n[	        U[
        5      (       d   eX:X  d   e[        X:S9[        S5      -   n	[        R                  " S 5         U" U	5      nS S S 5        [	        U[
        5      (       d   eUSL a  X[        S5      -   :X  d   eGM  X:X  a  GM
   e   g ! , (       d  f       GNw= f! , (       d  f       N_= f)Nr;   r9   F)NUTCz
Asia/Tokyoz
US/Easternzdateutil/Asia/Tokyozdateutil/US/Pacifictz)
issubclassr$   r?   getattrry   r   r#   r   assert_produces_warningr   
datetime64tz_localizer
   maybe_get_tzr	   localize_pydatetime)rr   rs   funcnamerP   r   r7   offset_sfuncr{   tsr   expected_localizetz_objdt_tzs                 r>   _check_offsetfunc_works"TestCommon._check_offsetfunc_works   s   FD11!&>x*b&),,,,!!!im$&),,,,!!! r]T!W$''-"XF . &),,,,Q////%%%b"--((
B !) 4 4R 8++B/F222>E%[Ffi0000...)B./Ffi0000... 2%Q/B++D1b 2fi0000E!T!W!<<<<222;
 .-H 21s   4	H-	H?-
H<?
I	c           	         [        SSSSS5      n[        R                  " S5      nX!R                     n[	        UR                  5       5      nX44 H(  nU R                  USXu5        U R                  USXvSS9  M*     g )	N  r0   	   r   2011-01-01 09:00rz   Tr;   )r   r   r   __name__r   dater   )rr   rK   rg   sdtndtr   expected_normrP   s           r>   
test_applyTestCommon.test_apply1  s{    tQ1a(mm./223!(--/2*B((xN((hT )  r@   c                   UR                  5       n/ SQnU H  n[        S5      X$'   M     [        S5      US'   [        S5      US'   UR                  5       nU H   n[        XV   R                  5       5      XV'   M"     [        S5      [        S5      [        S5      [        S5      [        S	5      [        S
5      [        S5      [        S5      [        S5      [        S5      [        S5      S.nUR                  U5        [	        SSSSS5      n[
        R                  " S5      n	X4 HD  n
X!R                     nU R                  USX5        XQR                     nU R                  USXSS9  MF     g )NrR   r"   rX   rZ   r%   rb   rc   rd   re   rf   r#   r   2011/01/01 09:00rT   r   r   z2011-01-02 00:00:00z2011-02-01 00:00:00z2011-01-15 00:00:00z2012-01-01 00:00:00z2011-01-08 00:00:002011-01-01 00:00:00rR   r   r"   rX   rZ   r%   rb   rc   rd   re   rf   r   r0   r   r   r   rollforwardTr;   )	copyr   r   updater   r   r   r   r   )rr   rK   rg   
no_changesr3   norm_expectedk
normalizedr   r   rP   r   s               r>   test_rollforwardTestCommon.test_rollforward?  su   NN$	

 A$%78IL  %..C$D	.!*34I*J	&' "(A()9)>)>)@AM  23#$9:#$9:'(=>"#893434 56 564545

 	Z(tQ1a(mm./*B !6!67H((}bS$%:%:;H((mRT ) 	 r@   c                   0 S[        S5      _S[        S5      _S[        S5      _S[        S5      _S[        S5      _S[        S5      _S	[        S5      _S
[        S5      _S[        S5      _S[        S5      _S[        S5      _S[        S5      _S[        S5      _S[        S5      _S[        S5      _S[        S5      _S[        S5      _[        S5      [        S5      [        S5      [        S5      [        S5      S.EnS H  n[        S5      X#'   M     UR                  5       nU H   n[        XE   R                  5       5      XE'   M"     [        S5      [        S5      [        S5      [        S 5      [        S!5      [        S"5      [        S#5      [        S#5      [        S#5      [        S#5      [        S#5      S$.nUR                  U5        [	        S%S&S&S'S(5      n[
        R                  " S)5      nXx4 HD  n	X!R                     n
U R                  US*X5        XAR                     n
U R                  US*XS+S,9  MF     g )-NrS   z2010-12-31 09:00:00r   r   r   z2010-12-01 09:00:00rU   rV   rW   rY   r[   z2010-01-01 09:00:00r\   r]   r^   r_   r`   ra   r   z2010-12-31 17:00:00r   z2010-12-11 09:00:00z2010-12-25 09:00:00z2010-10-26 09:00:00z2010-01-26 09:00:00z2010-04-04 09:00:00)r&   r!   r    r   r   r   r   z2010-12-31 00:00:00z2010-12-01 00:00:00z2010-12-15 00:00:00z2010-01-01 00:00:00z2010-12-25 00:00:00r   r   r   r0   r   r   r   rollbackTr;   )	r   r   r   r   r   r   r   r   r   )rr   rK   rg   r3   r   r   r   r   r   rP   r   s              r>   test_rollbackTestCommon.test_rollbackv  s   
9%:;
+@!A
 %i0E&F
 '	2G(H	

 !),A"B
 	"78
 I&;<
 	*? @
 )$9:
 y!67
 	"78
 I&;<
 Y'<=
 )$9:
 9%:;
  I&;<!
" !),A"B#
$ %%:;()>?&'<= 56 56-
	4
A %%78IL
" "(A()9)>)>)@AM  23#$9:#$9:'(=>"#893434 56 564545

 	Z(tQ1a(mm./*B !6!67H((z2P$%:%:;H((j"$ )  r@   c                ~   X!R                      n[        U5      nUR                  U5      (       d   e[        U[        5      (       a  g [        USS9nUR                  U5      (       a   eU[
        [        4;   a  g [        UR                  UR                  UR                  5      nUR                  U5      (       d   eg )NTr;   )r   r?   is_on_offsetr   r$   r   r   r   yearmonthday)rr   rK   rg   rP   r   offset_nr   s          r>   test_is_on_offsetTestCommon.test_is_on_offset  s    ,,-!,/$$R(((( lD))!,$?((,,,,L*<== 2662$$T****r@   c                   Un[        SSSSS5      n[        U5      nX1R                     nXV-   n[        U5      U-   n	X4 H!  n
[	        U
[        5      (       d   eX:X  a  M!   e   UR                  U5      n[        XTS9U-   n
[	        U
[        5      (       d   eX:X  d   e[        U[        5      (       a  g [        USS9n[        UR                  5       5      nXV-   n[        U5      U-   n	X4 H!  n
[	        U
[        5      (       d   eX:X  a  M!   e   UR                  U5      n[        XTS9U-   n
[	        U
[        5      (       d   eX:X  d   eg )Nr   r0   r   r   r   Tr;   )	r   r?   r   r   ry   r   r   r$   r   )rr   rK   tz_naive_fixturerg   r   rP   r   r   	result_dt	result_tsr{   r   s               r>   test_addTestCommon.test_add  sc   dAq!Q'!,/223M	bMH,	 ,Ffi0000%%% - %0042%0&),,,,*** lD))!,$?X]]_-M	bMH,	 ,Ffi0000%%% - %0042%0&),,,,***r@   c                D   [        U5      n[        / US9R                  S5      nS n[        U[        [
        [        [        [        [        [        [        [        [        4
5      (       a  [        nUS L n[        R                   " XVS9   XC-   nS S S 5        [        R"                  " WU5        [        R                   " XVS9   X4-   nS S S 5        [        R"                  " Xt5        UR$                  n[        R                   " XVS9   X-   nS S S 5        [        R&                  " Xx5        [        R                   " XVS9   X8-   nS S S 5        [        R&                  " Xx5        g ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N~= f! , (       d  f       NX= f)Nr   ns)check_stacklevel)r?   r   as_unitry   r   r&   r!   r   r   r   r   r   r   r    r   r   r   assert_index_equal_dataassert_equal)	rr   rK   r   r   dtiwarnr   r{   dtas	            r>   test_add_empty_datetimeindex'TestCommon.test_add_empty_datetimeindex  sC   !,/B#34<<TB!"(&
 
  &D ,t3''P^F Q
fc*''P^F Q
f*ii''P^F Q
$''P^F Q
$ QP QP
 QP QPs0   E E/F :F
E,/
E= 
F
Fc                    [        U5      n[        R                  " U5      nX#:X  d   e[        U5      [        La6  UR
                   H%  nUS:X  a  M  [        X$5      [        X45      :X  a  M%   e   g g )Ncalendar)r?   r   round_trip_pickler   r   _attributesr   )rr   rK   r   resattrs        r>   test_pickle_roundtrip TestCommon.test_pickle_roundtrip"  sj    \*""3'zz9J&:% s)WS-???? ( 'r@   c                    [        SS9n[        R                  " U5      nX:X  d   e[        SSS5      nX1-   X2-   :X  d   eg )N   r(   i  r0   )r   r   r   r   )rr   r   r   base_dts       r>   !test_pickle_dateoffset_odd_inputs,TestCommon.test_pickle_dateoffset_odd_inputs/  sF    #""3'zz4A&}---r@   c                6    [        U5      n[        U5      c   eg N)r?   hash)rr   rK   r   s      r>   test_offsets_hashable TestCommon.test_offsets_hashable8  s    \*Cy$$$r@   zIignore:Non-vectorized DateOffset being applied to Series or DatetimeIndexunit)r   msusc                   [        U5      n[        SSSUS9nXC-   R                  S 5      nUn[        U[        5      (       a9  UR
                  UR                  R
                  :  a  [        U5      R                  n[        U Vs/ s H  owU-   PM	     sn5      R                  U5      n[        R                  " XX5        g s  snf )Nz
2016-01-01#   D)periodsfreqr   )r?   r   
_with_freqry   r$   _cresor   r   r   r   r   r   r   )	rr   rK   r   r   r   r{   exp_unitxr   s	            r>   test_add_dt64_ndarray_non_nano)TestCommon.test_add_dt64_ndarray_non_nano>  s     \*r$G)''-c4  SZZ#))2B2B%B ~**H 3!73ac'3!78@@J
f/ "8s   B?rO   N)F)r   
__module____qualname____firstlineno__ru   r|   r   r   r   r   r   r   r   r   r   r   r   r   r   r   ro   markfilterwarningsparametrizer	  __static_attributes__rO   r@   r>   ri   ri      s    ,!*	6,=3~5nIV+&!+F)%V@.% [[S [[V%670 80r@   ri   c                     \ rS rSrS rS rS r\R                  R                  S\
" \R                  5      5      S 5       rS rS rS	 r\R                  R                  S
\" \/ SQ5      5      S 5       r\R                  R                  S
\" \/ SQ5      5      S 5       r\R                  R                  S\" \\" SS5      / SQ5      5      S 5       r\R                  R                  S\" \\" SS5      / SQ5      5      S 5       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/5      S) 5       rS* rS+rg,)-TestDateOffsetiT  c                .    [         R                  " 5         g r   r   clearrr   s    r>   setup_methodTestDateOffset.setup_methodU      r@   c                    [        [        5       5        [        [        S5      5        [        S[        5       -  5        [        S[        SS9-  5        g )NrN   r   )reprr   r  s    r>   	test_reprTestDateOffset.test_reprX  s9    Z\Z]QQ1%%&r@   c                x    [        S5      S[        S5      -  :X  d   e[        S5      [        S5      S-  :X  d   eg )NrN   r0   r   r  s    r>   test_mulTestDateOffset.test_mul^  s8    !}JqM 1111!}
1 1111r@   kwdc                    US:X  a1  UR                  [        R                  R                  [        SS95        [        S0 US0D6nUR                  US0:X  d   e[        X15      S:X  d   eg )NmillisecondGConstructing DateOffset object with `millisecond` is not yet supported.rp   reasonrN   rO   )applymarkerro   r  xfailNotImplementedErrorr   r   r   )rr   r#  rG   rs   s       r>   test_constructorTestDateOffset.test_constructorb  ss    -!!.% "  'sAh'{{sAh&&&v#q(((r@   c                B    U[        S5      -   [        SSS5      :X  d   eg )NrN   rM   r0   r   )r   r   )rr   rP   s     r>   test_default_constructor'TestDateOffset.test_default_constructorp  s"    Z]"xa';;;;r@   c                    Sn[         R                  " [        US9   [        S5      R	                  5       (       a   e[        S5      R	                  5       (       d   e S S S 5        g ! , (       d  f       g = f)Nz%DateOffset.is_anchored is deprecated rl   rN   r0   )r   r   FutureWarningr   is_anchoredrr   rt   s     r>   test_is_anchoredTestDateOffset.test_is_anchoreds  sV    5''SA!!}002222a=,,.... BAAs   AA''
A5c                    [        SS9R                  5       [        SS9:X  d   e[        SS9R                  5       [        SS9:X  d   eg )NrN   r   r0   r.   )r   r   r  s    r>   	test_copyTestDateOffset.test_copyz  sD    #((*j.BBBBq)..0JA4NNNNr@   z arithmatic_offset_type, expected)	
2009-01-02z
2008-02-02z
2008-01-09z
2008-01-03z2008-01-02 01:00:00z2008-01-02 00:01:00z2008-01-02 00:00:01z2008-01-02 00:00:00.001000000z2008-01-02 00:00:00.000001000c                    [        S0 US0D6U-   [        U5      :X  d   eU[        S0 US0D6-   [        U5      :X  d   eg Nr0   rO   r   r   rr   arithmatic_offset_typer   rP   s       r>   r   TestDateOffset.test_add~  sP    $ 83Q782=8ATTTTJ="8!!<==8ATTTTr@   )	
2007-01-02z
2007-12-02z
2007-12-26z
2008-01-01z2008-01-01 23:00:00z2008-01-01 23:59:00z2008-01-01 23:59:59z2008-01-01 23:59:59.999000000z2008-01-01 23:59:59.999999000c                    U[        S0 US0D6-
  [        U5      :X  d   e[        R                  " [        SS9   [        S0 US0D6U-
    S S S 5        g ! , (       d  f       g = f)Nr0   z$Cannot subtract datetime from offsetrl   rO   )r   r   ro   rp   r   r?  s       r>   test_subTestDateOffset.test_sub  s\    $ J="8!!<==8ATTTT]]9,RS50!45: TSSs   A
A!z#arithmatic_offset_type, n, expectedr0   
   )	r;  z
2008-03-02z
2008-01-23z
2008-01-06z2008-01-02 05:00:00z2008-01-02 00:06:00z2008-01-02 00:00:07z2008-01-02 00:00:00.008000000z2008-01-02 00:00:00.000009000c                   [        S0 US0D6U-  U-   [        U5      :X  d   eU[        S0 US0D6-  U-   [        U5      :X  d   eU[        S0 US0D6U-  -   [        U5      :X  d   eXB[        S0 US0D6-  -   [        U5      :X  d   eg r=  r>  rr   r@  r3   r   rP   s        r>   test_mul_addTestDateOffset.test_mul_add  s    & 83Q781<rAYxEXXXX:<!7 ;<<rAYxEXXXXJ="8!!<=AAYxEXXXX
A&<a%@AAAYxEXXXXr@   )	rB  z
2007-11-02z
2007-12-12z
2007-12-29z2008-01-01 19:00:00z2008-01-01 23:54:00z2008-01-01 23:59:53z2008-01-01 23:59:59.992000000z2008-01-01 23:59:59.999991000c                    U[        S0 US0D6U-  -
  [        U5      :X  d   eXB[        S0 US0D6-  -
  [        U5      :X  d   eg r=  r>  rH  s        r>   test_mul_subTestDateOffset.test_mul_sub  sX    & J="8!!<=AAYxEXXXX
A&<a%@AAAYxEXXXXr@   c                X    [        SSS5      nU[        SS9-   [        SSS5      :X  d   eg )NrM   r0      r   rN      )r   r   )rr   ds     r>   test_leap_yearTestDateOffset.test_leap_year  s1    T1b!Ja((XdAr-BBBBr@   c                b    [        SS9n[        SS9nX:w  d   e[        SS9[        SS9:w  d   eg )Nr0   )r*   im  r   r8     r   )rr   offset1offset2s      r>   test_eqTestDateOffset.test_eq  s:    !$#&!!!q)ZQ-GGGGr@   offset_kwargs, expected_arg)r/   r.   z2022-01-01 00:00:00.001001)r-   r.   z2022-01-01 00:00:01.001)r,   r.   z2022-01-01 00:01:00.001)r+   r.   z2022-01-01 01:00:00.001)r*   r.   z2022-01-02 00:00:00.001)r)   r.   z2022-01-08 00:00:00.001)r(   r.   z2022-02-01 00:00:00.001)r'   r.   z2023-01-01 00:00:00.001c                \    [        S0 UD6n[        S5      nXC-   n[        U5      nXV:X  d   eg )N
2022-01-01rO   r>  )rr   offset_kwargsexpected_argrs   r   r{   r   s          r>   test_milliseconds_combination,TestDateOffset.test_milliseconds_combination  s8     ,m,|$\*!!!r@   c                    Sn[         R                  " [        US9   [        SS9  S S S 5        g ! , (       d  f       g = f)Nz3^Invalid argument/s or bad combination of argumentsrl   r0   )picoseconds)ro   rp   
ValueErrorr   r4  s     r>   test_offset_invalid_arguments,TestDateOffset.test_offset_invalid_arguments  s)    C]]:S11% 211s   
/
=rO   N)r   r  r  r  r  r  r!  ro   r  r  sorted
liboffsets_relativedelta_kwdsr,  r/  r5  r9  zip_ARITHMETIC_DATE_OFFSETr   rD  rangerI  rL  rR  rX  r_  rd  r  rO   r@   r>   r  r  T  s   '2 [[UF:+I+I$JK) L)</O [[*#
	
"U#"U [[*#
	
";#";
 [[-#!RL
	
$Y%$Y [[-#!RL
	
$Y%$YCH [[%35QRA.0IJA.0IJ!,.GH+-FG!,.GH1-/HI!,.GH		
""&r@   r  c                      \ rS rSrS rSrg)TestOffsetNamesi  c                   [        5       R                  S:X  d   e[        S5      R                  S:X  d   e[        5       R                  S:X  d   e[        SS9R                  S:X  d   e[        SS9R                  S	:X  d   e[        SS9R                  S
:X  d   e[        SS9R                  S:X  d   e[        SS9R                  S:X  d   e[	        [
        R                  S9R                  S:X  d   eg )NBrN   2BBMEr   r5   W-MONr0   W-TUEW-WEDr   W-THUr   W-FRIzLWOM-SUN)r   r   r   r%   r!   r   SUNr  s    r>   test_get_offset_name$TestOffsetNames.test_get_offset_name   s    v~~$$$Aw$&&&{""e+++A&&'111A&&'111A&&'111A&&'111A&&'111w{{3;;zIIIr@   rO   N)r   r  r  r  ry  r  rO   r@   r>   rm  rm    s    
Jr@   rm  c                 Z   [         R                  " [        [        S9   [	        S5        S S S 5        [         R                  " [        [        S9   [	        S5        S S S 5        S[        5       4S[        5       4S[        5       4S[        5       4S[        S	S
94S[        SS
94S[        SS
94S[        SS
94S[        SS
94/	n U  HA  u  p[	        U5      nX2:X  a  M   S[        U5       S[        U5       S[        U5       S35       e   g ! , (       d  f       N= f! , (       d  f       N= f)Nrl   	gibberishzQS-JAN-Bro  bbmeBmers  r   rr  rt  r0   ru  rN   rv  r   rw  r   z	Expected z
 to yield z
 (actual: ))	ro   rp   rc  r   r   r   r   r%   r  )pairsnamer   rs   s       r>   test_get_offsetr    s   	z)=	>K  
?	z)=	>J 
? 
df	df					$q/"	$q/"	$q/"	$q/"	$q/"
E  T"! 	
T
|:d8n-= >V~Q(	
!  # 
?	>	>	>s   DD
D
D*c                     S[        SS94/n U  H6  u  p[        R                  " [        [        S9   [        U5        S S S 5        M8     g ! , (       d  f       MJ  = f)Nzw@Satr9   rr  rl   )r%   ro   rp   rc  r   r   )r  r  r   s      r>   test_get_offset_legacyr  '  sF    tA'(E]]:-AB CB  BBs   A


A	c                  &    \ rS rSrS rS rS rSrg)TestOffsetAliasesi.  c                .    [         R                  " 5         g r   r  r  s    r>   r  TestOffsetAliases.setup_method/  r  r@   c                t    [         R                  " 5        H  u  pUc  M
  XR                  5       :X  a  M   e   g r   )r   itemsr   )rr   r   vs      r>   test_alias_equality%TestOffsetAliases.test_alias_equality2  s/    %%'DAy= = (r@   c                &   / SQnU HH  nU[        U5      R                  :X  d   eU[        ;   d   eU[        U5      S-  R                  :X  a  MH   e   / SQnSnU HN  nSR                  XE/5      nU[        U5      R                  :X  d   eU[        U5      S-  R                  :X  a  MN   e   / SQn/ SQnU HW  nU HN  nSR                  XE/5      nU[        U5      R                  :X  d   eU[        U5      S-  R                  :X  a  MN   e   MY     g )	N)MEMSrq  BMSr  ro  hminr   r   r   r   MONTUEWEDTHUFRISATrx  W-r9   JANFEBMARAPRMAYJUNJULAUGSEPOCTNOVDEC)YEYSBYEBYSQEQSBQEBQS)r   r   r   join)rr   lstr   
suffix_lstbaser  aliasbase_lsts           r>   test_rule_code TestOffsetAliases.test_rule_code8  s   OAA00000###Q!+66666	  G
AHHdY'EK.88888[/!3>>>>> 


 HD$+E 2 < <<<<U!3a!7 B BBBB   r@   rO   N)r   r  r  r  r  r  r  r  rO   r@   r>   r  r  .  s    !"Cr@   r  c                     [        S[        SS5      S9n U R                  S:X  d   e[        S[        SS5      S9n U R                  S:X  d   eg )Nr0   r   i  )rs   zB+30MinizB-30Min)r   r   r   )r   s    r>   test_freq_offsetsr  ]  sL    
q1d+
,C;;)###
q1e,
-C;;)###r@   c                      \ rS rSrS rSrg)TestReprNamesie  c                r   / SQnU VVs/ s H  nS  H  nUS-   U-   PM     M     nnn/ SQnXE Vs/ s H  nSU-   PM
     sn-  nUS VVs/ s H  ou  H  nSU-   U-   PM     M     snn-  n[         R                  " 5         U H   n[        U5      n	U	R                  U:X  a  M    e   g s  snnf s  snf s  snnf )N)r  r  r  r  r  r  r  r  r  r  r  zW-)1234zWOM-)r   r  r   r   )
rr   month_prefixesprefixr   namesr*   r   r:   r  rs   s
             r>   test_str_for_named_is_name(TestReprNames.test_str_for_named_is_namef  s    M )
( SL5  !( 	 
$ A-$*--2FW2F$RV3&4-#%RV%2FWWD &F>>T))) -
& .Ws   B(B.B3rO   N)r   r  r  r  r  r  rO   r@   r>   r  r  e  s    *r@   r  c                    U nU" 5         g r   rO   rK   clss     r>   test_valid_default_argumentsr    s     CEr@   r#  c                    UnSU  S3n[         R                  " [        US9   U" S0 U S0D6  S S S 5        g ! , (       d  f       g = fNz1__init__\(\) got an unexpected keyword argument ''rl   r   rO   ro   rp   r   )r#  rH   r  rt   s       r>   test_valid_month_attributesr    s>     C>se1
EC	y	,sAh 
-	,	,	   6
Ac                \    U " S5      nU " S5      nUR                   UR                   :X  d   eg )Nr0   rN   )r  )rH   objobj2s      r>   test_month_offset_namer    s,    

CD99   r@   c                    U S:X  a1  UR                  [        R                  R                  [        SS95        [        S0 U S0D6  g )Nr%  r&  r'  r0   rO   )r)  ro   r  r*  r+  r   )r#  rG   s     r>   test_valid_relativedelta_kwargsr    sH    
mKK*!  	
 #qr@   c                    UnSU  S3n[         R                  " [        US9   U" S0 U S0D6  S S S 5        g ! , (       d  f       g = fr  r  )r#  tick_classesr  rt   s       r>   test_valid_tick_attributesr    s>     C>se1
EC	y	,sAh 
-	,	,r  c                    [         R                  " [        SS9   [        SS9  S S S 5        [         R                  " [        SS9   [	        [        S5      S9  S S S 5        [         R                  " [        SS9   [        [        R                  " SS/[        R                  S9S9  S S S 5        g ! , (       d  f       N= f! , (       d  f       Nn= f! , (       d  f       g = f)Nr   rl   zDoh!r3   r0   rN   )dtype)
ro   rp   r   r   r"   r   r   r   r   int64rO   r@   r>   test_validate_n_errorr    s    	y(E	FV 
G 
y(E	FYq\" 
G 
y(E	FrxxAbhh/0 
G	F 
G	F 
G	F 
G	Fs#   
B/C 9-C/
B= 
C
Cc                z    U n[         R                  " [        SS9   U" SS9  S S S 5        g ! , (       d  f       g = f)Nr   rl   g      ?r  ro   rp   rc  r  s     r>   test_require_integersr    s*    
C	z)F	Gc
 
H	G	Gs   ,
:c                    U nSn[         R                  " [        US9   U" SSS9  S S S 5        g ! , (       d  f       g = f)Nz2Tick offset with `normalize=True` are not allowed.rl   r   T)r3   r7   r  )r  r  rt   s      r>   test_tick_normalize_raisesr    s2     C
>C	z	-a4  
.	-	-s   /
=rZ  nanosecondsz1970-01-01 00:00:00.000000001r9   z1970-01-01 00:00:00.000000005r   z1969-12-31 23:59:59.999999999r/   z1970-01-01 00:00:00.000001z1969-12-31 23:59:59.999999r-   z1970-01-01 00:00:01z1969-12-31 23:59:59r,   z1970-01-01 00:01:00z1969-12-31 23:59:00r+   z1970-01-01 01:00:00z1969-12-31 23:00:00r*   z1970-01-02 00:00:00z1969-12-31 00:00:00r)   z1970-01-08 00:00:00z1969-12-25 00:00:00r(   z1970-02-01 00:00:00z1969-12-01 00:00:00r'   z1971-01-01 00:00:00z1969-01-01 00:00:00c                    [        S0 U D6n[        S5      nX2-   n[        U5      nXE:X  d   eXB-  nXC:X  d   eX#-   nXE:X  d   eg )Nr   rO   r>  )r]  r^  rs   r   r{   r   s         r>   test_dateoffset_add_subr    s\    2 (-(F	1B[F&H
F<<[Fr@   c                 P   [        SSS9n [        S5      nX-   n[        S5      nX#:X  d   eX -  nX!:X  d   eX-   nX#:X  d   e[        SSSS9nUR                  (       d   e[        R                  " S 5         X-   nS S S 5        [        S5      nWU:X  d   eg ! , (       d  f       N"= f)	NrN   r   r,   r  r   z1970-01-01 00:02:00.000000013r0   )r,   r  hourz1970-01-01 01:02:00.000000013)r   r   _use_relativedeltar   r   )rs   r   r{   r   rW  result2	expected2s          r>   +test_dateoffset_add_sub_timestamp_with_nanor    s    q1F	1B[F89H
F<<[F:G%%%%		#	#D	), 
* 9:Ii	 
*	)s   6B
B%	attribute)r+   r*   r)   r(   r'   c                    [        S0 U S0D6nSn[        R                  " [        US9   [	        XS5        S S S 5        g ! , (       d  f       g = f)Nr   z DateOffset objects are immutablerl   r9   rO   )r   ro   rp   rq   setattr)r  rs   rt   s      r>   test_dateoffset_immutabler  
  s>     )9a.)F
,C	~S	11% 
2	1	1s	   ?
Ac                 z    [         R                  " SSS9n U R                    [         R                  " SS9S:X  a   eg )NrN   r   )r(   r*   r   )r   r   r   )osets    r>   test_dateoffset_miscr    s7    QQ/DLL!!+q0000r@   r3   )r   r0   r   c                    [        U 5      nUR                  [        S5      :X  d   e[        SSS5      U-   n[        SSSU -   5      nX#:X  d   eg )Nr0   i  rN   )r   _offsetr   r   )r3   rs   r{   r   s       r>   -test_construct_int_arg_no_kwargs_assumed_daysr  #  sT     ]F>>Yq\)))tQ"V+Fq!a%(Hr@   zoffset, expectedrU     r  z2022-01-01 00:07:00.000000018r   )r  z2022-01-01 00:00:00.000000003c                    [        S5      nUn[        U/5      nX@-   nUS   U:X  d   eX@-  nUS   U:X  d   eX-   nUS   U:X  d   eg )Nr\  r   )r   r   )rs   r   
start_time	teststamp
testseriess        r>   2test_dateoffset_add_sub_timestamp_series_with_nanor  -  sm     <(JI%J$Ja=H$$$Ja=I%%%$Ja=H$$$r@   z=n_months, scaling_factor, start_timestamp, expected_timestamp))r0   rN   
2020-01-30
2020-03-30)rN   r0   r   r  )r0   r   r   r   )rN   r   r   r   )r0   r   r   z
2019-12-30)rN   r   r   z
2019-11-30c                    [        U S9n[        U5      n[        U/5      nXTU-  -   nXdU-  -   n[        U5      n	[        U	/5      n
Xy:X  d   e[        R                  " X5        g )Nr   )r   r   r   r   assert_series_equal)n_monthsscaling_factorstart_timestampexpected_timestampmo1startscalar
startarrayresultscalarresultarrayexpectedscalarexpectedarrays              r>   test_offset_multiplicationr  D  sp     H
%CO,K&J"67Ln 45K12NN+,M)));6r@   c                    [        [        S5      /[        SS9/S.5      n U S   SU S   -  -   n[        [        S5      [        S5      /[        SS9[        SS9/S.5      n[        S5      n[        R                  " [
        5         US   SUS   -  -   nS S S 5        US	   U:X  d   eWS	   U:X  d   eg ! , (       d  f       N%= f)
Nz
2019-04-30r0   r   )Tr  r     r  z
2021-06-30r   )r   r   r   r   r   r   )dfframeresult1df2expecteddateframeresult2s        r>   (test_dateoffset_operations_on_dataframesr  b  s    	)L12*A:N9OP	QBc7R"S'\)L
L)9\+BCA&
!(<=	
C \*L		#	#$6	73x"s3x-/ 
8 ?l***?l***	 
8	7s   B44
Cc                    [        S5      n [        S5      n[        S5      n[        S5      n[        S5      n[        S5      n[        S5      n/ U R                  [        S5      5      S	4PUR                  [        S5      5      S
4PU R                  [        S5      5      S
4PUR                  [        S5      5      S	4PUR                  [        S5      5      S	4PUR	                  [        S5      5      S	4PUR                  [        S5      5      S	4PUR                  [        S5      5      S	4PUR                  [        S5      5      S	4PUR                  [        S5      5      S	4PUR                  [        S5      5      S	4PUR	                  [        S5      5      S
4PUR                  [        S5      5      S
4PUR                  [        S5      5      S	4PUR                  [        S5      5      S	4PUR                  [        S5      5      S	4PUR                  [        S5      5      S
4PUR	                  [        S5      5      S
4PUR                  [        S5      5      S
4PUR                  [        S5      5      S	4PUR	                  [        S5      5      S	4PUR                  [        S5      5      S
4PUR                  [        S5      5      S
4PUR	                  [        S5      5      S
4PUR                  [        S5      5      S
4PUR                  [        S5      5      S	4PUR	                  [        S5      5      S	4PUR                  [        S5      5      S	4PUR                  [        S5      5      S	4PUR                  [        S5      5      S	4P[        S5      R                  S4P[        S5      R                  S4PnU H  u  pX:X  a  M   e   g )Nr  rq  zQE-FEBzQS-FEBr  zBQS-APRzYS-NOVz
2013-06-01r0   r   z
2013-06-03z
2013-02-28z
2013-03-01z
2013-03-31z
2013-02-01z
2013-06-30z
2013-06-28z
2013-03-29z
2013-11-01z
2013-10-31z
2012-02-01rP     )	r   is_month_startr   is_month_endis_quarter_endis_year_endis_quarter_startis_year_startdays_in_month)
freq_mbmqfebqsfebbqbqs_apras_novtestsr   r=   s
             r>   test_is_yqm_start_endr*  t  s3   t_F	5	BXDhE	5	B	"Gx F!			y6	7;!			9\2	3Q7! 
		y6	7;! 
		9\2	3Q7	!
 
		9\2	3Q7! 
		Y|4	5q9! 
		)L1	2A6! 
		Y|4	5q9! 
		y6	7;! 
		Il3	4a8! 
		Il3	4a8! 
		i5	6:! 
		9\2	3Q7! 
		i5	6:! 
			, 7	8!<!  
		Y|4	5q9!!" 
<0	115#!$ 
		9\2	3Q7%!& 
	,/	0!4'!( 
<0	115)!* 
		9\2	3Q7+!, 
	,/	0!4-!. 
		i5	6:/!0 
			, 7	8!<1!2 
		Y|4	5q93!4 
		i5	6:5!6 
			, 7	8!<7!8 
		Y|4	5q99!: 
		i5	6:;!< 
		Il3	4a8=!> 
<	 	.	.3?!@ 
<	 	.	.3A!EF 	{{ r@   )r0   F)___doc__
__future__r   r   r   numpyr   ro   pandas._libs.tslibsr   r   r   r	   r
   pandas._libs.tslibs.offsets_libstslibsr   rg  r   r   r   pandas._libs.tslibs.periodr   pandas.errorsr   pandasr   r   r   r   pandas._testing_testingr   #pandas.tests.tseries.offsets.commonr   pandas.tseriespandas.tseries.offsetsr   r   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   rj  r?   fixture__all__r   r   rA   rH   rK   rP   rg   ri   r  rm  r  r  r  r  r  r  r  r  rf  rh  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r*  )os   0r>   <module>r=     sv   #
    1 0 
 < ,   7 "    (
 @   Aggq):+A+AB 	  	  %,__%4AW8W_

 + + ' 'T]0 ]0@h& h&VJ J
4,C ,C^$* *D
 z'E'E FG H! z'E'E FG H z'E'E FG H1! !
	<=
	<=
	=>
!	:;
"	;<
Q./
R/0
Q./
R/0
1,-
2-.
!+,
",-
1,-
2-.
A-.
B./
1,-
2-.'0	10	 ( 	&	&1 j) *  qb156	
 
	"I.M$NO	
%	
% C
7
7&+$-U s   0#M1M1M1	M6M6