a
    d                     @  s  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  m  mZ ddl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.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5 g dZ6dtddZ7ej8dd Z9ej8dd Z:G dd dZ;G dd dZ<G dd dZ=dd Z>dd Z?G d d! d!Z@d"d# ZAG d$d% d%ZBd&d' ZCejDEd(eFejGd)d* ZHd+d, ZIejDEd(eFejGd-d. ZJejDEd(eFejGd/d0 ZKd1d2 ZLd3d4 ZMd5d6 ZNejDEd7d8did9fd8d:id;fd8d<id=fd>did?fd>d<id@fdAdidBfdAd<idCfdDdidEfdDd<idFfdGdidHfdGd<idIfdJdidKfdJd<idLfdMdidNfdMd<idOfdPdidQfdPd<idRfdSdidTfdSd<idUfgdVdW ZOdXdY ZPejDEdZg d[d\d] ZQd^d_ ZRejDEd`g dadbdc ZSejDEdde-dedfdgedhfe-didjedkfgdldm ZTejDEdng dodpdq ZUdrds ZVdS )uz!
Tests of pandas.tseries.offsets
    )annotations)datetime	timedeltaN)NaT	Timedelta	Timestamp
conversion	timezones)_get_offset_offset_map)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                 C  s   | t u r| |ddd|d} n| tu r:| |dddd|d} nl| tu rR| |d|d} nT| tu rl| |dd|d} n:| tu r| |d|d} n"| tu r| ||d} n| ||d	} | S )
Nr.   last)nstartingMonthweekday	variation	normalize)r0   r1   r2   Zqtr_with_extra_weekr3   r4      )r0   r2   r4   )r0   weekr2   r4   )r(   r4   r4   )r   r   r   r$   r#   r   )klassvaluer4    r:   r/var/www/html/stable-diffusion-webui/venv/lib/python3.9/site-packages/pandas/tests/tseries/offsets/test_offsets.py_create_offsetH   s6    r<   c                   C  s   t tdddS )N  r.      )r   r   r:   r:   r:   r;   dth   s    r?   c                #   C  s   t dt dt dt dt dt dt dt dt dt dt dt dt dt dt dt dt d	t d	t d
t d
t dt dt dt dt dt dt dt dt dt dt dt dt dt dd"S )Nz2011-01-02 09:00:002011-01-03 09:00:00z2011-01-31 09:00:00z2011-02-01 09:00:00z2011-01-15 09:00:00z2012-01-01 09:00:00z2011-12-31 09:00:00z2011-12-30 09:00:00z2011-03-01 09:00:00z2011-03-31 09:00:00z2011-01-03 10:00:00z2011-01-08 09:00:00z2011-01-29 09:00:00z2011-01-25 09:00:00z2011-04-24 09:00:00z2011-01-01 10:00:00z2011-01-01 09:01:00z2011-01-01 09:00:01z2011-01-01 09:00:00.001000z2011-01-01 09:00:00.000001z2011-01-01T09:00:00.000000001)"Dayr   BusinessDayr   r   r   r    BusinessMonthBeginMonthEndSemiMonthEndSemiMonthBeginBusinessMonthEnd	YearBegin
BYearBeginYearEndBYearEndQuarterBeginBQuarterBegin
QuarterEndBQuarterEndr   r   r$   r   r   r   r#   r   HourMinuteSecondMilliMicror!   )r   r:   r:   r:   r;   	expectedsm   sF    rU   c                   @  s   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd Zd(ddZ	dd Z
dd Zdd Zdd Zdd Zdd Zdd Zdd Zd d! Zejd"ejd#g d$d%d& Zd'S ))
TestCommonc                 C  sx   t |}d}tjt|d d|_W d    n1 s60    Y  tjt|d d|_W d    n1 sj0    Y  d S )Nz8objects is not writable|DateOffset objects are immutablematchT[   )r<   pytestraisesAttributeErrorr4   r0   )selfoffset_typesoffsetmsgr:   r:   r;   test_immutable   s    $zTestCommon.test_immutablec                 C  sj   t |}td| }t|ts"J t| tu s2J |t tu sBJ t| tu sRJ | ttu sfJ d S )NZ20080101)r<   r   
isinstancer   _apply)r]   r^   r_   resultr:   r:   r;   test_return_type   s    zTestCommon.test_return_typec                 C  sF   t |}|jdksJ |d }|jdks,J |d }|jdksBJ d S )Nr.      )r<   r0   )r]   r^   r_   Z
neg_offsetZ
mul_offsetr:   r:   r;   test_offset_n   s    zTestCommon.test_offset_nc                 C  s^   t |}tdd}tjtdd( t|f d|i|j W d    n1 sP0    Y  d S )Ni  sargument must be an integerrW   r0   )r<   npZtimedelta64rZ   r[   	TypeErrortypekwds)r]   r^   offZtd64r:   r:   r;   test_offset_timedelta64_arg   s    z&TestCommon.test_offset_timedelta64_argc                 C  sz   t |}t||d g|d |d gg}tddgddgg| }t|| |tddgddgg }t|| d S )Nr>   rg      r.   )r<   rk   arraytmassert_numpy_array_equal)r]   r^   ro   expectedrd   r:   r:   r;   test_offset_mul_ndarray   s    "z"TestCommon.test_offset_mul_ndarrayc                 C  s0   t |}|j}|dvr,t|}|j|ks,J d S )N)z<Easter>z<DateOffset: days=1>zLWOM-SAT)r<   freqstrr
   	rule_code)r]   r^   r_   rw   coder:   r:   r;   test_offset_freqstr   s
    zTestCommon.test_offset_freqstrFc              	   C  sp  |rt |trd S t||d}t||}||}t|ts>J ||ksJJ |t|}t|tsdJ ||kspJ d }	t|td }
