o
    _~#g                     @   s   d dl mZm Z mZ d dlZd dlZd dlZd dlmZ d dl	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 d dlmZ d	ZG d
d dZG dd dZG dd dZG dd dZG dd dZ dd Z!dd Z"dd Z#dS )    )datedatetime	timedeltaN)iNaT)DAYSMONTHS)OutOfBoundsDatetime)DateParseError)INVALID_FREQ_ERR_MSG)NaTPeriod	Timedelta	Timestampoffsetsz#Period with BDay freq is deprecatedc                	   @   sj   e Zd Zejde dfeddfej	dddfe
ddfgd	d
 Zdd Zdd Zdd ZdS )TestPeriodDisallowedFreqszfreq, freq_msg
BYearBegin   	YearBegin   startingMonthQuarterBeginBusinessMonthEndc                 C   sP   t | d}tjt|d td|d W d    d S 1 s!w   Y  d S )N% is not supported as period frequencymatchi  )yearfreq)reescapepytestraises
ValueErrorr   )selfr   freq_msgmsg r&   /var/www/static.ux5.de/https/Moving-Object-Detection-with-OpenCV/env/lib/python3.10/site-packages/pandas/tests/scalar/period/test_period.pytest_offsets_not_supported!   s   "z4TestPeriodDisallowedFreqs.test_offsets_not_supportedc                 C   s   d}t jt|d tddd W d    n1 sw   Y  t j d}t jt|d tdt d W d    d S 1 sBw   Y  d S )Nz&C is not supported as period frequencyr   z
2023-04-10Cr   r   )r    r!   r"   r   r   CustomBusinessDaybaser#   r%   r&   r&   r'   $test_custom_business_day_freq_raises0   s   "z>TestPeriodDisallowedFreqs.test_custom_business_day_freq_raisesc                 C   D   d}t jt|d tddd W d    d S 1 sw   Y  d S )Nz-WOM-1MON is not supported as period frequencyr   
2012-01-02zWOM-1MONr*   r    r!   r"   r   r-   r&   r&   r'   $test_invalid_frequency_error_message9      "z>TestPeriodDisallowedFreqs.test_invalid_frequency_error_messagec                 C   r/   )Nz*for Period, please use 'M' instead of 'ME'r   r0   MEr*   r1   r-   r&   r&   r'   +test_invalid_frequency_period_error_message>   r3   zETestPeriodDisallowedFreqs.test_invalid_frequency_period_error_messageN)__name__
__module____qualname__r    markparametrizer   r   r   r   r   r(   r.   r2   r5   r&   r&   r&   r'   r       s    

		r   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 Z	dd Z
dd Zdd Zdd Zdd Zejdedd Zejdedd Zejdeejded d!d"d# Zd$d% Zd&d' Zejd(g d)d*d+ Zd,d- Zd.d/ Zd0d1 Zejdg d2ejd3g d4ejd5g d6d7d8 Zejd3ed9d:d; Zd<S )=TestPeriodConstructionc                 C   s   t d}d}tjt|d t| W d    n1 sw   Y  tjt|d t|dd W d    d S 1 s;w   Y  d S )Nzm8[ns]2Value must be Period, string, integer, or datetimer   Dr*   )r   to_numpyr    r!   r"   r   )r#   tdr%   r&   r&   r'   test_from_td64nat_raisesE   s   

