
    bMh                       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Z7dddZ8 ej9        d ej:        D                       d             Z; ej9        d ej:        D                       d             Z<ej9        d             Z=ej9        d             Z> G d d          Z? G d d          Z@ G d d          ZAd ZBd ZC G d  d!          ZDd" ZE G d# d$          ZFd% ZGejH        I                    d& eJejK                            d'             ZLd( ZMejH        I                    d& eJejK                            d)             ZNejH        I                    d& eJejK                            d*             ZOd+ ZPd, ZQd- ZRejH        I                    d.d/did0fd/d1id2fd/d3id4fd5did6fd5d3id7fd8did9fd8d3id:fd;did<fd;d3id=fd>did?fd>d3id@fdAdidBfdAd3idCfdDdidEfdDd3idFfdGdidHfdGd3idIfdJdidKfdJd3idLfg          dM             ZSdN ZTejH        I                    dOg dP          dQ             ZUdR ZVejH        I                    dSg dT          dU             ZWejH        I                    dV e.dWdXY           edZ          f e.d[\           ed]          fg          d^             ZXejH        I                    d_g d`          da             ZYdb ZZdc Z[dS )ez!
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   Fc                J   | t           u r | |ddd|          } n| t          u r | |dddd|          } nm| t          u r | |d|          } nU| t          u r | |dd|          } n<| t          u r | |d|          } n$| t
          u r | ||          } n | ||	          } | 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      i/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/pandas/tests/tseries/offsets/test_offsets.py_create_offsetr?   I   s   
 
 
 
-		 !
 
 
 
/	!	!qI>>>	+		AqIFFF	$qI>>>	*		5I666ey111L    c                    g | ]J}t          t          t          |          t          j                  r|d k    5t          t          |          KS )MonthOffset)
issubclassgetattrr   
liboffsetsrB   .0os     r>   
<listcomp>rI   j   sZ       ggq)):+ABB  	 r@   )paramsc                    | j         S )zO
    Fixture for month based datetime offsets available for a time series.
    paramrequests    r>   month_classesrP   i   s     =r@   c                @    g | ]}|d vt          t          |          S ))r$   
BaseOffset)rD   r   rF   s     r>   rI   rI   y   s4        !AW8W8W8W8W8Wr@   c                    | j         S )zK
    Fixture for all the datetime offsets available for a time series.
    rL   rN   s    r>   offset_typesrT   x   s     =r@   c                 >    t          t          ddd                    S )N  r0      )r   r    r@   r>   dtrY      s    XdAq))***r@   c                 J   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   rX   r@   r>   	expectedsrp      s   
#y.//#i 566# 	y!677# 	Y'<==	#
 	!),A"B"B# 	#I.C$D$D# 	i 566# 	i(=>># 	I344# 		"788# 	)$9::# 	I&;<<# 	Y455# 	i 566# 	9233#  	I344!#" 		"788## #$ 	#899%#& 	i 566'#( 	y!677)#* 		"788+#, 	i(=>>-#. 	y!677/#0 	9%:;;1#2 	#8993#4 	)1225#6 		/007#8 	)1229#: 		/00;#< 	)122=#> 	)122?#@ 	788A#B 	78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                            d          ej                            dg d          d                         ZdS )
TestCommonc                   t          |          }d}t          j        t          |          5  d|_        d d d            n# 1 swxY w Y   t          j        t          |          5  d|_        d d d            d S # 1 swxY w Y   d S )Nz8objects is not writable|DateOffset objects are immutablematchT[   )r?   pytestraisesAttributeErrorr7   r3   )selfrT   offsetmsgs       r>   test_immutablezTestCommon.test_immutable   s   --H]>555 	$ 	$#F	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$]>555 	 	FH	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s#   AAA'A<<B B c                0   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 |                     t                    t          u sJ d S )N20080101)r?   r   
isinstancer   _apply)rz   rT   r{   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 d S )Nr0      )r?   r3   )rz   rT   r{   
neg_offset
mul_offsets        r>   test_offset_nzTestCommon.test_offset_n   s\    --x1}}}}b[
|r!!!!aZ
|q      r@   c                    t          |          }t          j        dd          }t          j        t
          d          5   t          |          dd|i|j         d d d            d S # 1 swxY w Y   d S )Ni  sargument must be an integerrt   r3   rX   )r?   nptimedelta64rw   rx   	TypeErrortypekwds)rz   rT   offtd64s       r>   test_offset_timedelta64_argz&TestCommon.test_offset_timedelta64_arg   s     \**~dC((]9,IJJJ 	* 	*DII))))))	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	*s    A**A.1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        ||           d S )NrW   r      r0   )r?   r   arraytmassert_numpy_array_equal)rz   rT   r   expectedr   s        r>   test_offset_mul_ndarrayz"TestCommon.test_offset_mul_ndarray   s    \**8c37^cAgsQw-?@AAAq6Aq6*++c1