t|jdkr|dv s|r|
j	dkrt
}	t|	 ||
}W d    n1 s0    Y  t|tsJ |du r||td ksJ n||ksJ t|tjr.d S dD ]6}||}t|}t||}||}t|tspJ ||ks~J |t||d}t|tsJ ||ksJ d }	t||dtd }
t|jdkr|dv s|r|
j	dkrt
}	t|	 ||
}W d    n1 s0    Y  t|ts8J |du rZ||td kshJ n||ks2J q2d S )	Nr7   r5   r   )applyrc   r   F)NUTCz
Asia/Tokyoz
US/Easternzdateutil/Asia/Tokyozdateutil/US/Pacifictz)
issubclassr"   r<   getattrrb   r   r!   rm   __name__Z
nanosecondUserWarningrs   assert_produces_warningrk   
datetime64tz_localizer	   Zmaybe_get_tzr   Zlocalize_pydatetime)r]   r_   funcnamer?   ru   r4   offset_sfuncrd   Zexp_warningtsr~   expected_localizeZtz_objZdt_tzr:   r:   r;   _check_offsetfunc_works   sp    
&



(
z"TestCommon._check_offsetfunc_worksc                 C  sf   t ddddd}td}||j }t| }||fD ](}| |d|| | j|d||dd q8d S )	N  r.   	   r   2011-01-01 09:00rc   Tr7   )r   rk   r   r   r   dater   )r]   r^   rU   sdtndtru   Zexpected_normr?   r:   r:   r;   
test_apply'  s    


zTestCommon.test_applyc                 C  s  |  }g d}|D ]}td||< qtd|d< td|d< |  }|D ]}t||  ||< qJt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d}	||	fD ]<}
||j }| |d|
| ||j }| j|d|
|dd qd S )NrA   r    rF   rH   r#   rP   rQ   rR   rS   rT   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rA   r   r    rF   rH   r#   rP   rQ   rR   rS   rT   r   r.   r   r   r   ZrollforwardTr7   )	copyr   r   updater   rk   r   r   r   )r]   r^   rU   Z
no_changesr0   norm_expectedk
normalizedr   r   r?   ru   r:   r:   r;   test_rollforward5  s>    




zTestCommon.test_rollforwardc                 C  s~  t dt dt dt dt dt dt dt dt dt dt dt dt dt dt dt dt dt dt dt dt dt d	d
}dD ]}t d||< q| }|D ]}t ||  ||< qt 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d}||fD ]>}	||j }
| |d|	|
 ||j }
| j|d|	|
dd q:d S )Nz2010-12-31 09:00:00z2010-12-01 09:00:00z2010-01-01 09:00:00z2010-12-31 17:00:00z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)rB   r   r   r   rC   rD   rE   rG   rI   rJ   rK   rL   rM   rN   rO   r   r   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   r.   r   r   r   rollbackTr7   )	r   r   r   r   r   rk   r   r   r   )r]   r^   rU   r0   r   r   r   r   r   r?   ru   r:   r:   r;   test_rollbackl  sd    




