U
    -e6                     @  s  d Z ddlmZ ddlmZmZ ddlmZ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  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/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9 eee)eeef f  Z:dddddddddg	Z;dmddZ<ej=dd Z>ej=dd Z?G dd  d Z@G d!d" d"ZAG d#d$ d$ZBd%d& ZCd'd( ZDG d)d* d*ZEd+d, ZFG d-d. d.ZGd/d0 ZHejIJd1eKejLd2d3 ZMd4d5 ZNejIJd1eKejLd6d7 ZOejIJd1eKejLd8d9 ZPd:d; ZQd<d= ZRd>d? ZSejIJd@dAdidBfdAdCidDfdAdEidFfddidGfddEidHfddidIfddEidJfddidKfddEidLfddidMfddEidNfddidOfddEidPfddidQfddEidRfddidSfddEidTfddidUfddEidVfgdWdX ZTdYdZ ZUejIJd[dddddgd\d] ZVd^d_ ZWejIJd`dEddagdbdc ZXejIJdde1dedfdgedhfe1dadiedjfgdkdl ZYdS )nz!
Tests of pandas.tseries.offsets
    )annotations)datetime	timedelta)DictListTupleN)NaT	Timedelta	Timestamp
conversion	timezones)_get_offset_offset_map)INVALID_FREQ_ERR_MSG)PerformanceWarning)DatetimeIndexSeries
date_range)WeekDay)offsets)FY5253
BaseOffset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 kr| |ddd|d} n| tkr:| |dddd|d} nl| tkrR| |d|d} nT| tkrl| |dd|d} n:| tkr| |d|d} n"| tkr| ||d} n| ||d	} | S )
Nr1   last)nstartingMonthweekday	variation	normalize)r3   r4   r5   Zqtr_with_extra_weekr6   r7      )r3   r5   r7   )r3   weekr5   r7   )r+   r7   r7   )r   r!   r"   r'   r&   r   )klassvaluer7    r=   j/var/www/html/Darija-Ai-Train/env/lib/python3.8/site-packages/pandas/tests/tseries/offsets/test_offsets.py_create_offsetO   s6    r?   c                   C  s   t tdddS )N  r1      )r
   r   r=   r=   r=   r>   dto   s    rB   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>   	expectedst   sF    rX   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#d$d%d&gd'd( Zd)S )+
TestCommonc              	   C  sP   t |}d}tjt|d d|_W 5 Q R X tjt|d d|_W 5 Q R X d S )Nz8objects is not writable|DateOffset objects are immutablematchT[   )r?   pytestraisesAttributeErrorr7   r3   )selfoffset_typesoffsetmsgr=   r=   r>   test_immutable   s    zTestCommon.test_immutablec                 C  sj   t |}td| }t|ts"tt| tks2t|t tksBtt| tksRt| ttksftd S )NZ20080101)r?   r
   