#FH555rx!Q!Q 0111
#FH55555r@   c                v    t          |          }|j        }|dvrt          |          }|j        |k    sJ d S d S )N)z<Easter>z<DateOffset: days=1>zLWOM-SAT)r?   freqstrr   	rule_code)rz   rT   r{   r   codes        r>   test_offset_freqstrzTestCommon.test_offset_freqstr   sR    --.JJJw''D#t++++ KJ++r@   Fc                   |rt          |t                    rd S 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            n# 1 swxY w Y   t	          |t
                    sJ |du r||t          d          z   k    sJ n||k    sJ t	          |t          j
                  rd S dD ]9}
|                    |
          }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            n# 1 swxY w Y   t	          |t
                    sJ |du r||t          d          z   k    sJ 1||k    sJ ;d S )Nr;   r9   F)NUTCz
Asia/Tokyoz
US/Easternzdateutil/Asia/Tokyozdateutil/US/Pacifictz)rC   r$   r?   rD   r   r   r#   r   assert_produces_warningr   
datetime64tz_localizer
   maybe_get_tzr	   localize_pydatetime)rz   r{   funcnamerY   r   r7   offset_sfuncr   tsr   expected_localizetz_objdt_tzs                 r>   _check_offsetfunc_worksz"TestCommon._check_offsetfunc_works   s\    	FD11 	F!&I>>>x**b&),,,,,!!!!imm$$&),,,,,!!!! r]]T!WW$'-- 	 	T"XXF	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 &),,,,,XQ//////X%%%%b"-(( 	F
 	3 	3B !) 4 4R 8 8+B//F22v>>ET%[[Ffi00000.....T)B2...//Ffi00000..... 2"%%%Q/B+D11 " "b" " " " " " " " " " " " " " "fi00000E!!!2T!WW!<<<<<<!222222;	3 	3s$   C''C+.C+%H==I	I	c                "   t          ddddd          }t          j        d          }||j                 }t	          |                                          }||fD ]4}|                     |d||           |                     |d||d           5d S )	N  r0   	   r   2011-01-01 09:00r   Tr;   )r   r   r   __name__r   dater   )rz   rT   rp   sdtndtr   expected_normrY   s           r>   
test_applyzTestCommon.test_apply1  s    tQ1a((m.//\23!(--//22* 	 	B((xXNNN((hMT )    	 	r@   c                   |                                 }g d}|D ]}t          d          ||<   t          d          |d<   t          d          |d<   |                                 }|D ],}t          ||                                                   ||<   -t          d          t          d          t          d          t          d          t          d	          t          d
          t          d          t          d          t          d          t          d          t          d          d}|                    |           t	          ddddd          }t          j        d          }	||	fD ]N}
