
    Owg                       d Z ddlmZ ddlmZmZ ddlZddlZddlm	Z	m
Z
mZmZmZ ddlmc mc mZ ddlmZmZmZ ddlmZ ddlmZ dd	lmZmZmZmZ ddlm 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+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6 g dZ7dcdZ8 ejr                  ejt                  D  cg c]*  }  e; e<e|       ejz                        r| dk7  r	 e<e|       , c}       d        Z> ejr                  ejt                  D  cg c]  } | dvs e<e|        c}       d        Z?ejr                  d        Z@ejr                  d        ZA G d d      ZB G d d      ZC G d d      ZDd ZEd ZF G d d       ZGd! ZH G d" d#      ZId$ ZJej                  j                  d% eMej                              d&        ZOd' ZPej                  j                  d% eMej                              d(        ZQej                  j                  d% eMej                              d)        ZRd* ZSd+ ZTd, ZUej                  j                  d-d.did/fd.d0id1fd.d2id3fd4did5fd4d2id6fd7did8fd7d2id9fd:did;fd:d2id<fd=did>fd=d2id?fd@didAfd@d2idBfdCdidDfdCd2idEfdFdidGfdFd2idHfdIdidJfdId2idKfg      dL        ZVdM ZWej                  j                  dNg dO      dP        ZXdQ ZYej                  j                  dRg dS      dT        ZZej                  j                  dU e.dVdWX       edY      f e.dZ[       ed\      fg      d]        Z[ej                  j                  d^g d_      d`        Z\da Z]db Z^yc c} w c c} w )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                    | t         u r | |ddd|      } | S | t        u r | |dddd|      } | S | t        u r | |d|      } | S | t        u r | |dd|      } | S | t        u r | |d|      } | S | t
        u r | ||      } | S  | ||	      } | S )
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/horilla/myenv/lib/python3.12/site-packages/pandas/tests/tseries/offsets/test_offsets.py_create_offsetr?   I   s    
4 L' 
-	 !
$ L 
/	!qI> L 
+	AqIF L 
$qI>
 L	 
*	5I6 L ey1L    MonthOffset)paramsc                    | j                   S )zO
    Fixture for month based datetime offsets available for a time series.
    paramrequests    r>   month_classesrH   i   s     ==r@   )r$   
BaseOffsetc                    | j                   S )zK
    Fixture for all the datetime offsets available for a time series.
    rD   rF   s    r>   offset_typesrK   x   s     ==r@   c                 .    t        t        ddd            S )N  r0      )r   r    r@   r>   dtrP      s    XdAq)**r@   c                 :   i dt        d      dt        d      dt        d      dt        d      dt        d      d	t        d      d
t        d      dt        d      dt        d      dt        d      dt        d      dt        d      dt        d      dt        d      dt        d      dt        d      dt        d      i dt        d      dt        d      dt        d      dt        d       d!t        d       d"t        d#      d$t        d%      d&t        d'      d(t        d'      d)t        d#      d*t        d+      d,t        d-      d.t        d/      d0t        d1      d2t        d3      d4t        d5      d6t        d7      S )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                      e Zd Zd Zd Zd Zd Zd Zd ZddZ	d Z
d	 Zd
 Zd Zd Zd Zd Zd Zd Zej(                  j+                  d      ej(                  j-                  dg d      d               Zy)
TestCommonc                    t        |      }d}t        j                  t        |      5  d|_        d d d        t        j                  t        |      5  d|_        d d d        y # 1 sw Y   5xY w# 1 sw Y   y xY w)Nz8objects is not writable|DateOffset objects are immutablematchT[   )r?   pytestraisesAttributeErrorr7   r3   )selfrK   offsetmsgs       r>   test_immutablezTestCommon.test_immutable   sk    -H]]>5 	$#F	$]]>5 	FH	 		$ 	$	 	s   A%A1%A.1A:c                    t        |      }t        d      |z   }t        |t              sJ t        |z   t        u sJ |t        z   t        u sJ t        |z
  t        u sJ | j	                  t              t        u sJ y )N20080101)r?   r   