"z/TestPeriodConstruction.test_from_td64nat_raisesc              	   C   sp  t ddd}t d}||ksJ t ddd}t d}||ks J t ddd}||ks,J t jdd}t t dd}||ks@J t jdd}t t dd}t t }||ks[J ||ksaJ t d	d
d}d}tjt|d t d	dd}W d    n1 sw   Y  ||ksJ t ddddd}t ddd}||ksJ t ddddd}||ksJ t d}t tddddddddd}||ksJ t ddd}||ksJ t d}t tddddddddd}||ksJ t ddd}||ksJ d}tj	t
|d t dd W d    n	1 sw   Y  d }tj	t
|d t d!d"d W d    d S 1 s1w   Y  d S )#N1/1/2005Mr*   zJan 20052005YQr=   1982minz<'MIN' is deprecated and will be removed in a future version.r   MIN        r   monthdayr   z3/1/2005d2007-01-01 09:00:00.001  	   r     ms2007-01-01 09:00:00.00101  usz"Must supply freq for ordinal value )ordinalzInvalid frequency: Xz2007-1-1X)r   nowr   r   Daytmassert_produces_warningFutureWarningr    r!   r"   )r#   i1i2i4i3r%   expectedr&   r&   r'   test_constructionP   sZ   $z(TestPeriodConstruction.test_constructionc                 C   sx   t jtdd tddd W d    n1 sw   Y  t jtdd tdd W d    d S 1 s5w   Y  d S )Nzpass as a string insteadr   rF   )MinrK   r*   z
2006-12-31)wrK   )r    r!   	TypeErrorr   r#   r&   r&   r'   test_tuple_freq_disallowed   s   "z1TestPeriodConstruction.test_tuple_freq_disallowedc                 C   sT   t d}t|dd}| }||ksJ |j}t|dd}| }|j|ks(J d S )Nz2022-04-20 09:23:24.123456789nsr*   )r   r   to_timestampasm8)r#   tsperrtdt64per2rt2r&   r&   r'   &test_construction_from_timestamp_nanos   s   z=TestPeriodConstruction.test_construction_from_timestamp_nanosc                 C   s   t jttd\ tddd}tddd}||dksJ tddd}||dks,J tddd}||dks;J tddd}||ksGJ td	d
ddd}tddd}||ks[J W d    d S 1 sfw   Y  d S )Nr   3/10/12Br*   r=   z3/11/12z3/12/12b  rJ   
   rL   )r]   r^   r_   bday_msgr   asfreq)r#   r`   ra   rc   r&   r&   r'   test_construction_bday   s   "z-TestPeriodConstruction.test_construction_bdayc                 C   s(  t dddd}t ddd}||ksJ t dddd}t ddd}||ks&J t d	}t dddd}t d
}||ks;J ||ksAJ t d}||ksKJ t d}||ksUJ t d}||ks_J t d}||ksiJ t d}||kssJ t d}||ks}J t d}|jdksJ t d}||ksJ d S )NrI   rK   rE   r   quarterr   rA   r*   rJ   z9/1/20052005Q12005q105Q105q11Q20051q20051Q051q054Q1984i  4q1984r   r   )r#   r`   ra   rc   lowerr&   r&   r'   test_construction_quarter   s6   z0TestPeriodConstruction.test_construction_quarterc                 C   s   t ddd}t ddd}||ksJ t ddd}||ksJ t ddd}||ks*J t ddd}|jdks7J t tdd	d	dd}t ddd}||ksMJ t tdd	d	dd}t tdd	d	dd}t td
dd}t ddd}t ddd}||ks|J ||ksJ ||ksJ ||ksJ d S )N2007-01rB   r*   200701rX   rY   r   I  rQ   rK   
2007-01-012007-01-01 00:00:002007-01-01 00:00:00.000)r   r   r   r   np
datetime64r#   rd   r`   ra   rc   rb   i5r&   r&   r'   test_construction_month   s*   z.TestPeriodConstruction.test_construction_monthc              	   C   s  t dt dt dddksJ t dt dt dddks J t dt dt dddks0J tjttd t dt dt dddksHJ W d    n1 sRw   Y  t dt	 dt dd	dksgJ t d
dtj
dddt d
dddks{J t d
dtj
dddt d
dddksJ t d
ddt	 dt d
ddd	dksJ tjttd t dddt dt dddddksJ W d    n1 sw   Y  t ddd}t d
ddt	dd|ksJ t d
dddd|ksJ tjttd t dddtddt dddddksJ W d    n	1 sw   Y  t dt dt dddks.J t dt d}t ddd}||ksCJ |jdksKJ |jdksSJ t tddddd}t ddd}||ksjJ t tddddd}t tddddd}t tddd}t ddd}t ddd}||ksJ ||ksJ ||ksJ ||ksJ t d }t tdddd!d"d"d#d$d}||ksJ t d d$d}||ksJ t d%}t tdddd!d"d"d&d'd}||ksJ t d%d'd}||ksJ d S )(NrA   r*   rB   rC   rD   r   ru   rv   r=   rI   rK   r   r   r}   rE   r   rJ   rL   rx   ry   z
2005-03-013D3BrX   r   r   rQ   r   r   r   r   rP   rR   r   rS   rT   rU   rV   rW   )r   r   MonthEndYearEndr]   r^   r_   rz   BusinessDayr\   
QuarterEndBDayr   r   r   r   r   r   r&   r&   r'   test_period_constructor_offsets   s      "z6TestPeriodConstruction.test_period_constructor_offsetsc                 C   s0  d}t jt|d tt  W d    n1 sw   Y  t jt|d tt   W d    n1 s9w   Y  d}t jt|d tddd W d    n1 sXw   Y  d}t jt|d tddd W d    n1 sww   Y  d	}t jt|d td
ddd W d    n1 sw   Y  d}t jt|d tdd W d    n1 sw   Y  d}t jt|d tdd W d    n1 sw   Y  d}t jt|d tdd W d    n1 sw   Y  d}t jt|d tdd W d    d S 1 sw   Y  d S )Nz#Must supply freq for datetime valuer   r<   g?r=   r*   zOrdinal must be an integerr   z?Only value or ordinal but not both should be given but not bothr   rK   )rY   valuer   z%If value is None, freq cannot be None)rM   z1^Given date string "-2000" not likely a datetime$z-2000rD   zday is out of range for month0z/Unknown datetime string format, unable to parsez	1/1/-2000)r    r!   r"   r   r   r[   r   r	   r-   r&   r&   r'   test_invalid_argumentsA  sF   $z-TestPeriodConstruction.test_invalid_argumentsc                 C   sf   t ddd}t dddd|ksJ t d tu sJ t ddd}t |d	d}t d
d	d}||ks1J d S )Nr   2Mr*   rQ   rK   )r   rM   r   r   r=   rD   2007r   r   )r#   rd   presultexpr&   r&   r'   test_constructor_corner`  s   z.TestPeriodConstruction.test_constructor_cornerc                 C   s   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s7J t d}|jdksBJ t d}|jdksMJ d S )Nr   r=   z2007-01-01 07hz2007-01-01 07:10rG   z2007-01-01 07:10:15sz2007-01-01 07:10:15.123rT   z2007-01-01 07:10:15.123000rW   z2007-01-01 07:10:15.123400)r   r   r#   r   r&   r&   r'   test_constructor_infer_freql  s   z2TestPeriodConstruction.test_constructor_infer_freqc                 C   s   t ddd}t ddd}|j|jksJ |jdksJ |jdks"J |jtdks,J |jt ks5J |d j|jd ksAJ d| j|jd ksMJ |d j|jd ksYJ d	| j|jd kseJ d S )
N19892Yr*   rD   z2Y-DECY-DECr   rK   )r   rY   freqstrr   r   r   )r#   result1result2r&   r&   r'   test_multiples  s   z%TestPeriodConstruction.test_multiplesrM   c                 C   sv   d| }t d|d}dt|v sJ |jddd}t ||d}||ks&J |jddd}t ||d}||ks9J d S )NzQ-1989Q3r*   r=   endhowr   )r   strrl   r#   rM   r   r   stampr   r&   r&   r'   test_period_cons_quarterly  s   
z1TestPeriodConstruction.test_period_cons_quarterlyc                 C   s\   d| }t d|d}|jdddtdd }t ||d}||d	 ks%J t|t s,J d S )
NzY-r   r*   r=   r   r      )daysrK   )r   rl   r   
isinstancer   r&   r&   r'   test_period_cons_annual  s   
z.TestPeriodConstruction.test_period_cons_annualrN   numry      c                 C   sP   d| }d| }t ||d}t |dd|}||ksJ t|t s&J d S )Nz2011-02-zW-r*   r=   )r   r{   r   )r#   r   rN   daystrr   r   rd   r&   r&   r'   test_period_cons_weekly  s   