||j                 }|                     |d|
|           ||j                 }|                     |d|
|d           Od S )Nr[   r"   ra   rc   r%   rk   rl   rm   rn   ro   r#   r   2011/01/01 09:00r]   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r[   r   r"   ra   rc   r%   rk   rl   rm   rn   ro   r   r0   r   r   r   rollforwardTr;   )	copyr   r   updater   r   r   r   r   )rz   rT   rp   
no_changesr3   norm_expectedk
normalizedr   r   rY   r   s               r>   test_rollforwardzTestCommon.test_rollforward?  s   NN$$	
 
 

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

 	Z(((tQ1a((m.//* 	 	B !67H((}b(SS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          ||<   |                                }|D ],}t          ||                                                   ||<   -t          d          t          d          t          d          t          d           t          d!          t          d"          t          d#          t          d#          t          d#          t          d#          t          d#          d$}|                    |           t	          d%d&d&d'd(          }t          j        d)          }||fD ]N}	||j                 }
|                     |d*|	|
           ||j                 }
|                     |d*|	|
d+,           Od S )-Nr\   z2010-12-31 09:00:00r   r   r   z2010-12-01 09:00:00r^   r_   r`   rb   rd   z2010-01-01 09:00:00re   rf   rg   rh   ri   rj   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   )rz   rT   rp   r3   r   r   r   r   r   rY   r   s              r>   test_rollbackzTestCommon.test_rollbackv  sq   
9%:;;
+@!A!A
 %i0E&F&F
 '	2G(H(H	

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

 	Z(((tQ1a((m.//* 	 	B !67H((z2xPPP$\%:;H((j"h$ )    	 	r@   c                |   ||j                  }t          |          }|                    |          sJ t          |t                    rd S t          |d          }|                    |          rJ |t
          t          fv rd S t          |j        |j	        |j
                  }|                    |          sJ d S )NTr;   )r   r?   is_on_offsetrC   r$   r   r   r   yearmonthday)rz   rT   rp   rY   r   offset_nr   s          r>   test_is_on_offsetzTestCommon.test_is_on_offset  s    |,-!,//$$R((((( lD)) 	F!,$???((,,,,,L*<=== F2622$$T*******r@   c                   |}t          ddddd          }t          |          }||j                 }||z   }t          |          |z   }	||	fD ]!}
t	          |
t                    sJ |
|k    sJ "|                    |          }t          ||          |z   }
t	          |
t                    sJ |
|k    sJ t          |t                    rd S t          |d          }t          |                                          }||z   }t          |          |z   }	||	fD ]!}
t	          |
t                    sJ |
|k    sJ "|                    |          }t          ||          |z   }
t	          |
t                    sJ |
|k    sJ d S )Nr   r0   r   r   r   Tr;   )	r   r?   r   r   r   r   rC   r$   r   )rz   rT   tz_naive_fixturerp   r   rY   r   r   	result_dt	result_tsr   r   s               r>   test_addzTestCommon.test_add  s   dAq!Q''!,//\23M	bMMH,	 ), 	& 	&Ffi00000X%%%%%$00442"%%%0&),,,,,***** lD)) 	F!,$???X]]__--M	bMMH,	 ), 	& 	&Ffi00000X%%%%%$00442"%%%0&),,,,,*******r@   c                l   t          |          }t          g |                              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            n# 1 swxY w Y   t          j        ||           t          j        ||          5  ||z   }d d d            n# 1 swxY w Y   t          j        ||           |j        }t          j        ||          5  ||z   }d d d            n# 1 swxY w Y   t          j        ||           t          j        ||          5  ||z   }d d d            n# 1 swxY w Y   t          j        ||           d S )Nr   ns)check_stacklevel)r?   r   as_unitr   r   r&   r!   r   r   r   r   r   r   r    r   r   r   assert_index_equal_dataassert_equal)	rz   rT   r   r   dtiwarnr   r   dtas	            r>   test_add_empty_datetimeindexz'TestCommon.test_add_empty_datetimeindex  s   !,//B#3444<<TBB!"(&
 
 	&  &D ,t3'?OPPP 	$ 	$8^F	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$
fc***'?OPPP 	$ 	$^F	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$
fc***i'?OPPP 	$ 	$8^F	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$
$$$'?OPPP 	$ 	$^F	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$
$$$$$sH   #B55B9<B9+C==DD:EEEFFFc                    t          |          }t          j        |          }||k    sJ t          |          t          ur5|j        D ]/}|dk    r	t          ||          t          ||          k    sJ .d S d S )Ncalendar)r?   r   round_trip_pickler   r   _attributesrD   )rz   rT   r   resattrs        r>   test_pickle_roundtripz TestCommon.test_pickle_roundtrip"  s    \**"3''czzzz99J&& @ @:%% sD))WS$-?-?????? '&@ @r@   c                    t          d          }t          j        |          }||k    sJ t          ddd          }||z   ||z   k    sJ d S )N   r(   i  r0   )r   r   r   r   )rz   r   r   base_dts       r>   !test_pickle_dateoffset_odd_inputsz,TestCommon.test_pickle_dateoffset_odd_inputs/  s_    ###"3''czzzz4A&&}#------r@   c                F    t          |          }t          |          J d S N)r?   hash)rz   rT   r   s      r>   test_offsets_hashablez TestCommon.test_offsets_hashable8  s'    \**Cyy$$$$$r@   zIignore:Non-vectorized DateOffset being applied to Series or DatetimeIndexunit)r   msusc                   t          |          t          ddd|          }|z                       d           }|}t          t                    r)j        |j        j        k    rt                    j        }t          fd|D                       
                    |          }t          j        ||           d S )Nz
2016-01-01#   D)periodsfreqr   c                    g | ]}|z   S rX   rX   )rG   xr   s     r>   rI   z=TestCommon.test_add_dt64_ndarray_non_nano.<locals>.<listcomp>O  s    !7!7!7a!c'!7!7!7r@   )r?   r   
_with_freqr   r$   _cresor   r   r   r   r   r   r   )rz   rT   r   r   r   exp_unitr   r   s          @r>   test_add_dt64_ndarray_non_nanoz)TestCommon.test_add_dt64_ndarray_non_nano>  s     \**r$GGG)''--c4   	+SZ#)2B%B%B ~~*H !7!7!7!73!7!7!788@@JJ
fh/////r@   N)F)r   
__module____qualname__r}   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rw   markfilterwarningsparametrizer   rX   r@   r>   rr   rr      sm         , , ,! ! !* * *	6 	6 	6, , ,=3 =3 =3 =3~  5 5 5nI I IV+ + +&!+ !+ !+F)% )% )%V@ @ @. . .% % % [S  [V%6%6%6770 0 87 0 0 0r@   rr   c                     e Zd Zd Zd Zd Zej                            d e	e
j                            d             Zd Zd Zd Zej                            d	 eeg d
                    d             Zej                            d	 eeg d                    d             Zej                            d ee edd          g d                    d             Zej                            d ee edd          g d                    d             Zd Zd Ze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d*S )+TestDateOffsetc                ,    t          j                     d S r   r   clearrz   s    r>   setup_methodzTestDateOffset.setup_methodU      r@   c                    t          t                                 t          t          d                     t          dt                      z             t          dt          d          z             d S )NrW   r   )reprr   r  s    r>   	test_reprzTestDateOffset.test_reprX  sc    Z\\Z]]QQ1%%%%&&&&&r@   c                    t          d          dt          d          z  k    sJ t          d          t          d          dz  k    sJ d S )NrW   r0   r   r  s    r>   test_mulzTestDateOffset.test_mul^  sL    !}}JqMM 11111!}}
1 1111111r@   kwdc                    |dk    r9|                     t          j                            t          d                     t          di |di}|j        |dik    sJ t          ||          dk    sJ d S )NmillisecondGConstructing DateOffset object with `millisecond` is not yet supported.rx   reasonrW   rX   )applymarkerrw   r  xfailNotImplementedErrorr   r   rD   )rz   r  rO   r{   s       r>   test_constructorzTestDateOffset.test_constructorb  s    -!!.% "     ''sAh''{sAh&&&&vs##q((((((r@   c                T    |t          d          z   t          ddd          k    sJ d S )NrW   rV   r0   r   )r   r   )rz   rY   s     r>   test_default_constructorz'TestDateOffset.test_default_constructorp  s0    Z]]"xa';';;;;;;;r@   c                    d}t          j        t          |          5  t          d                                          rJ t          d                                          sJ 	 d d d            d S # 1 swxY w Y   d S )Nz%DateOffset.is_anchored is deprecated rt   rW   r0   )r   r   FutureWarningr   is_anchoredrz   r|   s     r>   test_is_anchoredzTestDateOffset.test_is_anchoreds  s    5'SAAA 	/ 	/!!}}0022222a==,,......	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/s   AA33A7:A7c                    t          d                                          t          d          k    sJ t          d                                          t          d          k    sJ d S )NrW   r   r0   r.   )r   r   r  s    r>   	test_copyzTestDateOffset.test_copyz  sn    ###((**j.B.B.BBBBBq)))..00JA4N4N4NNNN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 d S Nr0   rX   r   r   rz   arithmatic_offset_typer   rY   s       r>   r   zTestDateOffset.test_add~  sn    $ 883Q7882=8ATATTTTTJ=="8!!<===8ATATTTT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            d S # 1 swxY w Y   d S )Nr0   z$Cannot subtract datetime from offsetrt   rX   )r   r   rw   rx   r   r,  s       r>   test_subzTestDateOffset.test_sub  s    $ J=="8!!<===8ATATTTTT]9,RSSS 	; 	;550!455::	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	;s    A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 d S r*  r+  rz   r-  r3   r   rY   s        r>   test_mul_addzTestDateOffset.test_mul_add  s    & 883Q7881<rAYxEXEXXXXX:<<!7 ;<<<rAYxEXEXXXXXJ=="8!!<==AAYxEXEXXXXXA
AA&<a%@AAAAYxEXEXXXX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 d S r*  r+  r3  s        r>   test_mul_subzTestDateOffset.test_mul_sub  sx    & J=="8!!<==AAYxEXEXXXXXA
AA&<a%@AAAAYxEXEXXXXXXXr@   c                x    t          ddd          }|t          d          z   t          ddd          k    sJ d S )NrV   r0      r   rW      )r   r   )rz   ds     r>   test_leap_yearzTestDateOffset.test_leap_year  sF    T1b!!Ja((((XdAr-B-BBBBBBBr@   c                    t          d          }t          d          }||k    sJ t          d          t          d          k    sJ d S )Nr0   )r*   im  r   r&     r  )rz   offset1offset2s      r>   test_eqzTestDateOffset.test_eq  s`    !$$$#&&&'!!!!q)))ZQ-G-G-GGG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    t          di |}t          d          }||z   }t          |          }||k    sJ d S )N
2022-01-01rX   r+  )rz   offset_kwargsexpected_argr{   r   r   r   s          r>   test_milliseconds_combinationz,TestDateOffset.test_milliseconds_combination  sQ     ,,m,,|$$f\**!!!!!!r@   c                    d}t          j        t          |          5  t          d           d d d            d S # 1 swxY w Y   d S )Nz3^Invalid argument/s or bad combination of argumentsrt   r0   )picoseconds)rw   rx   
ValueErrorr   r#  s     r>   test_offset_invalid_argumentsz,TestDateOffset.test_offset_invalid_arguments  s    C]:S111 	& 	&1%%%%	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	&s   <A A N)r   r  r  r  r  r  rw   r  r  sortedrE   _relativedelta_kwdsr  r  r$  r'  zip_ARITHMETIC_DATE_OFFSETr   r0  ranger4  r6  r;  r@  rF  rJ  rX   r@   r>   r  r  T  s         ' ' '2 2 2 [UFF:+I$J$JKK) ) LK)< < </ / /O O O [*#
 
 
	
 	
 "U U# "U [*#
 
 
	
 	
 "; ;# ";
 [-#E!RLL
 
 
	
 	
 $Y Y% $Y [-#E!RLL
 
 
	
 	
 $Y Y% $YC C CH H H [%3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dS )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 d S )NBrW   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    vv~$$$$Aww$&&&&{{"e++++A&'1111A&'1111A&'1111A&'1111A&'1111w{333;zIIIIIIr@   N)r   r  r  r]  rX   r@   r>   rQ  rQ    s(        
J 
J 
J 
J 
Jr@   rQ  c                    t          j        t          t                    5  t	          d           d d d            n# 1 swxY w Y   t          j        t          t                    5  t	          d           d d d            n# 1 swxY w Y   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 ]U\  }}t	          |          }||k    s;J dt          |           dt          |           dt          |           d            Vd S )Nrt   	gibberishzQS-JAN-BrS  bbmeBmerW  r   rV  rX  r0   rY  rW   rZ  r   r[  r   z	Expected z
 to yield z
 (actual: ))	rw   rx   rI  r   r   r   r   r%   r  )pairsnamer   r{   s       r>   test_get_offsetrf    s   	z)=	>	>	> ! !K   ! ! ! ! ! ! ! ! ! ! ! ! ! ! !	z)=	>	>	>    J                              
dff	dff					$q///"	$q///"	$q///"	$q///"	$q///"
E   
 
hT""!!!(T

 ( (d8nn ( (V( ( ( "!!!
 
s!   =AA(BBBc                     dt          d          fg} | D ]L\  }}t          j        t          t                    5  t          |           d d d            n# 1 swxY w Y   Md S )Nzw@Satr9   rV  rt   )r%   rw   rx   rI  r   r   )rd  re  r   s      r>   test_get_offset_legacyrh  '  s    tA'(E  h]:-ABBB 	 		 	 	 	 	 	 	 	 	 	 	 	 	 	 	 s   AA	A	c                       e Zd Zd Zd Zd ZdS )TestOffsetAliasesc                ,    t          j                     d S r   r	  r  s    r>   r  zTestOffsetAliases.setup_method/  r  r@   c                r    t          j                    D ]"\  }}|||                                k    sJ #d S r   )r   itemsr   )rz   r   vs      r>   test_alias_equalityz%TestOffsetAliases.test_alias_equality2  sG    %'' 	! 	!DAqy=====	! 	!r@   c                   g d}|D ]D}|t          |          j        k    sJ |t          v sJ |t          |          dz  j        k    sJ Eg d}d}|D ]P}d                    ||g          }|t          |          j        k    sJ |t          |          dz  j        k    sJ Qg d}g d}|D ]U}|D ]P}d                    ||g          }|t          |          j        k    sJ |t          |          dz  j        k    sJ QVd S )	N)MEMSrU  BMSr   rS  hminr   r   r   r   MONTUEWEDTHUFRISATr\  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)rz   lstr   
suffix_lstbasern  aliasbase_lsts           r>   test_rule_codez TestOffsetAliases.test_rule_code8  s   OOO 	7 	7AA00000####Q!+666666FFF
 	? 	?AHHdAY''EK..88888[//!3>>>>>>
 
 

 HGG 	C 	CD C C$++E 2 2 <<<<<U!3!3a!7 BBBBBBC	C 	Cr@   N)r   r  r  r  ro  r  rX   r@   r>   rj  rj  .  sF          ! ! !"C "C "C "C "Cr@   rj  c                     t          dt          dd                    } | j        dk    sJ t          dt          dd                    } | j        dk    sJ d S )Nr0   r   i  )r{   zB+30MinizB-30Min)r   r   r   )r   s    r>   test_freq_offsetsr  ]  sf    
q1d++
,
,
,C;)####
q1e,,
-
-
-C;)######r@   c                      e Zd Zd ZdS )TestReprNamesc                    g d}d |D             }g d|d D             z  }|fddD             z  }t          j                     |D ]}t          |          }|j        |k    sJ d S )N)r  r  r  r  r  r  r  r  c                (    g | ]}d D ]
}|dz   |z   S )r  r~  rX   )rG   prefixr   s      r>   rI   z<TestReprNames.test_str_for_named_is_name.<locals>.<listcomp>i  sJ     
 
 

 
  SL5 
 
 
 
r@   rv  c                    g | ]}d |z   S )zW-rX   )rG   r   s     r>   rI   z<TestReprNames.test_str_for_named_is_name.<locals>.<listcomp>|  s    ---$*---r@   c                *    g | ]}D ]
}d |z   |z   S )zWOM-rX   )rG   r:   r   r*   s      r>   rI   z<TestReprNames.test_str_for_named_is_name.<locals>.<listcomp>}  s0    WWW$RVWW3&4-#%WWWWr@   )1234)r   r
  r   r   )rz   month_prefixesnamesre  r{   r*   s        @r>   test_str_for_named_is_namez(TestReprNames.test_str_for_named_is_namef  s    MMM
 
(
 
 
$ A@@------WWWW2FWWWW 	* 	*D &&F>T)))))	* 	*r@   N)r   r  r  r  rX   r@   r>   r  r  e  s#        * * * * *r@   r  c                    | } |             d S r   rX   rT   clss     r>   test_valid_default_argumentsr    s     CCEEEEEr@   r  c                    |}d|  d}t          j        t          |          5   |di | di d d d            d S # 1 swxY w Y   d S Nz1__init__\(\) got an unexpected keyword argument ''rt   r   rX   rw   rx   r   )r  rP   r  r|   s       r>   test_valid_month_attributesr    s     C
Es
E
E
EC	y	,	,	,  sAh                    <A A c                V     | d          } | d          }|j         |j         k    sJ d S )Nr0   rW   )re  )rP   objobj2s      r>   test_month_offset_namer    s;    
-