isinstanceAssertionErrorr   _apply)r`   ra   rb   resultr=   r=   r>   test_return_type   s    zTestCommon.test_return_typec                 C  sF   t |}|jdkst|d }|jdks,t|d }|jdksBtd S )Nr1      )r?   r3   rf   )r`   ra   rb   Z
neg_offsetZ
mul_offsetr=   r=   r>   test_offset_n   s    zTestCommon.test_offset_nc              	   C  sJ   t |}tdd}tjtdd t|f d|i|j W 5 Q R X d S )Ni  sargument must be an integerrZ   r3   )r?   npZtimedelta64r]   r^   	TypeErrortypekwds)r`   ra   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 )NrA   rk      r1   )r?   ro   arraytmassert_numpy_array_equal)r`   ra   rs   expectedrh   r=   r=   r>   test_offset_mul_ndarray   s    "z"TestCommon.test_offset_mul_ndarrayc                 C  s0   t |}|j}|dkr,t|}|j|ks,td S )N)z<Easter>z<DateOffset: days=1>zLWOM-SAT)r?   freqstrr   	rule_coderf   )r`   ra   rb   r{   coder=   r=   r>   test_offset_freqstr   s
    zTestCommon.test_offset_freqstrFc              
   C  sB  |rt |trd S t||d}t||}||}t|ts>t||ksJt|t|}t|tsdt||ksptd }	t|td }
t|j	dkr|dks|r|
j
dkrt}	t|	 ||
}W 5 Q R X t|tst|dkr||td kstn||kstt|tjrd S dD ] }||}t|}t||}||}t|tsXt||ksft|t||d}t|tst||kstd }	t||dtd }
t|j	dkr|dks|r|
j
dkrt}	t|	 ||
}W 5 Q R X t|ts
t|dkr,||td ks:tn||kstqd S )	Nr:   r8   r   )applyrg   r   F)NUTCz
Asia/Tokyoz
US/Easternzdateutil/Asia/Tokyozdateutil/US/Pacifictz)
issubclassr%   r?   getattrre   r
   rf   r$   rq   __name__Z
nanosecondUserWarningrw   assert_produces_warningro   
datetime64tz_localizer   Zmaybe_get_tzr   Zlocalize_pydatetime)r`   rb   funcnamerB   ry   r7   offset_sfuncrh   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  r1   	   r   2011-01-01 09:00rg   Tr:   )r   ro   r   r   r
   dater   )r`   ra   rX   sdtndtry   Zexpected_normrB   r=   r=   r>   
test_apply.  s    

    zTestCommon.test_applyc                 C  s.  |  }ddddddddd	d
ddg}|D ]}td||< q(td|d< td|d< |  }|D ]}t||  ||< q^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d}	||	fD ]<}
||j }| |d|
| ||j }| j|d|
|dd qd S ) NrD   r#   rI   rK   r&   rS   rT   rU   rV   rW   r$   r   2011/01/01 09:00rC   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rD   r   r#   rI   rK   r&   rS   rT   rU   rV   rW   r   r1   r   r   r   ZrollforwardTr:   )	copyr
   r   updater   ro   r   r   r   )r`   ra   rX   Z
no_changesr3   norm_expectedk
normalizedr   r   rB   ry   r=   r=   r>   test_rollforward<  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)rE   r   r   r   rF   rG   rH   rJ   rL   rM   rN   rO   rP   rQ   rR   r   r   r'   r"   r!   r   r    )rD   r#   rI   rK   r&   rS   rT   rU   rV   rW   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   r1   r   r   r   rollbackTr:   )	r
   r   r   r   r   ro   r   r   r   )r`   ra   rX   r3   r   r   r   r   r   rB   ry   r=   r=   r>   test_rollbacks  sl    



    zTestCommon.test_rollbackc                 C  s|   ||j  }t|}||s tt|tr.d S t|dd}||rHt|ttfkrXd S t|j	|j
|j}||sxtd S )NTr:   )r   r?   Zis_on_offsetrf   r   r%   r   r   r   yearmonthday)r`   ra   rX   rB   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sTt|
|ksBtqB||}t||d| }
t|
tst|
|kstt|trd S t|dd}t|	 }|| }t|| }	||	fD ]}
t|
tst|
|kstq||}t||d| }
t|
ts"t|
|ks0td S )Nr   r1   r   r   r   Tr:   )
r   r?   r   r
   re   rf   r   r   r%   r   )r`   ra   tz_naive_fixturerX   r   rB   r   ry   Z	result_dtZ	result_tsrh   r   r=   r=   r>   test_add  s4    



zTestCommon.test_addc                 C  s   t |}tg |d}d }t|ttttttt	t
ttf
r:t}t| || }W 5 Q R X t|| t| || }W 5 Q R X t|| |j}t| || }W 5 Q R X t|| t| || }W 5 Q R X t|| d S )Nr   )r?   r   re   r    r'   r"   r   r   r   r   r   r   r!   r   rw   r   Zassert_index_equal_dataZassert_equal)r`   ra   r   r   dtiwarnrh   dtar=   r=   r>   test_add_empty_datetimeindex  s>    z'TestCommon.test_add_empty_datetimeindexc                 C  s\   t |}t|}||kstt|tk	rX|jD ]&}|dkr>q0t||t||ks0tq0d S )Ncalendar)r?   rw   round_trip_picklerf   rq   r   _attributesr   )r`   ra   rs   resattrr=   r=   r>   test_pickle_roundtrip  s    