zTestCommon.test_rollbackc                 C  s|   ||j  }t|}||s J t|tr.d S t|dd}||rHJ |ttfv rXd S t|j|j	|j
}||sxJ d S )NTr7   )r   r<   Zis_on_offsetr   r"   r   r   r   yearmonthday)r]   r^   rU   r?   r   Zoffset_nr   r:   r:   r;   test_is_on_offset  s    

zTestCommon.test_is_on_offsetc                 C  s4  |}t ddddd}t|}||j }|| }t|| }	||	fD ]}
t|
tsTJ |
|ksBJ qB||}t||d| }
t|
tsJ |
|ksJ t|trd S t|dd}t| }|| }t|| }	||	fD ]}
t|
tsJ |
|ksJ q||}t||d| }
t|
ts"J |
|ks0J d S )Nr   r.   r   r   r}   Tr7   )	r   r<   r   r   rb   r   r   r"   r   )r]   r^   tz_naive_fixturerU   r~   r?   r   ru   Z	result_dtZ	result_tsrd   r   r:   r:   r;   test_add  s4    



zTestCommon.test_addc           	      C  sV  t |}tg |d}d }t|ttttttt	t
ttf
r:t}|d u }tj||d || }W d    n1 sn0    Y  t|| tj||d || }W d    n1 s0    Y  t|| |j}tj||d || }W d    n1 s0    Y  t|| tj||d || }W d    n1 s<0    Y  t|| d S )Nr}   )check_stacklevel)r<   r   rb   r   r$   r   r   r   r   r   r   r   r   r   rs   r   Zassert_index_equal_dataZassert_equal)	r]   r^   r   r   dtiwarnr   rd   dtar:   r:   r;   test_add_empty_datetimeindex  s@    &&&(z'TestCommon.test_add_empty_datetimeindexc                 C  s\   t |}t|}||ksJ t|turX|jD ]&}|dkr>q0t||t||ks0J q0d S )Ncalendar)r<   rs   round_trip_picklerm   r   _attributesr   )r]   r^   ro   resattrr:   r:   r;   test_pickle_roundtrip  s    

z TestCommon.test_pickle_roundtripc                 C  sD   t dd}t|}||ks J tddd}|| || ks@J d S )N   r&   i  r.   )r   rs   r   r   )r]   ro   r   Zbase_dtr:   r:   r;   !test_pickle_dateoffset_odd_inputs%  s
    

z,TestCommon.test_pickle_dateoffset_odd_inputsc                 C  s   t |}t|d usJ d S N)r<   hash)r]   r^   ro   r:   r:   r;   test_offsets_hashable.  s    z TestCommon.test_offsets_hashablezIignore:Non-vectorized DateOffset being applied to Series or DatetimeIndexunit)ri   msusc                 C  s   t |}tdddd}|jjd| d}t|jj||jd}|j| }|| }	|}
t|t	rx|j
|j
krxt|j}
||
}t|	j|j d S )Nz
2016-01-01#   D)ZperiodsfreqzM8[]dtype)r<   r   r   Z_ndarrayZastyperm   Z_simple_newr   rb   r"   Z_cresor   r   Zas_unitrs   rt   )r]   r^   r   requestro   r   Zarrr   ru   rd   Zexp_unitr:   r:   r;   test_add_dt64_ndarray_non_nano3  s    


z)TestCommon.test_add_dt64_ndarray_non_nanoN)F)r   
__module____qualname__ra   re   rh   rp   rv   rz   r   r   r   r   r   r   r   r   r   r   rZ   markfilterwarningsparametrizer   r:   r:   r:   r;   rV      s*   	
	