C=D9      r@   c                    | dk    r9|                     t          j                            t          d                     t          di | di d S )Nr  r  r  r0   rX   )r  rw   r  r  r  r   )r  rO   s     r>   test_valid_relativedelta_kwargsr    sg    
mK*!   	
 	
 	
 #qr@   c                    |}d|  d}t          j        t          |          5   |di | di d d d            d S # 1 swxY w Y   d S r  r  )r  tick_classesr  r|   s       r>   test_valid_tick_attributesr    s     C
Es
E
E
EC	y	,	,	,  sAh                 r  c                    t          j        t          d          5  t          d           d d d            n# 1 swxY w Y   t          j        t          d          5  t	          t          d                     d d d            n# 1 swxY w Y   t          j        t          d          5  t          t          j        ddgt          j	                             d d d            d S # 1 swxY w Y   d S )Nr   rt   zDoh!r3   r0   rW   )dtype)
rw   rx   r   r   r"   r   r   r   r   int64rX   r@   r>   test_validate_n_errorr    s   	y(E	F	F	F  V               
y(E	F	F	F # #Yq\\""""# # # # # # # # # # # # # # # 
y(E	F	F	F 1 1rxAbh///00001 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1s1   9= =B		BB/1C--C14C1c                    | }t          j        t          d          5   |d           d d d            d S # 1 swxY w Y   d S )Nr   rt   g      ?r  rw   rx   rI  r  s     r>   test_require_integersr    s    
C	z)F	G	G	G  c



                 s   8<<c                    | }d}t          j        t          |          5   |dd           d d d            d S # 1 swxY w Y   d S )Nz2Tick offset with `normalize=True` are not allowed.rt   r   T)r3   r7   r  )r  r  r|   s      r>   test_tick_normalize_raisesr    s     C