z.TestPeriodConstruction.test_period_cons_weeklyc                 C   sp   t d}|jjdksJ t d}|jjdksJ d}tjt|d t d W d    d S 1 s1w   Y  d S )Nz2017-01-23/2017-01-29W-SUNz2017-01-24/2017-01-30zW-MONz%Could not parse as weekly-freq Periodr   z2016-01-23/2017-01-29)r   r   r   r    r!   r"   )r#   ro   r%   r&   r&   r'   test_parse_week_str_roundstrip  s   
"z5TestPeriodConstruction.test_parse_week_str_roundstripc                 C   s<   t ddd}t j|j|jd}||ksJ t|t sJ d S )N2011-01rB   r*   )r   _from_ordinalrY   r   r   r#   r   resr&   r&   r'   test_period_from_ordinal  s   z/TestPeriodConstruction.test_period_from_ordinalr   rD   rB   r=   r   c                 C   sT   t d|d}|tu sJ t dd| d}|tu sJ t dd| d}|tu s(J d S )Nr   r*   23r   )r#   r   ro   r&   r&   r'   'test_construct_from_nat_string_and_freq  s   z>TestPeriodConstruction.test_construct_from_nat_string_and_freqc                 C   s   t ddd}|tu sJ t tdd}|tu sJ t tdd}|tu s$J t tdd}|tu s0J t d}|tu s:J t t}|tu sDJ d S )Nnatr   r*   r=   r   1D1hr   )r   r   r   r   r&   r&   r'   test_period_cons_nat  s   z+TestPeriodConstruction.test_period_cons_natc                 C   s`  t ddd}t ddd}|j|jksJ |jtdksJ |jdks%J |jt ks.J |jdks5J |d }|j|d jksCJ |j|jksKJ |jdksRJ |d }|j|d jks`J |j|jkshJ |jdksoJ d}tjt|d t dd	d W d    n1 sw   Y  d
}tjt|d t ddd W d    d S 1 sw   Y  d S )Nr   3Mr*   rB   rJ   rK   z;Frequency must be positive, because it represents span: -3Mr   z-3Mz:Frequency must be positive, because it represents span: 0M0M)	r   rY   r   r   r   r   r    r!   r"   )r#   p1p2r   r%   r&   r&   r'   test_period_cons_mult  s.   "z,TestPeriodConstruction.test_period_cons_multc                 C   s  t dddt dddt dddft dddt dddt dddfg}|D ]\}}}|j|jks1J |j|jks9J |jtdksCJ |jd	ksJJ |jtdksTJ |jd	ks[J |jt ksdJ |jdkskJ |d }|j|d jksyJ |j|jksJ |jd	ksJ |d }|j|d jksJ |j|jksJ |jd	ksJ |d }|j|d jksJ |j|jksJ |jd	ksJ |d }|j|d jksJ |j|jksJ |jd	ksJ q$d
}tjt|d t ddd W d    n1 sw   Y  tjt|d t ddd W d    n	1 sw   Y  tjt|d t ddd W d    n	1 s6w   Y  tjt|d t ddd W d    n	1 sTw   Y  d}tjt|d t ddd W d    n	1 stw   Y  tjt|d t ddd W d    n	1 sw   Y  d}tjt|d t ddd W d    n	1 sw   Y  d}tjt|d t ddd W d    d S 1 sw   Y  d S )Nr   r   r*   1h1Dr   rK   r      25hz<Frequency must be positive, because it represents span: -25hr   z-1D1hz-1h1Dz:Frequency must be positive, because it represents span: 0D0D0hzInvalid frequency: 1W1D1W1DzInvalid frequency: 1D1W1D1W)	r   rY   r   r   Hourr   r    r!   r"   )r#   r   r   r   p3r   r%   r&   r&   r'   test_period_cons_combined  s|   