Q7K#+	rV   c                   @  sv  e Zd Zdd Zdd Zdd Zejde	e
jdd	 Zd
d Zdd Zdd Zejdeeg ddd Zejdeeg ddd Zejdeeeddg ddd Zejdeeeddg ddd Zd d! Zd"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/d0fddd1d2fddd3d4fgd5d6 Zd7d8 Zd9S ):TestDateOffsetc                 C  s   t   d S r   r   clearr]   r:   r:   r;   setup_methodM  s    zTestDateOffset.setup_methodc                 C  s:   t t  t td t dt   t dtdd  d S )Nr>   r   )reprr   r   r:   r:   r;   	test_reprP  s    
zTestDateOffset.test_reprc                 C  s4   t ddt d ksJ t dt dd ks0J d S Nr>   r.   r   r   r:   r:   r;   test_mulV  s    zTestDateOffset.test_mulkwdc                 C  sZ   |dkr |j tjjtdd tf i |di}|j|diksDJ t||dksVJ d S )NmillisecondGConstructing DateOffset object with `millisecond` is not yet supported.r[   reasonr>   )	node
add_markerrZ   r   xfailNotImplementedErrorr   rn   r   )r]   r   r   r_   r:   r:   r;   test_constructorZ  s    zTestDateOffset.test_constructorc                 C  s    |t d tdddksJ d S )Nr>   r=   r.   rq   )r   r   )r]   r?   r:   r:   r;   test_default_constructorh  s    z'TestDateOffset.test_default_constructorc                 C  s$   t d rJ t d s J d S r   )r   Zis_anchoredr   r:   r:   r;   test_is_anchoredk  s    zTestDateOffset.test_is_anchoredc                 C  s<   t dd t ddksJ t dd t ddks8J d S )Nr>   r   r.   r,   )r   r   r   r:   r:   r;   	test_copyo  s    zTestDateOffset.test_copyz 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                 C  sH   t f i |di| t|ks"J |t f i |di t|ksDJ d S Nr.   r   r   r]   arithmatic_offset_typeru   r?   r:   r:   r;   r   s  s    "zTestDateOffset.test_add)	
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                 C  sj   |t f i |di t|ks"J tjtdd& t f i |di|  W d    n1 s\0    Y  d S )Nr.   z$Cannot subtract datetime from offsetrW   )r   r   rZ   r[   rl   r   r:   r:   r;   test_sub  s    "zTestDateOffset.test_subz#arithmatic_offset_type, n, expectedr.   
   )	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                 C  s   t f i |di| | t|ks&J |t f i |di | t|ksLJ |t f i |di|  t|ksrJ ||t f i |di  t|ksJ d S r   r   r]   r   r0   ru   r?   r:   r:   r;   test_mul_add  s    &&&zTestDateOffset.test_mul_add)	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                 C  sP   |t f i |di|  t|ks&J ||t f i |di  t|ksLJ d S r   r   r   r:   r:   r;   test_mul_sub  s    &zTestDateOffset.test_mul_subc                 C  s.   t ddd}|tdd t dddks*J d S )Nr=   r.      r   r>      )r   r   )r]   dr:   r:   r;   test_leap_year  s    zTestDateOffset.test_leap_yearc                 C  s<   t dd}t dd}||ks J t ddt ddks8J d S )Nr.   r(   im  rg   r      r   )r]   Zoffset1Zoffset2r:   r:   r;   test_eq  s    