>C	z	-	-	- ! !a4    ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !s   ;??rA  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 d S )Nr   rX   r+  )rD  rE  r{   r   r   r   s         r>   test_dateoffset_add_subr    s    2 ((-((F	1B&[F&&HX
fFR<<<<b[FXr@   c                 x   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            n# 1 swxY w Y   t          d          }||k    sJ d S )	NrW   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   )r{   r   r   r   r?  result2	expected2s          r>   +test_dateoffset_add_sub_timestamp_with_nanor    s1   q111F	1B&[F899HX
fFR<<<<b[FX:::G%%%%		#D	)	)  w,               9::Iis   BBB	attribute)r+   r*   r)   r(   r'   c                    t          di | di}d}t          j        t          |          5  t	          || d           d d d            d S # 1 swxY w Y   d S )Nr   z DateOffset objects are immutablert   r9   rX   )r   rw   rx   ry   setattr)r  r{   r|   s      r>   test_dateoffset_immutabler  
  s     ))9a.))F
,C	~S	1	1	1 & &	1%%%& & & & & & & & & & & & & & & & & &s   AAAc                 v    t          j        dd          } | j         t          j        d          dk    rJ d S )NrW   r   )r(   r*   r   )r   r   r   )osets    r>   test_dateoffset_miscr    sC    QQ///DLL!+++q00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 d S )Nr0   i  rW   )r   _offsetr   r   )r3   r{   r   r   s       r>   -test_construct_int_arg_no_kwargs_assumed_daysr  #  sj     ]]F>Yq\\))))tQ""V+Fq!a%((HXr@   zoffset, expectedr=     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 d S )NrC  r   )r   r   )r{   r   
start_time	teststamp
testseriess        r>   2test_dateoffset_add_sub_timestamp_series_with_nanor  -  s     <((JI%%Jf$Ja=H$$$$&Ja=I%%%%*$Ja=H$$$$$$r@   z=n_months, scaling_factor, start_timestamp, expected_timestamp))r0   rW   
2020-01-30
2020-03-30)rW   r0   r  r  )r0   r   r  r  )rW   r   r  r  )r0   r   r  z
2019-12-30)rW   r   r  z
2019-11-30c                    t          |           }t          |          }t          |g          }|||z  z   }|||z  z   }t          |          }	t          |	g          }
||	k    sJ t          j        ||
           d S )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  s     H