$z0TestPeriodConstruction.test_period_cons_combined)z1970/01/01 z2020-12-31 z1981/09/13 hour)z00:00:00z00:00:01z23:59:59z12:00:59zsec_float, expected))z
.000000001rK   )z
.000000999  )z
.123456789i  )z
.999999999r   )z
.999999000r   )z.999999001123rK   )z.999999001123456rK   )z.999999001123456789rK   c                 C   s    t || | jj|ksJ d S )N)r   
start_time
nanosecond)r#   rN   r   	sec_floatrd   r&   r&   r'   "test_period_constructor_nanosecondL  s    z9TestPeriodConstruction.test_period_constructor_nanosecond   c                 C   s"   t d| dd}|j|ksJ d S )Ni ' 1hr   )r   r   )r#   r   r   r&   r&   r'   test_period_large_ordinala  s   z0TestPeriodConstruction.test_period_large_ordinalN) r6   r7   r8   r@   re   rj   rt   r|   r   r   r   r   r   r   r   r    r9   r:   r   r   r   r   ranger   r   r   r   r   r   r   r   r   r&   r&   r&   r'   r;   D   sH    A#H


	

Gr;   c                   @   s   e Zd Zdd Zdd Zdd Zejddd	 Z	d
d Z
ejdg dejdg ddd Zejddejddd Zdd Zdd ZdS )TestPeriodMethodsc                 C   s"   t d}t|}||ksJ d S )N2000Q1)r   r]   round_trip_pickle)r#   r   new_pr&   r&   r'   test_round_tripj  s   
z!TestPeriodMethods.test_round_tripc                 C   s   t tdddt tdddksJ t tdddt tdddks$J t tdddt tdddks6J t tdddt tdddksHJ d S )	Nr   rB   r*   
2011-01-01r=   r   r   z2011-02)hashr   ri   r&   r&   r'   	test_hasho  s   $$$(zTestPeriodMethods.test_hashc                 C   s   t ddd}|jddtdksJ tdtdd	 }|jd
d|ks%J t ddd}|jddtdks7J tdtdd	 }|jd
d|ksJJ d S )Nr   rB   r*   Sr   r   z
2011-02-01rK   rk   Er   z
2011-04-01)r   rl   r   r   )r#   r   rd   r&   r&   r'   test_to_timestamp_mult{  s   z(TestPeriodMethods.test_to_timestamp_mult8ignore:Period with BDay freq is deprecated:FutureWarningc                 C   sp  t ddd}|jdd}g d}|D ]}||jd|dksJ ||jd|dks*J q|jd	d}g d
}|D ]}||jd|dksDJ ||jd|dksOJ q7g d}dd }|D ])}t d|d}| |}	|	|ksoJ |j|jddkszJ |j||ksJ qZt ddd}|jddd}	tdddtdd }
|	|
ksJ |jddd}	|	|
ksJ |jddd}	tdddtdd }
|	|
ksJ |jddd}	|	|
ksJ |jdd}	tdddtdd }
|	|
ksJ tddd}
|jddd}	|	|
ksJ |jddd}	|	|
ksJ |jddd}	|	|
ksJ |jddd}	|	|
ks(J |jddd}	|	|
ks6J d S )NrF   rD   r*   r   r   )r   StarTBEGInr=   r   r   )er   FINIsH)	rD   rE   rB   Wrv   r=   r   rf   r   c                 S   s2   | j dkr| jtddd S t| | j  jjd S )Nrv   rK   r   )r   nanoseconds)r   r   r   r   _value)r   r&   r&   r'   _ex  s   
z0TestPeriodMethods.test_to_timestamp.<locals>._ex1985r   r   i  rK   rk   3hrG   2mini  startr   5s)r   rl   	to_periodr   end_timer   r   r   )r#   r   start_tsaliasesaend_tsfrom_lstr   fcoder   rd   r&   r&   r'   test_to_timestamp  sX   z#TestPeriodMethods.test_to_timestampc                 C   sh   t jttd tdd}|jddd}W d    n1 sw   Y  tdtdd }||ks2J d S )	Nr   
1990-01-05rv   r   r   
1990-01-06rK   r   )r]   r^   r_   rz   r   rl   r   r   r#   ro   r   rd   r&   r&   r'   test_to_timestamp_business_end  s   
z0TestPeriodMethods.test_to_timestamp_business_endzts, expected)	)z1970-01-01 00:00:00r   )z1970-01-01 00:00:00.000001rK   )z1970-01-01 00:00:00.00001ry   )z1970-01-01 00:00:00.499i8 )z1999-12-31 23:59:59.999iX> )z1999-12-31 23:59:59.999999i?B )z2050-12-31 23:59:59.5i  )z2050-12-31 23:59:59.500001i! )z2050-12-31 23:59:59.123456i@ r   )NrW   rk   c                 C   s"   t |j|dj}||ksJ d S )Nr*   )r   rl   microsecond)r#   rn   rd   r   r   r&   r&   r'   test_to_timestamp_microsecond  s   z/TestPeriodMethods.test_to_timestamp_microsecondzstr_ts,freq,str_res,str_freq))zJan-2000N2000-01rB   )
2000-12-15Nr  r=   )2000-12-15 13:45:26.123456789rk   r  rk   )r  rW   2000-12-15 13:45:26.123456rW   )r  Nr  rW   )r  rT   2000-12-15 13:45:26.123rT   )r  Nr  rT   )2000-12-15 13:45:26r   r  r   )r  rG   z2000-12-15 13:45rG   )r  r   z2000-12-15 13:00r   )r  rD   2000r   )r  rE   2000Q4Q-DEC)r  rB   z2000-12rB   )r  r   z2000-12-11/2000-12-17r   )r  r=   r  r=   )r  rv   r  rv   c                 C   s>   t ||d}t||ksJ t|d| d| dksJ d S )Nr*   zPeriod('z', 'z'))r   r   repr)r#   str_tsr   str_resstr_freqr   r&   r&   r'   	test_repr  s   "zTestPeriodMethods.test_reprc                 C   s$   t ddd}ttt|v sJ d S )Nr   rB   r*   )r   r  r   r   r&   r&   r'   test_repr_nat	  s   zTestPeriodMethods.test_repr_natc                 C   s4   t ddd}|d}|dksJ t|tsJ d S )Nz2000-1-1 12:34:12r   r*   z%Y-%m-%d %H:%M:%Sz2000-01-01 12:34:12)r   strftimer   r   r   r&   r&   r'   test_strftime  s   
zTestPeriodMethods.test_strftimeN)r6   r7   r8   r   r   r   r    r9   filterwarningsr  r  r:   r  r"  r#  r%  r&   r&   r&   r'   r   i  s2    
?r   c                   @   s2  e Zd ZdZejdg ddd Zdd Zdd	 Z	ej
d
dd Zedd Zejdejdfejdfgejdddgdd Zejdejdfejdfgejdddg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d+d, Zd-d. Zd/d0 Zd1d2 Zd3S )4TestPeriodPropertiesz5Test properties such as year, month, weekday, etc....r   r   c                 C   sl   t d|d}|jsJ t|jtsJ t d|d}|jrJ t d|d}|js)J t d|d}|jr4J d S )Nz2000-01-01 00:00:00r*   z1999-01-01 00:00:00z2004-01-01 00:00:00z2100-01-01 00:00:00)r   is_leap_yearr   bool)r#   r   r   r&   r&   r'   test_is_leap_year  s   