isinstancer   _apply)rq   rK   rr   results       r>   test_return_typezTestCommon.test_return_type   s    - :&/&),,, V|s"""|s"""V|s"""$+++r@   c                    t        |      }|j                  dk(  sJ |dz  }|j                  dk(  sJ |dz  }|j                  dk(  sJ y )Nr0      )r?   r3   )rq   rK   rr   
neg_offset
mul_offsets        r>   test_offset_nzTestCommon.test_offset_n   sR    -xx1}}b[
||r!!!aZ
||q   r@   c                    t        |      }t        j                  dd      }t        j                  t
        d      5   t        |      dd|i|j                   d d d        y # 1 sw Y   y xY w)Ni  sargument must be an integerrk   r3   rO   )r?   nptimedelta64rn   ro   	TypeErrortypekwds)rq   rK   offtd64s       r>   test_offset_timedelta64_argz&TestCommon.test_offset_timedelta64_arg   s\     \*~~dC(]]9,IJ 	*DI)))	* 	* 	*s   A$$A-c                2   t        |      }t        j                  ||dz  g|dz  |dz  gg      }t        j                  ddgddgg      |z  }t        j                  ||       |t        j                  ddgddgg      z  }t        j                  ||       y )NrN   r}      r0   )r?   r   arraytmassert_numpy_array_equal)rq   rK   r   expectedry   s        r>   test_offset_mul_ndarrayz"TestCommon.test_offset_mul_ndarray   s    \*88c37^cAgsQw-?@AAq6Aq6*+c1
##FH5rxx!Q!Q 011
##FH5r@   c                t    t        |      }|j                  }|dvrt        |      }|j                  |k(  sJ y y )N)z<Easter>z<DateOffset: days=1>zLWOM-SAT)r?   freqstrr   	rule_code)rq   rK   rr   r   codes        r>   test_offset_freqstrzTestCommon.test_offset_freqstr   sB    -..JJw'D##t+++ Kr@   c                4   |rt        |t              ry t        ||      }t        ||      } ||      }t	        |t
              sJ ||k(  sJ  |t        |            }t	        |t
              sJ ||k(  sJ t        |      t        d      z   }	t        j                  d       5   ||	      }d d d        t	        |t
              sJ |du r||t        d      z   k(  s	J ||k(  sJ t	        |t        j                        ry dD ]  }
|j                  |
      }t        j                  |
      }t        j                  ||      } ||      }t	        |t
              sJ ||k(  sJ  |t        ||
            }t	        |t
              sJ ||k(  sJ t        ||
      t        d      z   }	t        j                  d       5   ||	      }d d d        t	        |t
              sJ |du r||t        d      z   k(  rJ ||k(  rJ  y # 1 sw Y   VxY w# 1 sw Y   JxY w)Nr;   r9   F)NUTCz
Asia/Tokyoz
US/Easternzdateutil/Asia/Tokyozdateutil/US/Pacifictz)
issubclassr$   r?   getattrrw   r   r#   r   assert_produces_warningr   
datetime64tz_localizer
   maybe_get_tzr	   localize_pydatetime)rq   rr   funcnamerP   r   r7   offset_sfuncry   tsr   expected_localizetz_objdt_tzs                 r>   _check_offsetfunc_worksz"TestCommon._check_offsetfunc_works   s-   FD1!&I>x*b&),,,!!!im$&),,,!!! r]T!W$''- 	"XF	 &),,,XQ////X%%%b"--(
 	3B !) 4 4R 8++B/F222v>E%[Ffi000....)B2./Ffi000.... 2"%Q/B++D1 "b"fi000E!!2T!W!<<<<!2222;	3	 	H" "s   $	H<	HHH	c                   t        ddddd      }t        j                  d      }||j                     }t	        |j                               }||fD ],  }| j                  |d||       | j                  |d||d       . y )	N  r0   	   r   2011-01-01 09:00rx   Tr;   )r   r   r   __name__r   dater   )rq   rK   rg   sdtndtr   expected_normrP   s           r>   
test_applyzTestCommon.test_apply1  s    tQ1a(mm./\223!(--/2* 	B((xXN((hMT ) 	r@   c                   |j                         }g d}|D ]  }t        d      ||<    t        d      |d<   t        d      |d<   |j                         }|D ]!  }t        ||   j                               ||<   # t        d      t        d      t        d      t        d      t        d	      t        d
      t        d      t        d      t        d      t        d      t        d      d}|j                  |       t	        ddddd      }t        j                  d      }	||	fD ]J  }
||j                     }| j                  |d|
|       ||j                     }| j                  |d|
|d       L y )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   )rq   rK   rg   
no_changesr3   norm_expectedk
normalizedr   r   rP   r   s               r>   test_rollforwardzTestCommon.test_rollforward?  s   NN$	

  	9A$%78IaL	9 %..C$D	.!*34I*J	&' "( 	BA(q)9)>)>)@AM!	B 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((mRT ) 		r@   c                   i dt        d      dt        d      dt        d      dt        d      dt        d      dt        d      d	t        d      d
t        d      dt        d      dt        d      dt        d      dt        d      dt        d      dt        d      dt        d      dt        d      dt        d      t        d      t        d      t        d      t        d      t        d      d}dD ]  }t        d      ||<    |j                         }|D ]!  }t        ||   j                               ||<   # t        d      t        d      t        d      t        d       t        d!      t        d"      t        d#      t        d#      t        d#      t        d#      t        d#      d$}|j                  |       t	        d%d&d&d'd(      }t        j                  d)      }||fD ]J  }	||j                     }
| j                  |d*|	|
       ||j                     }
| j                  |d*|	|
d+,       L y )-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   )rq   rK   rg   r3   r   r   r   r   r   rP   r   s              r>   test_rollbackz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
 	9A %%78IaL	9" "( 	BA(q)9)>)>)@AM!	B 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((z2xP$\%:%:;H((j"h$ ) 	r@   c                Z   ||j                      }t        |      }|j                  |      sJ t        |t              ry t        |d      }|j                  |      rJ |t
        t        fv ry t        |j                  |j                  |j                        }|j                  |      sJ y )NTr;   )r   r?   is_on_offsetr   r$   r   r   r   yearmonthday)rq   rK   rg   rP   r   offset_nr   s          r>   test_is_on_offsetzTestCommon.test_is_on_offset  s    |,,-!,/$$R((( lD)!,$?((,,,L*<== 2662$$T***r@   c                   |}t        ddddd      }t        |      }||j                     }||z   }t        |      |z   }	||	fD ]  }
t	        |
t              sJ |
|k(  rJ  |j                  |      }t        ||      |z   }
t	        |
t              sJ |
|k(  sJ t        |t              ry t        |d      }t        |j                               }||z   }t        |      |z   }	||	fD ]  }
t	        |
t              sJ |
|k(  rJ  |j                  |      }t        ||      |z   }
t	        |
t              sJ |
|k(  sJ y )Nr   r0   r   r   r   Tr;   )	r   r?   r   r   rw   r   r   r$   r   )rq   rK   tz_naive_fixturerg   r   rP   r   r   	result_dt	result_tsry   r   s               r>   test_addzTestCommon.test_add  sv   dAq!Q'!,/\223M	bMH,	 ), 	&Ffi000X%%%	& %0042"%0&),,,**** lD)!,$?X]]_-M	bMH,	 ), 	&Ffi000X%%%	& %0042"%0&),,,****r@   c                6   t        |      }t        g |      j                  d      }d }t        |t        t
        t        t        t        t        t        t        t        t        f
      rt        }|d u }t        j                   ||      5  ||z   }d d d        t        j"                  |       t        j                   ||      5  ||z   }d d d        t        j"                  ||       |j$                  }t        j                   ||      5  ||z   }d d d        t        j&                  ||       t        j                   ||      5  ||z   }d d d        t        j&                  ||       y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   sxY w# 1 sw Y   DxY w)Nr   ns)check_stacklevel)r?   r   as_unitrw   r   r&   r!   r   r   r   r   r   r   r    r   r   r   assert_index_equal_dataassert_equal)	rq   rK   r   r   dtiwarnr   ry   dtas	            r>   test_add_empty_datetimeindexz'TestCommon.test_add_empty_datetimeindex  sl   !,/B#34<<TB!"(&
  &D ,t3''?OP 	$8^F	$
fc*''?OP 	$^F	$
fc*ii''?OP 	$8^F	$
$''?OP 	$^F	$
$	$ 	$	$ 	$
	$ 	$	$ 	$s0   	E+E7FF+E47F FFc                    t        |      }t        j                  |      }||k(  sJ t        |      t        ur3|j
                  D ]#  }|dk(  r	t        ||      t        ||      k(  r#J  y y )Ncalendar)r?   r   round_trip_pickler   r   _attributesr   )rq   rK   r   resattrs        r>   test_pickle_roundtripz TestCommon.test_pickle_roundtrip"  sw    \*""3'czz9J& @:% sD)WS$-????@ 'r@   c                    t        d      }t        j                  |      }||k(  sJ t        ddd      }||z   ||z   k(  sJ y )N   r(   i  r0   )r   r   r   r   )rq   r   r   base_dts       r>   !test_pickle_dateoffset_odd_inputsz,TestCommon.test_pickle_dateoffset_odd_inputs/  sL    #""3'czz4A&}#---r@   c                4    t        |      }t        |      J y N)r?   hash)rq   rK   r   s      r>   test_offsets_hashablez TestCommon.test_offsets_hashable8  s    \*Cy$$$r@   zIignore:Non-vectorized DateOffset being applied to Series or DatetimeIndexunit)r   msusc                   t        |      }t        ddd|      }||z   j                  d       }|}t        |t              r8|j
                  |j                  j
                  kD  rt        |      j                  }t        |D cg c]  }||z   	 c}      j                  |      }t        j                  ||       y c c}w )Nz
2016-01-01#   D)periodsfreqr   )r?   r   
_with_freqrw   r$   _cresor   r   r   r   r   r   r   )	rq   rK   r   r   r   ry   exp_unitxr   s	            r>   test_add_dt64_ndarray_non_nanoz)TestCommon.test_add_dt64_ndarray_non_nano>  s     \*r$G)''-c4 SZZ#))2B2B%B ~**H 3!7a!c'!78@@J
fh/ "8s   B;N)F)r   
__module____qualname__rt   rz   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rn   markfilterwarningsparametrizer   rO   r@   r>   ri   ri      s    ,!*	6,=3~5nIV+&!+F)%V@.% [[S [[V%670 80r@   ri   c                     e Zd Zd Zd Zd Zej                  j                  d e	e
j                              d        Zd Zd Zd Zej                  j                  d	 eeg d
            d        Zej                  j                  d	 eeg d            d        Zej                  j                  d ee edd      g d            d        Zej                  j                  d ee edd      g d            d        Zd Zd Zej                  j                  dddddfddddfddddfddddfddd d!fddd"d#fddd$d%fddd&d'fg      d(        Zd) Zy*)+TestDateOffsetc                ,    t        j                          y r   r   clearrq   s    r>   setup_methodzTestDateOffset.setup_methodU      r@   c                    t        t                      t        t        d             t        dt               z         t        dt        d      z         y )NrN   r   )reprr   r  s    r>   	test_reprzTestDateOffset.test_reprX  s9    Z\Z]QQ1%%&r@   c                t    t        d      dt        d      z  k(  sJ t        d      t        d      dz  k(  sJ y )NrN   r0   r   r  s    r>   test_mulzTestDateOffset.test_mul^  s8    !}JqM 1111!}
1 1111r@   kwdc                    |dk(  r4|j                  t        j                  j                  t        d             t        di |di}|j                  |dik(  sJ t        ||      dk(  sJ y )NmillisecondGConstructing DateOffset object with `millisecond` is not yet supported.ro   reasonrN   rO   )applymarkerrn   r   xfailNotImplementedErrorr   r   r   )rq   r  rG   rr   s       r>   test_constructorzTestDateOffset.test_constructorb  su    -!!.% "  'sAh'{{sAh&&&vs#q(((r@   c                @    |t        d      z   t        ddd      k(  sJ y )NrN   rM   r0   r   )r   r   )rq   rP   s     r>   test_default_constructorz'TestDateOffset.test_default_constructorp  s"    Z]"xa';;;;r@   c                    d}t        j                  t        |      5  t        d      j	                         rJ t        d      j	                         sJ 	 d d d        y # 1 sw Y   y xY w)Nz%DateOffset.is_anchored is deprecated rk   rN   r0   )r   r   FutureWarningr   is_anchoredrq   rs   s     r>   test_is_anchoredzTestDateOffset.test_is_anchoreds  sX    5''SA 	/!!}00222a=,,...	/ 	/ 	/s   7AA(c                    t        d      j                         t        d      k(  sJ t        d      j                         t        d      k(  sJ y )NrN   r   r0   r.   )r   r   r  s    r>   	test_copyz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                |    t        di |di|z   t        |      k(  sJ |t        di |diz   t        |      k(  sJ y Nr0   rO   r   r   rq   arithmatic_offset_typer   rP   s       r>   r   z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                    |t        di |diz
  t        |      k(  sJ t        j                  t        d      5  t        di |di|z
   d d d        y # 1 sw Y   y xY w)Nr0   z$Cannot subtract datetime from offsetrk   rO   )r   r   rn   ro   r   r$  s       r>   test_subzTestDateOffset.test_sub  sd    $ J="8!!<==8ATTTT]]9,RS 	;50!45:	; 	; 	;s   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                   t        di |di|z  |z   t        |      k(  sJ |t        di |diz  |z   t        |      k(  sJ |t        di |di|z  z   t        |      k(  sJ ||t        di |diz  z   t        |      k(  sJ y r"  r#  rq   r%  r3   r   rP   s        r>   test_mul_addz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AAYxEXXXXr@   )	r&  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                    |t        di |di|z  z
  t        |      k(  sJ ||t        di |diz  z
  t        |      k(  sJ y r"  r#  r+  s        r>   test_mul_subzTestDateOffset.test_mul_sub  sZ    & J="8!!<=AAYxEXXXXA
A&<a%@AAAYxEXXXXr@   c                \    t        ddd      }|t        d      z   t        ddd      k(  sJ y )NrM   r0      r   rN      )r   r   )rq   ds     r>   test_leap_yearzTestDateOffset.test_leap_year  s1    T1b!Ja((XdAr-BBBBr@   c                x    t        d      }t        d      }||k7  sJ t        d      t        d      k7  sJ y )Nr0   )r*   im  r}   r     r
  )rq   offset1offset2s      r>   test_eqz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                ^    t        di |}t        d      }||z   }t        |      }||k(  sJ y )N
2022-01-01rO   r#  )rq   offset_kwargsexpected_argrr   r   ry   r   s          r>   test_milliseconds_combinationz,TestDateOffset.test_milliseconds_combination  s<     ,m,|$f\*!!!r@   c                    d}t        j                  t        |      5  t        d       d d d        y # 1 sw Y   y xY w)Nz3^Invalid argument/s or bad combination of argumentsrk   r0   )picoseconds)rn   ro   
ValueErrorr   r  s     r>   test_offset_invalid_argumentsz,TestDateOffset.test_offset_invalid_arguments  s2    C]]:S1 	&1%	& 	& 	&s   4=N)r   r   r   r  r  r  rn   r   r   sorted
liboffsets_relativedelta_kwdsr  r  r  r  zip_ARITHMETIC_DATE_OFFSETr   r(  ranger,  r.  r3  r8  r>  rB  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                      e Zd Zd Zy)TestOffsetNamesc                   t               j                  dk(  sJ t        d      j                  dk(  sJ t               j                  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 t        d      j                  dk(  sJ t        d      j                  dk(  sJ t	        t
        j                        j                  dk(  sJ y )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_namez$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@   N)r   r   r   rV  rO   r@   r>   rJ  rJ    s    
Jr@   rJ  c                 j   t        j                  t        t              5  t	        d       d d d        t        j                  t        t              5  t	        d       d d d        dt               fdt               fdt               fdt               fdt        d	
      fdt        d
      fdt        d
      fdt        d
      fdt        d
      fg	} | D ]A  \  }}t	        |      }||k(  rJ dt        |       dt        |       dt        |       d        y # 1 sw Y   xY w# 1 sw Y   xY w)Nrk   	gibberishzQS-JAN-BrL  bbmeBmerP  r   rO  rQ  r0   rR  rN   rS  r}   rT  r   z	Expected z
 to yield z
 (actual: ))	rn   ro   rA  r   r   r   r   r%   r  )pairsnamer   rr   s       r>   test_get_offsetr_    s$   	z)=	> !K !	z)=	>  J  
df	df					$q/"	$q/"	$q/"	$q/"	$q/"
E   
hT"! 	
T
|:d8n-= >V~Q(	
!
#! !   s   DD)D&)D2c                     dt        d      fg} | D ]8  \  }}t        j                  t        t              5  t        |       d d d        : y # 1 sw Y   ExY w)Nzw@Satr9   rO  rk   )r%   rn   ro   rA  r   r   )r]  r^  r   s      r>   test_get_offset_legacyra  '  sW    tA'(E h]]:-AB 		 		 	s   AA	c                      e Zd Zd Zd Zd Zy)TestOffsetAliasesc                ,    t        j                          y r   r  r  s    r>   r  zTestOffsetAliases.setup_method/  r  r@   c                l    t        j                         D ]  \  }}|	||j                         k(  rJ  y r   )r   itemsr   )rq   r   vs      r>   test_alias_equalityz%TestOffsetAliases.test_alias_equality2  s8    %%' 	!DAqy= =	!r@   c                
   g d}|D ]C  }|t        |      j                  k(  sJ |t        v sJ |t        |      dz  j                  k(  rCJ  g d}d}|D ]L  }dj                  ||g      }|t        |      j                  k(  sJ |t        |      dz  j                  k(  rLJ  g d}g d}|D ]S  }|D ]L  }dj                  ||g      }|t        |      j                  k(  sJ |t        |      dz  j                  k(  rLJ  U y )	N)MEMSrN  BMSr   rL  hminr   r   r   r}   MONTUEWEDTHUFRISATrU  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)rq   lstr   
suffix_lstbaserg  aliasbase_lsts           r>   test_rule_codez TestOffsetAliases.test_rule_code8  s8   O 	7AA00000###Q!+66666		7 G
 	?AHHdAY'EK.88888[/!3>>>>>	?


 H 	CD C$+E 2 < <<<<U!3a!7 B BBBBC	Cr@   N)r   r   r   r  rh  r  rO   r@   r>   rc  rc  .  s    !"Cr@   rc  c                     t        dt        dd            } | j                  dk(  sJ t        dt        dd            } | j                  dk(  sJ y )Nr0   r   i  )rr   zB+30MinizB-30Min)r   r   r   )r   s    r>   test_freq_offsetsr  ]  sL    
q1d+
,C;;)###
q1e,
-C;;)###r@   c                      e Zd Zd Zy)TestReprNamesc                P   g d}|D cg c]  }dD ]
  }|dz   |z     }}}g d}||D cg c]  }d|z   	 c}z  }|dD cg c]  }|D ]
  }d|z   |z     c}}z  }t        j                          |D ]  }t        |      }	|	j                  |k(  rJ  y c c}}w c c}w c c}}w )N)r  r  r  r  r  r  r  r  rx  rw  ro  zW-)1234zWOM-)r   r  r   r   )
rq   month_prefixesprefixr   namesr*   r   r:   r^  rr   s
             r>   test_str_for_named_is_namez(TestReprNames.test_str_for_named_is_namef  s    M )

  SL5 
 
 
$ A-$*--2FW$RVW3&4-#%W%WW 	*D &F>>T)))	*-
& .Ws   BBB"N)r   r   r   r  rO   r@   r>   r  r  e  s    *r@   r  c                    | } |        y r   rO   rK   clss     r>   test_valid_default_argumentsr    s     CEr@   r  c                    |}d|  d}t        j                  t        |      5   |di | di d d d        y # 1 sw Y   y xY wNz1__init__\(\) got an unexpected keyword argument ''rk   r}   rO   rn   ro   r   )r  rH   r  rs   s       r>   test_valid_month_attributesr    sG     C>se1
EC	y	, sAh  	   8Ac                Z     | d      } | d      }|j                   |j                   k(  sJ y )Nr0   rN   )r^  )rH   objobj2s      r>   test_month_offset_namer    s,    

CD99   r@   c                    | dk(  r4|j                  t        j                  j                  t        d             t        di | di y )Nr  r  r  r0   rO   )r  rn   r   r  r  r   )r  rG   s     r>   test_valid_relativedelta_kwargsr    sH    
mKK*!  	
 #qr@   c                    |}d|  d}t        j                  t        |      5   |di | di d d d        y # 1 sw Y   y xY wr  r  )r  tick_classesr  rs   s       r>   test_valid_tick_attributesr    sG     C>se1
EC	y	, sAh  r  c                    t        j                  t        d      5  t        d       d d d        t        j                  t        d      5  t	        t        d             d d d        t        j                  t        d      5  t        t        j                  ddgt        j                               d d d        y # 1 sw Y   xY w# 1 sw Y   kxY w# 1 sw Y   y xY w)Nr   rk   zDoh!r3   r0   rN   )dtype)
rn   ro   r   r   r"   r   r   r   r   int64rO   r@   r>   test_validate_n_errorr    s    	y(E	F V 
y(E	F #Yq\"# 
y(E	F 1rxxAbhh/01 1 # #1 1s#   C C2C C	CC!c                z    | }t        j                  t        d      5   |d       d d d        y # 1 sw Y   y xY w)Nr   rk   g      ?r  rn   ro   rA  r  s     r>   test_require_integersr    s2    
C	z)F	G c
  s   
1:c                    | }d}t        j                  t        |      5   |dd       d d d        y # 1 sw Y   y xY w)Nz2Tick offset with `normalize=True` are not allowed.rk   r}   T)r3   r7   r  )r  r  rs   s      r>   test_tick_normalize_raisesr    s;     C
>C	z	- !a4 ! ! !s   4=r9  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                    t        di | }t        d      }||z   }t        |      }||k(  sJ ||z  }||k(  sJ ||z   }||k(  sJ y )Nr   rO   r#  )r<  r=  rr   r   ry   r   s         r>   test_dateoffset_add_subr    sh    2 (-(F	1B&[F&HX
fFR<<b[FXr@   c                 L   t        dd      } t        d      }|| z   }t        d      }||k(  sJ || z  }||k(  sJ | |z   }||k(  sJ t        ddd      }|j                  sJ t        j                  d       5  ||z   }d d d        t        d      }|k(  sJ y # 1 sw Y   xY w)	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   )rr   r   ry   r   r7  result2	expected2s          r>   +test_dateoffset_add_sub_timestamp_with_nanor    s    q1F	1B&[F89HX
fFR<<b[FX:G%%%%		#	#D	) w, 9:Ii	 s   9BB#	attribute)r+   r*   r)   r(   r'   c                    t        di | di}d}t        j                  t        |      5  t	        || d       d d d        y # 1 sw Y   y xY w)Nr   z DateOffset objects are immutablerk   r9   rO   )r   rn   ro   rp   setattr)r  rr   rs   s      r>   test_dateoffset_immutabler  
  sI     )9a.)F
,C	~S	1 &	1%& & &s   AAc                     t        j                  dd      } | j                   t        j                  d      dk(  rJ y )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                    t        |       }|j                  t        d      k(  sJ t        ddd      |z   }t        ddd| z         }||k(  sJ y )Nr0   i  rN   )r   _offsetr   r   )r3   rr   ry   r   s       r>   -test_construct_int_arg_no_kwargs_assumed_daysr  #  sV     ]F>>Yq\)))tQ"V+Fq!a%(HXr@   zoffset, expectedr5     r  z2022-01-01 00:07:00.000000018r}   )r  z2022-01-01 00:00:00.000000003c                    t        d      }|}t        |g      }|| z   }|d   |k(  sJ || z  }|d   |k(  sJ | |z   }|d   |k(  sJ y )Nr;  r   )r   r   )rr   r   
start_time	teststamp
testseriess        r>   2test_dateoffset_add_sub_timestamp_series_with_nanor  -  ss     <(JI%Jf$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                    t        |       }t        |      }t        |g      }|||z  z   }|||z  z   }t        |      }	t        |	g      }
||	k(  sJ t        j                  ||
       y )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  sx     H
%CO,K&J#"67Ln 45K12NN+,M>)));6r@   c                    t        t        d      gt        d      gd      } | d   d| d   z  z   }t        t        d      t        d      gt        d      t        d      gd      }t        d      }t        j                  t
              5  |d   d|d   z  z   }d d d        |d	   |k(  sJ d	   |k(  sJ y # 1 sw Y   xY w)
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 03x"s3x-/0 ?l***?l***	0 0s   B::Cc                    t        d      } t        d      }t        d      }t        d      }t        d      }t        d      }t        d      }g | j                  t        d            d	f|j                  t        d            d
f| j                  t        d            d
f|j                  t        d            d	f|j                  t        d            d	f|j	                  t        d            d	f|j                  t        d            d	f|j                  t        d            d	f|j                  t        d            d	f|j                  t        d            d	f|j                  t        d            d	f|j	                  t        d            d
f|j                  t        d            d
f|j                  t        d            d	f|j                  t        d            d	f|j                  t        d            d	f|j                  t        d            d
f|j	                  t        d            d
f|j                  t        d            d
f|j                  t        d            d	f|j	                  t        d            d	f|j                  t        d            d
f|j                  t        d            d
f|j	                  t        d            d
f|j                  t        d            d
f|j                  t        d            d	f|j	                  t        d            d	f|j                  t        d            d	f|j                  t        d            d	f|j                  t        d            d	ft        d      j                  dft        d      j                  df}|D ]  \  }}	||	k(  rJ  y )Nrj  rN  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-01r1     )	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  s<   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  	EU{{r@   )r0   F)___doc__
__future__r   r   r   numpyr   rn   pandas._libs.tslibsr   r   r   r	   r
   pandas._libs.tslibs.offsets_libstslibsr   rD  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&   rG  r?   fixture__all__r   r   rA   rH   rK   rP   rg   ri   r   rJ  r_  ra  rc  r  r  r  r   r   rC  rE  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  )os   0r>   <module>r     sg   #
    1 0 
 < ,   7 "    (
 @  ggq):+A+AB 	 %,__ !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   //M*	M/M/