%
%
%CO,,K&&J#"67Ln 45K122NN+,,M>))));6666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            n# 1 swxY w Y   |d	         |k    sJ |d	         |k    sJ d S )
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  sS   	)L112*A:N:N:N9OPP	Q	QBc7R"S'\)L
L))9\+B+BCA&&&
!(<(<(<=	
 	
 C \**L		#$6	7	7 0 03x"s3x-/0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ?l****?l******s   8CC Cc                 	   t          d          } t          d          }t          d          }t          d          }t          d          }t          d          }t          d          }g |                     t          d                    d	f|                    t          d                    d
f|                     t          d                    d
f|                    t          d                    d	f|                    t          d                    d	f|                    t          d                    d	f|                    t          d                    d	f|                    t          d                    d	f|                    t          d                    d	f|                    t          d                    d	f|                    t          d                    d	f|                    t          d                    d
f|                    t          d                    d
f|                    t          d                    d	f|                    t          d                    d	f|                    t          d                    d	f|                    t          d                    d
f|                    t          d                    d
f|                    t          d                    d
f|                    t          d                    d	f|                    t          d                    d	f|                    t          d                    d
f|                    t          d                    d
f|                    t          d                    d
f|                    t          d                    d
f|                    t          d                    d	f|                    t          d                    d	f|                    t          d                    d	f|                    t          d                    d	f|                    t          d                    d	ft          d          j        dft          d          j        df}|D ]\  }}	||	k    sJ d S )Nrq  rU  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-01r9     )	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6	7	7;!			9\22	3	3Q7! 
		y66	7	7;! 
		9\22	3	3Q7	!
 
		9\22	3	3Q7! 
		Y|44	5	5q9! 
		)L11	2	2A6! 
		Y|44	5	5q9! 
		y66	7	7;! 
		Il33	4	4a8! 
		Il33	4	4a8! 
		i55	6	6:! 
		9\22	3	3Q7! 
		i55	6	6:! 
			, 7 7	8	8!<!  
		Y|44	5	5q9!!" 