z&TestPeriodProperties.test_is_leap_yearc                 C   s   t ddd}|jdksJ |jdksJ t|t sJ t ddd}|jdks(J |jdks/J t|t s6J t ddd}|jdksCJ |jd	ksJJ t|t sQJ d S )
Nr   r  r        rJ   rB      )r   r   r~   r   rM   r   r&   r&   r'    test_quarterly_negative_ordinals(  s   z5TestPeriodProperties.test_quarterly_negative_ordinalsc                 C   s0   t ddd}|jt ksJ |jdksJ d S )NrF   rf   r*   rG   )r   r   r   Minuter   )r#   r`   r&   r&   r'   test_freq_str8  s   z"TestPeriodProperties.test_freq_strr   c              
   C   s  g dg dg dg dg dg dg dg dg d	d
	}t }| D ]]\}}|D ]<}tjt|d td|d W d    n1 sDw   Y  tjt|d td|d W d    n1 saw   Y  q*td|d}td|d}t|tszJ t|tsJ q$d S )N)MTHMONTHMONTHLYMthrM   monthly)BUSBUSINESS
BUSINESSLYWEEKDAYbus)DAYDLYDAILYr\   DlyDaily)HRHOURHRLYHOURLYhrr   HRly)minuteMINUTEMINUTELYminutely)secSECSECONDSECONDLYsecond)MILLISECONDMILLISECONDLYmillisecond)MICROSECONDMICROSECONDLYr  )
NANOSECONDNANOSECONDLYr   )	rB   rv   r=   r   rG   r   rT   rW   rk   r   z2016-03-01 09:00r*   rK   r   )r
   itemsr    r!   r"   r   r   )r#   casesr%   r   freqsr   r   r   r&   r&   r'   test_period_deprecated_freq=  s2   z0TestPeriodProperties.test_period_deprecated_freqc              	   C   s&   t | j| j| j| j| j| j| ddS )NrW   )r   rM   rN   r   rG  rO  r   )r   r   rM   rN   r   rG  rO  )boundoffsetr&   r&   r'   _period_constructor[  s   z(TestPeriodProperties._period_constructorzbound, offsetr   rK   period_propertyr   r  c                 C   sJ   t ||}tjtdd t|| W d    d S 1 sw   Y  d S )NzOut of bounds nanosecondr   )r'  r]  r    r!   r   getattr)r#   r[  r\  r^  periodr&   r&   r'   $test_outer_bounds_start_and_end_timeg  s   "z9TestPeriodProperties.test_outer_bounds_start_and_end_timec                 C   sn   t || }| jdd}t||jdd|ksJ ||tddd  d}t||d|ks5J d S )Nr   r*   rK   )unit)r'  r]  rl   roundr_  r   floor)r#   r[  r\  r^  r`  rd   r&   r&   r'   $test_inner_bounds_start_and_end_timeo  s
   z9TestPeriodProperties.test_inner_bounds_start_and_end_timec                 C   s   g d}t ddd}|D ]}td|d}|j|ksJ qtjttd tdddjt dddks3J W d    n1 s=w   Y  tdd	djt d