zTestDateOffset.test_eq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                 C  s6   t f i |}td}|| }t|}||ks2J d S )N
2022-01-01r   )r]   offset_kwargsexpected_argr_   r   rd   ru   r:   r:   r;   test_milliseconds_combination  s
    z,TestDateOffset.test_milliseconds_combinationc                 C  s@   d}t jt|d tdd W d    n1 s20    Y  d S )Nz3^Invalid argument/s or bad combination of argumentsrW   r.   )Zpicoseconds)rZ   r[   
ValueErrorr   )r]   r`   r:   r:   r;   test_offset_invalid_arguments  s    z,TestDateOffset.test_offset_invalid_argumentsN)r   r   r   r   r   r   rZ   r   r   sorted
liboffsets_relativedelta_kwdsr   r   r   r   zip_ARITHMETIC_DATE_OFFSETr   r   ranger   r   r   r   r   r   r:   r:   r:   r;   r   L  st   





	r   c                   @  s   e Zd Zdd ZdS )TestOffsetNamesc                 C  s   t  jdksJ t djdks"J t jdks2J tddjdksFJ tddjd	ksZJ tddjd
ksnJ tddjdksJ tddjdksJ ttjdjdksJ d S )NBr>   Z2BBMr   r2   W-MONr.   W-TUEW-WEDrg   W-THUrq   W-FRIzLWOM-SUN)r   rw   r   r#   r   r   SUNr   r:   r:   r;   test_get_offset_name  s    z$TestOffsetNames.test_get_offset_nameN)r   r   r   r  r:   r:   r:   r;   r     s   r   c                  C  s  t jttd td W d    n1 s,0    Y  t jttd td W d    n1 sb0    Y  dt fdt fdt fdt fdtd	d
fdtdd
fdtdd
fdtdd
fdtdd
fg	} | D ]@\}}t|}||ksJ dt| dt| dt| dqd S )NrW   Z	gibberishzQS-JAN-Br   bZbmZBmr  r   r  r  r.   r  r>   r  rg   r  rq   z	Expected z
 to yield z
 (actual: ))	rZ   r[   r   r   r
   r   r   r#   r   )pairsnameru   r_   r:   r:   r;   test_get_offset  s*    &&
r  c               	   C  sX   dt ddfg} | D ]>\}}tjttd t| W d    q1 sH0    Y  qd S )Nzw@Satr5   r  rW   )r#   rZ   r[   r   r   r
   )r  r  ru   r:   r:   r;   test_get_offset_legacy  s    r  c                   @  s$   e Zd Zdd Zdd Zdd ZdS )TestOffsetAliasesc                 C  s   t   d S r   r   r   r:   r:   r;   r   $  s    zTestOffsetAliases.setup_methodc                 C  s0   t  D ]"\}}|d u rq|| ksJ qd S r   )r   itemsr   )r]   r   vr:   r:   r;   test_alias_equality'  s    z%TestOffsetAliases.test_alias_equalityc                 C  s   g d}|D ]8}|t |jks"J |tv s.J |t |d jksJ qg d}d}|D ]:}d||g}|t |jkszJ |t |d jksVJ qVg d}g d}|D ]D}|D ]:}d||g}|t |jksJ |t |d jksJ qqd S )	N)MZMSr   ZBMSr   r   HTSLUrg   ZMONZTUEZWEDZTHUZFRIZSATr  W-r5   ZJANZFEBZMARZAPRZMAYZJUNZJULZAUGZSEPZOCTZNOVZDEC)AASBABASQQSBQBQS)r
   rx   r   join)r]   lstr   Z
suffix_lstbaser  aliasZbase_lstr:   r:   r;   test_rule_code-  s$    z TestOffsetAliases.test_rule_codeN)r   r   r   r   r  r)  r:   r:   r:   r;   r  #  s   r  c                  C  sD   t dtddd} | jdks J t dtddd} | jdks@J d S )Nr.   r   i  )r_   zB+30MinizB-30Min)r   r   rw   )ro   r:   r:   r;   test_freq_offsetsR  s    r*  c                   @  s   e Zd Zdd ZdS )TestReprNamesc                   sr   g d}dd |D }g d |dd  D 7 }| fdddD 7 }t   |D ]}t|}|j|ksRJ qRd S )N)r  r  r  r   r!  r#  r$  r"  c                 S  s"   g | ]}d D ]}|d | qqS )r  r  r:   ).0prefixr   r:   r:   r;   
<listcomp>^  s   z<TestReprNames.test_str_for_named_is_name.<locals>.<listcomp>r  c                 S  s   g | ]}d | qS )zW-r:   )r,  r   r:   r:   r;   r.  q      c                   s"   g | ]} D ]}d | | qqS )zWOM-r:   )r,  r6   r   r   r:   r;   r.  r  r/  )1234)r   r   r
   rw   )r]   Zmonth_prefixesnamesr  r_   r:   r   r;   test_str_for_named_is_name[  s    z(TestReprNames.test_str_for_named_is_nameN)r   r   r   r5  r:   r:   r:   r;   r+  Z  s   r+  c                 C  s   | }|  d S r   r:   r^   clsr:   r:   r;   test_valid_default_arguments|  s    r8  r   c                 C  sT   |}d|  d}t jt|d" |f i | di W d    n1 sF0    Y  d S Nz1__init__\(\) got an unexpected keyword argument ''rW   rg   rZ   r[   rl   )r   month_classesr7  r`   r:   r:   r;   test_valid_month_attributes  s    r=  c                 C  s$   | d}| d}|j |j ks J d S )Nr.   r>   )r  )r<  objobj2r:   r:   r;   test_month_offset_name  s    r@  c                 C  s6   | dkr |j tjjtdd tf i | di d S )Nr   r   r   r.   )r   r   rZ   r   r   r   r   )r   r   r:   r:   r;   test_valid_relativedelta_kwargs  s    	rA  c                 C  sT   |}d|  d}t jt|d" |f i | di W d    n1 sF0    Y  d S r9  r;  )r   tick_classesr7  r`   r:   r:   r;   test_valid_tick_attributes  s    rC  c                   C  s   t jtdd tdd W d    n1 s.0    Y  t jtdd ttdd W d    n1 sj0    Y  t jtdd* ttjddgtj	dd W d    n1 s0    Y  d S )Nrj   rW   zDoh!r0   r.   r>   r   )