<00	1	115#!$ 
		9\22	3	3Q7%!& 
	,//	0	0!4'!( 
<00	1	115)!* 
		9\22	3	3Q7+!, 
	,//	0	0!4-!. 
		i55	6	6:/!0 
			, 7 7	8	8!<1!2 
		Y|44	5	5q93!4 
		i55	6	6:5!6 
			, 7 7	8	8!<7!8 
		Y|44	5	5q99!: 
		i55	6	6:;!< 
		Il33	4	4a8=!> 
<	 	 	.3?!@ 
<	 	 	.3A!EF   	EU{{{{{ r@   )r0   F)\__doc__
__future__r   r   r   numpyr   rw   pandas._libs.tslibsr   r   r   r	   r
   pandas._libs.tslibs.offsets_libstslibsr   rE   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&   rN  r?   fixture__all__rP   rT   rY   rp   rr   r  rQ  rf  rh  rj  r  r  r  r  r  rK  rL  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  rX   r@   r>   <module>r     s!    # " " " " "       
                   1 0 0 0 0 0 0 0 0 0 0 0         
 < ; ; ; ; ; , , , , , ,                  7 7 7 7 7 7 " " " " " "                                     (
 
 
    @          %,_    
  
 + + + ' ' 'T]0 ]0 ]0 ]0 ]0 ]0 ]0 ]0@h& h& h& h& h& h& h& h&VJ J J J J J J J
 
 
4  ,C ,C ,C ,C ,C ,C ,C ,C^$ $ $* * * * * * * *D
 
 
 z'E F FGG  HG! ! ! z'E F FGG  HG z'E F FGG  HG1 1 1  ! ! ! !
	<=
	<=
	=>
!	:;
"	;<
Q./
R/0
Q./
R/0
1,-
2-.
!+,
",-
1,-
2-.
A-.
B./
1,-
2-.' 0	 	1 0	     (   	 	& &	 	&1 1 1 jjj))  *)  Jqb111I566	
 
	"	"	"II.M$N$NO	 	
% 
%	 	
% C  
 
7 7
 
7&+ + +$- - - - -r@   