ddksQJ d S )N)rD   rE   rB   r=   r   rG   r   rx   rK   2012r*   r   rv   r   r   i  r      )r   r   r   r]   r^   r_   rz   )r#   freq_lstxpfr   r&   r&   r'   test_start_timey  s    "z$TestPeriodProperties.test_start_timec                 C   s  t ddd}dd }|ddd}||jksJ t ddd}|d	d
d}||jks*J t ddd}|d	dd}||jks=J t ddd}|d	dd}||jksPJ t ddd}|d	ddd}||jksdJ tjttd t ddd}|d	dd}||jksJ W d    n1 sw   Y  t ddd}|d	dd}||jksJ t ddd}|d	dd}||jksJ t ddd}|d	ddd}||jksJ t ddd}|d	ddd}||jksJ d S )Nrf  rD   r*   c                  W      t t t|  djd S Nrk   rK   r   r   as_unitr   argsr&   r&   r'   r        z/TestPeriodProperties.test_end_time.<locals>._ex  rK   rE   rx   r,  rB   r   r=   r   r   rv   rJ   r   15D   r   r   )r   r  r]   r^   r_   rz   )r#   r   r   ri  r&   r&   r'   test_end_time  sB   z"TestPeriodProperties.test_end_timec                 C   s`   t jttd tdd}|j}W d    n1 sw   Y  tdtdd }||ks.J d S )Nr   r  rv   r  rK   r  )r]   r^   r_   rz   r   r  r   r   r  r&   r&   r'   test_end_time_business_friday  s   
z2TestPeriodProperties.test_end_time_business_fridayc                 C   s0   dd }t dd}|ddd}|j|ksJ d S )Nc                  W   rl  rm  rn  rp  r&   r&   r'   r     rr  z;TestPeriodProperties.test_anchor_week_end_time.<locals>._exz2013-1-1zW-SATrs  rK      )r   r  )r#   r   r   ri  r&   r&   r'   test_anchor_week_end_time  s   
z.TestPeriodProperties.test_anchor_week_end_timec                 C   s   t ddd}|jdksJ d S )NrD   rQ   )r   r   r   )r#   a_dater&   r&   r'   test_properties_annually  s   z-TestPeriodProperties.test_properties_annuallyc                 C   st   t dddd}t dddd}t dddd}tdD ]}|||fD ]}|| jdks+J || j|d ks6J q qd S )Nr  rQ   rK   )r   r   r~   zQ-JANzQ-JUNrJ   )r   r   qyearr~   )r#   
qedec_date
qejan_date
qejun_datexqdr&   r&   r'   test_properties_quarterly  s   z.TestPeriodProperties.test_properties_quarterlyc                 C   s   t dddd}tdD ]m}|| }|jdksJ d|d   kr$dkr.n n|jdks-J nAd|d   kr:dkrDn n|jd	ksCJ n+d
|d   krPdkrZn n|jdksYJ nd|d   krfdkron n|jdksoJ |j|d ksxJ qd S )NrB   rQ   rK   )r   r   rM   r.  rJ   r,  rx  r      rR   ry   r   )r   r   r   r~   rM   )r#   m_dater  m_ival_xr&   r&   r'   test_properties_monthly  s   z,TestPeriodProperties.test_properties_monthlyc                 C   s   t ddddd}|jdksJ |jdksJ |jdksJ |jdks$J |d jdks-J |jdks4J t ddd	ddjd
ksAJ d S )Nr   rQ   rK   r  r   r   rM   rN   4      rx   r      )r   r   r~   rM   weekdays_in_month)r#   w_dater&   r&   r'   test_properties_weekly  s   z+TestPeriodProperties.test_properties_weeklyc                 C   s   t ddddd}|jdksJ |jdksJ |jdksJ |jdks$J |d jdks-J |jdks4J t ddd	dd}|jd
ksCJ t}tjt	|d t ddddd W d    d S 1 s`w   Y  d S )Nr   rQ   rK   r  r  r  r  rx   r   r  r   WK)
r   r   r~   rM   r  r  r
   r    r!   r"   )r#   r  r   r%   r&   r&   r'   test_properties_weekly_legacy  s   "z2TestPeriodProperties.test_properties_weekly_legacyc                 C   sx  t jttd tddddd}W d    n1 sw   Y  |jdks&J |jdks-J |jdks4J |jdks;J |j	dksBJ |j
dksIJ |jdksPJ t jttd tddd	ddjd
kseJ W d    n1 sow   Y  tddddd}|jdksJ |jdksJ |jdksJ |jdksJ |j	dksJ |j
dksJ |jdksJ tddd	ddjd
ksJ d S )Nr   rv   rQ   rK   r  r   r  rx   r   r  r=   )r]   r^   r_   rz   r   r   r~   rM   rN   weekday	dayofyearr  )r#   b_dated_dater&   r&   r'   test_properties_daily   s,   z*TestPeriodProperties.test_properties_dailyc                 C   s   t dddddd}t dddddd}||fD ]H}|jdksJ |jdks&J |jdks-J |jdks4J |jdks;J |jdksBJ |jdksIJ |jdksPJ t ddd	dddjd
ks^J qd S )Nr   rQ   rK   r   )r   r   rM   rN   r   2hr  rx   r   r  )	r   r   r~   rM   rN   r  r  r   r  )r#   h_date1h_date2h_dater&   r&   r'   test_properties_hourly  s   z+TestPeriodProperties.test_properties_hourlyc                 C   s   t ddddddd}|jdksJ |jdksJ |jdksJ |jdks&J |jdks-J |jdks4J |jdks;J |jdksBJ t ddd	ddddjd
ksQJ d S )Nrf   rQ   rK   r   )r   r   rM   rN   r   rG  r  r=   rx   r   r  )	r   r~   rM   rN   r  r  r   rG  r  )r#   t_dater&   r&   r'   test_properties_minutely,  s   z-TestPeriodProperties.test_properties_minutelyc              	   C   s   t dddddddd}|jdksJ |jdksJ |jdks J |jdks'J |jdks.J |jdks5J |jdks<J |jdksCJ |j	dksJJ |j
dksQJ t ddddddddj
d	ksaJ d S )
Nrf   rQ   rK   r   )r   r   rM   rN   r   rG  rO  r  rx   r   r  )r   r   r~   rM   rN   r  r  r   rG  rO  r  )r#   s_dater&   r&   r'   test_properties_secondly=  s&   z-TestPeriodProperties.test_properties_secondlyN) r6   r7   r8   __doc__r    r9   r:   r*  r/  r1  r&  rZ  staticmethodr]  r   rG   maxra  re  rk  rv  rw  ry  r{  r  r  r  r  r  r  r  r  r&   r&   r&   r'   r'    s>    



/	r'  c                   @   s   e Zd Zdd ZdS )TestPeriodComparisonsc                 C   sF   t dd}t dd}t dd}|||g}|||g}t||ks!J d S )Nr  rB   z2000-02z2000-03)r   sorted)r#   janfebmarperiodscorrectPeriodsr&   r&   r'   test_sort_periodsV  s   




z'TestPeriodComparisons.test_sort_periodsN)r6   r7   r8   r  r&   r&   r&   r'   r  U  s    r  c                  C   s   d} t d}tjt| d d|_W d    n1 sw   Y  |j}tjt| d d| |_W d    d S 1 s;w   Y  d S )Nznot writable2014Q1r      r   )r   r    r!   AttributeErrorrY   r   )r%   ro   r   r&   r&   r'   test_period_immutable_  s   "r  c                  C   s*   t dd} | jdksJ | jdksJ d S )Nz
0001-01-07r=   rK   r  )r   r   rN   )per1r&   r&   r'   test_small_year_parsingl  s   
r  c                  C   s   g d} t ddd}| D ]	}t|| q| D ]}t d|d}t| |jdks+J qtjttd t ddd}W d    n1 sDw   Y  t| t ddd}t| d S )	N)rD   rB   rE   r=   r   rG   r   r   r=   r   r+  r   rv   r   )r   r  r{   r   r]   r^   r_   rz   )rY  r`  r   r&   r&   r'   test_negone_ordinalsr  s   r  )$r   r   r   r   numpyr   r    pandas._libs.tslibsr   pandas._libs.tslibs.ccalendarr   r   pandas._libs.tslibs.np_datetimer   pandas._libs.tslibs.parsingr	   pandas._libs.tslibs.periodr
   pandasr   r   r   r   r   pandas._testing_testingr]   rz   r   r;   r   r'  r  r  r  r  r&   r&   r&   r'   <module>   s6    $    ) -  B