rZ   r[   rl   r   r    r   r   rk   rr   int64r:   r:   r:   r;   test_validate_n_error  s    (,rF  c                 C  s@   | }t jtdd |dd W d    n1 s20    Y  d S )Nrj   rW   g      ?rD  rZ   r[   r   r6  r:   r:   r;   test_require_integers  s    rH  c                 C  sF   | }d}t jt|d |ddd W d    n1 s80    Y  d S )Nz2Tick offset with `normalize=True` are not allowed.rW   rg   T)r0   r4   rG  )rB  r7  r`   r:   r:   r;   test_tick_normalize_raises  s    rI  r   nanosecondsz1970-01-01 00:00:00.000000001r5   z1970-01-01 00:00:00.000000005rf   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                 C  s^   t f i | }td}|| }t|}||ks2J ||8 }||ksFJ || }||ksZJ d S )Nr   r   )r   r   r_   r   rd   ru   r:   r:   r;   test_dateoffset_add_sub  s    rK  c                  C  s\   t ddd} td}||  }td}||ks0J || 8 }||ksDJ | | }||ksXJ d S )Nr>   r   r*   rJ  rq   z1970-01-01 00:02:00.000000013r   )r_   r   rd   ru   r:   r:   r;   +test_dateoffset_add_sub_timestamp_with_nano  s    rM  	attribute)r)   r(   r'   r&   r%   c                 C  sT   t f i | di}d}tjt|d t|| d W d    n1 sF0    Y  d S )Nr   z DateOffset objects are immutablerW   r5   )r   rZ   r[   r\   setattr)rN  r_   r`   r:   r:   r;   test_dateoffset_immutable  s    rP  c                  C  s,   t jddd} | j t jdddkr(J d S )Nr>   rq   )r&   r(   r   )r   r   rw   )Zosetr:   r:   r;   test_dateoffset_misc  s    rQ  r0   )rf   r.   rg   c                 C  sJ   t | }|jtdksJ tddd| }tddd|  }||ksFJ d S )Nr.   i  r>   )r   _offsetr   r   )r0   r_   rd   ru   r:   r:   r;   -test_construct_int_arg_no_kwargs_assumed_days  s
    rS  zoffset, expectedr      rL  z2022-01-01 00:07:00.000000018rg   )rJ  z2022-01-01 00:00:00.000000003c                 C  sb   t d}|}t|g}||  }|d |ks.J || 8 }|d |ksFJ | | }|d |ks^J d S )Nr   r   )r   r   )r_   ru   
start_timeZ	teststampZ
testseriesr:   r:   r;   2test_dateoffset_add_sub_timestamp_series_with_nano  s    
rV  z=n_months, scaling_factor, start_timestamp, expected_timestamp))r.   r>   
2020-01-30
2020-03-30)r>   r.   rW  rX  )r.   r   rW  rW  )r>   r   rW  rW  )r.   rf   rW  z
2019-12-30)r>   rf   rW  z
2019-11-30c                 C  sb   t | d}t|}t|g}|||  }|||  }t|}	t|	g}
||	ksRJ t||
 d S )Nr   )r   r   r   rs   Zassert_series_equal)Zn_monthsZscaling_factorZstart_timestampZexpected_timestampZmo1ZstartscalarZ
startarrayZresultscalarZresultarrayZexpectedscalarZexpectedarrayr:   r:   r;   test_offset_multiplication1  s    


rY  c                  C  s   t tdgtddgd} | d d| d   }t tdtdgtddtddgd}td}tt$ |d d|d   }W d    n1 s0    Y  |d	 |ksJ |d	 |ksJ d S )
Nz
2019-04-30r.   r   )r  r   r     r   z
2021-06-30r   )r   r   r   rs   r   r   )ZdfZframeresult1Zdf2ZexpecteddateZframeresult2r:   r:   r;   (test_dateoffset_operations_on_dataframesO  s    2r[  )r.   F)W__doc__
__future__r   r   r   numpyrk   rZ   Zpandas._libs.tslibsr   r   r   r   r	   Zpandas._libs.tslibs.offsetsZ_libsZtslibsr   r   r
   r   Zpandas._libs.tslibs.periodr   Zpandas.errorsr   Zpandasr   r   r   r   Zpandas._testingZ_testingrs   Z#pandas.tests.tseries.offsets.commonr   Zpandas.tseriesZpandas.tseries.offsetsr   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r   r<   Zfixturer?   rU   rV   r   r   r  r  r  r*  r+  r8  r   r   r   r   r=  r@  rA  rC  rF  rH  rI  rK  rM  rP  rQ  rS  rV  rY  r[  r:   r:   r:   r;   <module>   s   L
 

*   7 )/"
	

		






















	