z TestCommon.test_pickle_roundtripc                 C  sD   t dd}t|}||ks ttddd}|| || ks@td S )N   r)   i  r1   )r   rw   r   rf   r   )r`   rs   r   Zbase_dtr=   r=   r>   !test_pickle_dateoffset_odd_inputs)  s
    

z,TestCommon.test_pickle_dateoffset_odd_inputsc                 C  s   t |}t|d k	std S N)r?   hashrf   )r`   ra   rs   r=   r=   r>   test_offsets_hashable2  s    z TestCommon.test_offsets_hashablezIignore:Non-vectorized DateOffset being applied to Series or DatetimeIndexunitrm   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astyperq   Z_simple_newr   re   r%   Z_cresor	   r   Zas_unitrw   rx   )r`   ra   r   requestrs   r   Zarrr   ry   rh   Zexp_unitr=   r=   r>   test_add_dt64_ndarray_non_nano7  s    


z)TestCommon.test_add_dt64_ndarray_non_nanoN)F)r   
__module____qualname__rd   ri   rl   rt   rz   r~   r   r   r   r   r   r   r   r   r   r   r]   markfilterwarningsparametrizer   r=   r=   r=   r>   rY      s*   	
	
Q7K#(	rY   c                   @  s  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dddddddddg	dd Zejdeeddddd d!d"d#d$g	d%d& Zejd'eeed(d)dd*d+d,d-d.d/d0d1g	d2d3 Zejd'eeed(d)dd4d5d6d7d8d9d:d;g	d<d= Zd>d? Zd@dA ZejdBd(d(dCdDfd(d(dEdFfd(d(dGdHfd(d(dIdJfd(d(dKdLfd(d(dMdNfd(d(dOdPfd(d(dQdRfgdSdT ZdUdV ZdWS )XTestDateOffsetc                 C  s   t   d S r   r   clearr`   r=   r=   r>   setup_methodQ  s    zTestDateOffset.setup_methodc                 C  s:   t t  t td t dt   t dtdd  d S )NrA   r   )reprr   r   r=   r=   r>   	test_reprT  s    
zTestDateOffset.test_reprc                 C  s4   t ddt d kstt dt dd ks0td S NrA   r1   r   rf   r   r=   r=   r>   test_mulZ  s    zTestDateOffset.test_mulkwdc                 C  sV   |dkr |j tjjtdd tf |di}|j|diks@tt	||dksRtd S )NmillisecondGConstructing DateOffset object with `millisecond` is not yet supported.r^   reasonrA   )
node
add_markerr]   r   xfailNotImplementedErrorr   rr   rf   r   )r`   r   r   rb   r=   r=   r>   test_constructor^  s    zTestDateOffset.test_constructorc                 C  s    |t d tdddkstd S )NrA   r@   r1   ru   )r   r   rf   )r`   rB   r=   r=   r>   test_default_constructorl  s    z'TestDateOffset.test_default_constructorc                 C  s$   t d rtt d s td S r   )r   Zis_anchoredrf   r   r=   r=   r>   test_is_anchoredo  s    zTestDateOffset.test_is_anchoredc                 C  s<   t dd t ddkstt dd t ddks8td S )NrA   r   r1   r/   )r   r   rf   r   r=   r=   r>   	test_copys  s    zTestDateOffset.test_copyz arithmatic_offset_type, expectedz
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  s@   t f |di| t|kst|t f |di t|ks<td S Nr1   r   r
   rf   r`   arithmatic_offset_typery   rB   r=   r=   r>   r   w  s    zTestDateOffset.test_addz
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  sN   |t f |di t|ksttjtdd t f |di|  W 5 Q R X d S )Nr1   z$Cannot subtract datetime from offsetrZ   )r   r
   rf   r]   r^   rp   r   r=   r=   r>   test_sub  s    zTestDateOffset.test_subz#arithmatic_offset_type, n, expectedr1   
   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 |di| | t|ks"t|t f |di | t|ksDt|t f |di|  t|ksft||t f |di  t|kstd S r   r   r`   r   r3   ry   rB   r=   r=   r>   test_mul_add  s    """zTestDateOffset.test_mul_addz
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  sH   |t f |di|  t|ks"t||t f |di  t|ksDt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*td S )Nr@   r1      r   rA      )r   r   rf   )r`   dr=   r=   r>   test_leap_year  s    zTestDateOffset.test_leap_yearc                 C  s<   t dd}t dd}||ks tt ddt ddks8td S )Nr1   r+   im  rk   r      r   )r`   Zoffset1Zoffset2r=   r=   r>   test_eq  s    

zTestDateOffset.test_eqoffset_kwargs, expected_arg)r0   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  s2   t f |}td}|| }t|}||ks.td S )N
2022-01-01r   )r`   offset_kwargsexpected_argrb   r   rh   ry   r=   r=   r>   test_milliseconds_combination  s
    
z,TestDateOffset.test_milliseconds_combinationc              	   C  s,   d}t jt|d tdd W 5 Q R X d S )Nz3^Invalid argument/s or bad combination of argumentsrZ   r1   )Zpicoseconds)r]   r^   
ValueErrorr   )r`   rc   r=   r=   r>   test_offset_invalid_arguments  s    z,TestDateOffset.test_offset_invalid_argumentsN)r   r   r   r   r   r   r]   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   P  s   





	r   c                   @  s   e Zd Zdd ZdS )TestOffsetNamesc                 C  s   t  jdkstt djdks"tt jdks2ttddjdksFttddjd	ksZttddjd
ksnttddjdksttddjdkstttjdjdkstd S )NBrA   Z2BBMr   r5   W-MONr1   W-TUEW-WEDrk   W-THUru   W-FRIzLWOM-SUN)r   r{   rf   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 5 Q R X t jttd td W 5 Q R X 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stdt	| dt	| dt	| dqd S )NrZ   Z	gibberishzQS-JAN-Br   bZbmZBmr  r   r  r  r1   r  rA   r  rk   r  ru   z	Expected z
 to yield z
 (actual: ))
r]   r^   r   r   r   r   r   r&   rf   r   )pairsnamery   rb   r=   r=   r>   test_get_offset  s&    
"r  c               
   C  sD   dt ddfg} | D ]*\}}tjttd t| W 5 Q R X qd S )Nzw@Satr8   r  rZ   )r&   r]   r^   r   r   r   )r  r  ry   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 krq|| kstqd S r   )r   itemsr   rf   )r`   r   vr=   r=   r>   test_alias_equality+  s    z%TestOffsetAliases.test_alias_equalityc                 C  s.  ddddddddd	d
dg}|D ]8}|t |jks4t|tks@t|t |d jkstqdddddddg}d}|D ]:}d||g}|t |jkst|t |d jksrtqrdddddddddd d!d"g}d#d$d%d&d'd(d)d*g}|D ]F}|D ]<}d||g}|t |jkst|t |d jkstqqd S )+NMZMSr   ZBMSr   r   HTSLUrk   MONTUEWEDTHUFRISATr  W-r8   JANFEBMARAPRMAYJUNJULAUGSEPOCTNOVDECAASBABASQQSBQBQS)r   r|   rf   r   join)r`   lstr   Z
suffix_lstbaser  aliasZbase_lstr=   r=   r>   test_rule_code1  s<    z TestOffsetAliases.test_rule_codeN)r   r   r   r   r  r9  r=   r=   r=   r>   r  '  s   r  c                  C  sD   t dtddd} | jdks tt dtddd} | jdks@td S )Nr1   r   i  )rb   zB+30MinizB-30Min)r   r   r{   rf   )rs   r=   r=   r>   test_freq_offsetsV  s    r:  c                   @  s   e Zd Zdd ZdS )TestReprNamesc                   s   ddddddddg}d	d
 |D }dddddddg |dd
  D 7 }| fdd
dD 7 }t   |D ]}t|}|j|kshtqhd S )Nr-  r.  r/  r0  r1  r3  r4  r2  c                 S  s"   g | ]}d D ]}|d | qqS ))r!  r"  r#  r$  r%  r&  r'  r(  r)  r*  r+  r,  r   r=   ).0prefixr   r=   r=   r>   
<listcomp>b  s    z<TestReprNames.test_str_for_named_is_name.<locals>.<listcomp>r  r  r  r  r  r  r  c                 S  s   g | ]}d | qS )zW-r=   )r<  r   r=   r=   r>   r>  u  s     c                   s"   g | ]} D ]}d | | qqS )zWOM-r=   )r<  r9   r   r   r=   r>   r>  v  s       )1234)r   r   r   r{   rf   )r`   Zmonth_prefixesnamesr  rb   r=   r   r>   test_str_for_named_is_name_  s    z(TestReprNames.test_str_for_named_is_nameN)r   r   r   rD  r=   r=   r=   r>   r;  ^  s   r;  c                 C  s   | }|  d S r   r=   ra   clsr=   r=   r>   test_valid_default_arguments  s    rG  r   c              	   C  s<   |}d|  d}t jt|d |f | di W 5 Q R X d S Nz1__init__\(\) got an unexpected keyword argument ''rZ   rk   r]   r^   rp   )r   month_classesrF  rc   r=   r=   r>   test_valid_month_attributes  s    rL  c                 C  s$   | d}| d}|j |j ks td S )Nr1   rA   )r  rf   )rK  objobj2r=   r=   r>   test_month_offset_name  s    rO  c                 C  s2   | dkr |j tjjtdd tf | di d S )Nr   r   r   r1   )r   r   r]   r   r   r   r   )r   r   r=   r=   r>   test_valid_relativedelta_kwargs  s    	rP  c              	   C  s<   |}d|  d}t jt|d |f | di W 5 Q R X d S rH  rJ  )r   tick_classesrF  rc   r=   r=   r>   test_valid_tick_attributes  s    rR  c                	   C  s   t jtdd tdd W 5 Q R X t jtdd ttdd W 5 Q R X t jtdd  ttjddgtj	dd W 5 Q R X d S )Nrn   rZ   zDoh!r3   r1   rA   r   )
r]   r^   rp   r   r#   r   r   ro   rv   Zint64r=   r=   r=   r>   test_validate_n_error  s    rT  c              	   C  s,   | }t jtdd |dd W 5 Q R X d S )Nrn   rZ   g      ?rS  r]   r^   r   rE  r=   r=   r>   test_require_integers  s    rV  c              	   C  s2   | }d}t jt|d |ddd W 5 Q R X d S )Nz2Tick offset with `normalize=True` are not allowed.rZ   rk   T)r3   r7   rU  )rQ  rF  rc   r=   r=   r>   test_tick_normalize_raises  s    rW  r   nanosecondsz1970-01-01 00:00:00.000000001r8   z1970-01-01 00:00:00.000000005rj   z1969-12-31 23:59:59.999999999z1970-01-01 00:00:00.000001z1969-12-31 23:59:59.999999z1970-01-01 00:00:01z1969-12-31 23:59:59z1970-01-01 00:01:00z1969-12-31 23:59:00z1970-01-01 01:00:00z1969-12-31 23:00:00z1970-01-02 00:00:00z1969-12-31 00:00:00z1970-01-08 00:00:00z1969-12-25 00:00:00z1970-02-01 00:00:00z1969-12-01 00:00:00z1971-01-01 00:00:00z1969-01-01 00:00:00c                 C  sZ   t f | }td}|| }t|}||ks.t||8 }||ksBt|| }||ksVtd S )Nr   r   )r   r   rb   r   rh   ry   r=   r=   r>   test_dateoffset_add_sub  s    
rY  c                  C  s\   t ddd} td}||  }td}||ks0t|| 8 }||ksDt| | }||ksXtd S )NrA   r   r-   rX  ru   z1970-01-01 00:02:00.000000013r   )rb   r   rh   ry   r=   r=   r>   +test_dateoffset_add_sub_timestamp_with_nano  s    r[  	attributec              	   C  s<   t f | di}d}tjt|d t|| d W 5 Q R X d S )Nr   z DateOffset objects are immutablerZ   r8   )r   r]   r^   r_   setattr)r\  rb   rc   r=   r=   r>   test_dateoffset_immutable  s    r^  c                  C  s,   t jddd} | j t jdddkr(td S )NrA   ru   )r)   r+   r   )r   r   r{   rf   )Zosetr=   r=   r>   test_dateoffset_misc  s    r_  r3   rk   c                 C  sJ   t | }|jtdksttddd| }tddd|  }||ksFtd S )Nr1   i  rA   )r   _offsetr   rf   r
   )r3   rb   rh   ry   r=   r=   r>   -test_construct_int_arg_no_kwargs_assumed_days  s
    ra  zoffset, expectedr      rZ  z2022-01-01 00:07:00.000000018)rX  z2022-01-01 00:00:00.000000003c                 C  sb   t d}|}t|g}||  }|d |ks.t|| 8 }|d |ksFt| | }|d |ks^td S )Nr   r   )r
   r   rf   )rb   ry   
start_timeZ	teststampZ
testseriesr=   r=   r>   2test_dateoffset_add_sub_timestamp_series_with_nano  s    
rd  )r1   F)Z__doc__
__future__r   r   r   typingr   r   r   numpyro   r]   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   Zpandas._testingZ_testingrw   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'   Z_ApplyCasesr   r?   ZfixturerB   rX   rY   r   r   r  r  r  r:  r;  rG  r   r   r   r   rL  rO  rP  rR  rT  rV  rW  rY  r[  r^  r_  ra  rd  r=   r=   r=   r>   <module>   s   P
 

*   4 )/"
	

		





















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