
    {hhG                     >   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 d d	lmZmZmZmZmZ d dlmZ d
Z G d d          Z G d d          Z G d d          Z  G d d          Z! G d d          Z"d Z#d Z$d Z%dS )    )datedatetime	timedeltaN)iNaT)DAYSMONTHS)OutOfBoundsDatetime)DateParseError)INVALID_FREQ_ERR_MSG)PY314)NaTPeriod	Timedelta	Timestampoffsetsz#Period with BDay freq is deprecatedc            	           e Zd Zej                            d ej                    df ej        d          df ej	        d          df ej
        d          dfg          d	             Zd
 Zd Zd ZdS )TestPeriodDisallowedFreqszfreq, freq_msg
BYearBegin   	YearBegin   startingMonthQuarterBeginBusinessMonthEndc                     t          j        | d          }t          j        t          |          5  t          d|           d d d            d S # 1 swxY w Y   d S )N% is not supported as period frequencymatchi  )yearfreq)reescapepytestraises
ValueErrorr   )selfr!   freq_msgmsgs       ]/var/www/histauto/venv/lib/python3.11/site-packages/pandas/tests/scalar/period/test_period.pytest_offsets_not_supportedz4TestPeriodDisallowedFreqs.test_offsets_not_supported"   s     i4FFFGG]:S111 	) 	)4((((	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	)s   AAAc                 t   d}t          j        t          |          5  t          dd           d d d            n# 1 swxY w Y   t	          j                    j         d}t          j        t          |          5  t          dt	          j                               d d d            d S # 1 swxY w 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)   s     r*   $test_custom_business_day_freq_raisesz>TestPeriodDisallowedFreqs.test_custom_business_day_freq_raises1   sG   6]:S111 	+ 	+<c****	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+*,,1XXX]:S111 	C 	C<g&?&A&ABBBB	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	Cs!   <A A =#B--B14B1c                     d}t          j        t          |          5  t          dd           d d d            d S # 1 swxY w Y   d S )Nz-WOM-1MON is not supported as period frequencyr   
2012-01-02zWOM-1MONr.   r$   r%   r&   r   r1   s     r*   $test_invalid_frequency_error_messagez>TestPeriodDisallowedFreqs.test_invalid_frequency_error_message:   s    =]:S111 	2 	2<j1111	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2   =AAc                     d}t          j        t          |          5  t          dd           d d d            d S # 1 swxY w Y   d S )Nz*for Period, please use 'M' instead of 'ME'r   r4   MEr.   r5   r1   s     r*   +test_invalid_frequency_period_error_messagezETestPeriodDisallowedFreqs.test_invalid_frequency_period_error_message?   s    :]:S111 	, 	,<d++++	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	,r7   N)__name__
__module____qualname__r$   markparametrizer   r   r   r   r   r+   r2   r6   r:        r*   r   r   !   s        [W!!<0Wq!!;/!W!333^D%W%a((*<=		
 ) ) )C C C2 2 2
, , , , ,rA   r   c                       e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zej                            de          d             Zej                            de          d             Zej                            de          ej                            d edd                    d                         Zd Zd Zej                            dg d          d             Zd Zd Zd Zej                            dg d          ej                            dg d          ej                            d g d!          d"                                     Zej                            d ed#                    d$             Zd%S )&TestPeriodConstructionc                 @   t          j        d          }d}t          j        t          |          5  t          |           d d d            n# 1 swxY w Y   t          j        t          |          5  t          |d           d d d            d S # 1 swxY w Y   d S )Nzm8[ns]2Value must be Period, string, integer, or datetimer   Dr.   )r   to_numpyr$   r%   r&   r   )r'   tdr)   s      r*   test_from_td64nat_raisesz/TestPeriodConstruction.test_from_td64nat_raisesF   s   \(##B]:S111 	 	2JJJ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ]:S111 	! 	!2C    	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	!s#   AAA4BBBc                    t          dd          }t          d          }||k    sJ t          dd          }t          d          }||k    sJ t          dd          }||k    sJ t          j        d          }t          t          j                    d          }||k    sJ t          j        d          }t          t          j                    d          }t          j        t          j                              }||k    sJ ||k    sJ t          d	d
          }d}t          j        t          |          5  t          d	d          }d d d            n# 1 swxY w Y   ||k    sJ t          dddd          }t          dd          }||k    sJ t          dddd          }||k    sJ t          d          }t          t          ddddddd          d          }||k    sJ t          dd          }||k    sJ t          d          }t          t          ddddddd          d          }||k    sJ t          dd          }||k    sJ d}t          j	        t          |          5  t          d           d d d            n# 1 swxY w Y   d }t          j	        t          |          5  t          d!d"           d d d            d S # 1 swxY w Y   d S )#N1/1/2005Mr.   zJan 20052005YQrF   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)   expecteds          r*   test_constructionz(TestPeriodConstruction.test_constructionQ   s   JS)))JRxxxx F%%%F^^RxxxxF%%%RxxxxZS!!!HLNN---Rxxxx ZS!!!HLNN---Z&&RxxxxRxxxxF'''L'SAAA 	, 	,U+++B	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	,RxxxxQAC888JS)))RxxxxQAC888Rxxxx-..(4Aq!Q==DIIIX~~~~3$???X~~~~/00(4Aq!Q==DIIIX~~~~5DAAAX~~~~2]:S111 	# 	#6""""	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# %]:S111 	) 	):C((((	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	)s6   E!!E%(E% JJ!$J!K$$K(+K(c                    t          j        t          d          5  t          dd           d d d            n# 1 swxY w Y   t          j        t          d          5  t          dd           d d d            d S # 1 swxY w Y   d S )Nzpass as a string insteadr   rP   )MinrU   r.   z
2006-12-31)wrU   )r$   r%   	TypeErrorr   r'   s    r*   test_tuple_freq_disallowedz1TestPeriodConstruction.test_tuple_freq_disallowed   s   ]9,FGGG 	, 	,6
++++	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, ]9,FGGG 	+ 	+<***	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+s   :>> A>>BBc                     t          d          }t          |d          }|                                }||k    sJ |j        }t          |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rt2s          r*   &test_construction_from_timestamp_nanosz=TestPeriodConstruction.test_construction_from_timestamp_nanos   s    677Rd### Rxxxx wd&&&!!x4rA   c                 .   t          j        t          t                    5  t	          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          }||k    sJ t	          d	d
dd          }t	          dd          }||k    sJ 	 d d d            d S # 1 swxY w Y   d S )Nr   3/10/12Br.   rF   z3/11/12z3/12/12b  rT   
   rV   )rg   rh   ri   bday_msgr   asfreq)r'   rj   rk   rm   s       r*   test_construction_bdayz-TestPeriodConstruction.test_construction_bday   sk   'XFFF 	 		,,,B	,,,B3''''	,,,B3''''	,,,B3''''	,,,B8888T===B	,,,B88888	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   CD

DDc                    t          ddd          }t          dd          }||k    sJ t          ddd          }t          dd          }||k    sJ t          d	          }t          ddd          }t          d
          }||k    sJ ||k    sJ t          d          }||k    sJ t          d          }||k    sJ t          d          }||k    sJ t          d          }||k    sJ t          d          }||k    sJ t          d          }||k    sJ t          d          }|j        dk    sJ t          d          }||k    sJ d S )NrS   rU   rO   r    quarterr!   rK   r.   rT   z9/1/20052005Q12005q105Q105q11Q20051q20051Q051q054Q1984i  4q1984r   r    )r'   rj   rk   rm   lowers        r*   test_construction_quarterz0TestPeriodConstruction.test_construction_quarter   s~   qs333JS)))Rxxxxqs333JS)))RxxxxHqs333HRxxxxRxxxxF^^RxxxxvU{{{{HRxxxxx  U{{{{F^^RxxxxvU{{{{Hw$x  U{{{{{{rA   c                    t          dd          }t          dd          }||k    sJ t          dd          }||k    sJ t          dd          }||k    sJ t          dd          }|j        dk    sJ t          t          dd	d	          d          }t          dd          }||k    sJ t          t          dd	d	          d          }t          t          dd	d	          d          }t          t	          j        d
          d          }t          dd          }t          dd          }||k    sJ ||k    sJ ||k    sJ ||k    sJ d S )N2007-01rL   r.   200701rb   rc   r!   I  r[   rU   
2007-01-012007-01-01 00:00:002007-01-01 00:00:00.000)r   r    r   r   np
datetime64r'   rn   rj   rk   rm   rl   i5s          r*   test_construction_monthz.TestPeriodConstruction.test_construction_month   s   )#...H3'''X~~~~H3'''X~~~~F%%%X~~~~F---w%HT1a((s333H3'''RxxxxDq!$$3///HT1a((s333BM,//c:::)444-C888RxxxxRxxxxRxxxxRxxxxxxrA   c                 
   t          dt          j                              t          dd          k    sJ t          dt          j                              t          dd          k    sJ t          dt          j                              t          dd          k    sJ t	          j        t          t                    5  t          dt          j                              t          dd          k    sJ 	 d d d            n# 1 swxY w Y   t          dt          j	                              t          dd	          k    sJ t          d
dt          j
        d                    t          d
dd          k    sJ t          d
dt          j
        d                    t          d
dd          k    sJ t          d
ddt          j	                              t          d
ddd	          k    sJ t	          j        t          t                    5  t          dddt          j                              t          dddd          k    sJ 	 d d d            n# 1 swxY w Y   t          dd          }t          d
ddt          j	        d                    |k    sJ t          d
ddd          |k    sJ t	          j        t          t                    5  t          dddt          j        d                    t          dddd          k    sJ 	 d d d            n# 1 swxY w Y   t          dt          j                              t          dd          k    sJ t          dt          j                              }t          dd          }||k    sJ |j        dk    sJ |j        dk    sJ t          t          ddd          d          }t          dd          }||k    sJ t          t          ddd          d          }t          t          ddd          d          }t          t          j        d          d          }t          dd          }t          dd          }||k    sJ ||k    sJ ||k    sJ ||k    sJ t          d           }t          t          dddd!d"d"d#          d$          }||k    sJ t          d d$          }||k    sJ t          d%          }t          t          dddd!d"d"d&          d'          }||k    sJ t          d%d'          }||k    sJ d S )(NrK   r.   rL   rM   rN   r   r   r   rF   rS   rU   r   r   r   rO   r   rT   rV   r   r   z
2005-03-013D3Brb   r   r   r[   r   r   r   r   rZ   r\   r   r]   r^   r_   r`   ra   )r   r   MonthEndYearEndrg   rh   ri   r   BusinessDayrf   
QuarterEndBDayr    r   r   r   r   r   s          r*   test_period_constructor_offsetsz6TestPeriodConstruction.test_period_constructor_offsets   s   jw'7'9'9:::fS?
 ?
 ?
 
 
 
 
 f7?#4#4555S9Q9Q9QQQQQf7#3#5#5666&c:R:R:RRRRR'XFFF 	 	)'*=*?*?@@@FE E E     	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 igkmm444ys8S8S8SSSSSqw'9'K'K'K
 
 
qs3334 4 4 4 qw'9'K'K'K
 
 
qs3334 4 4 4 4qagkmmDDDQACI
 I
 I
 
 
 
 
 'XFFF 	 	t1"7<>>JJJfO O O     	 	 	 	 	 	 	 	 	 	 	 	 	 	 	
 ,T2224qagk!nnEEEQQQQ4qad;;;xGGGG'XFFF 	 	t1"7<??KKKvP P P     	 	 	 	 	 	 	 	 	 	 	 	 	 	 	
 f7#3#5#5666&c:R:R:RRRRRF)9););<<<F---Rxxxxw%w%HT1a((s333H3'''RxxxxDq!$$3///HT1a((s333BM,//c:::)444-C888RxxxxRxxxxRxxxxRxxxx-..(4Aq!Q==DIIIX~~~~3$???X~~~~/00(4Aq!Q==DIIIX~~~~5DAAAX~~~~~~s6   8DDD<I''I+.I+'=L11L58L5c                 ^   d}t          j        t          |          5  t          t	          j                               d d d            n# 1 swxY w Y   t          j        t          |          5  t          t	          j                                                               d d d            n# 1 swxY w Y   d}t          j        t          |          5  t          dd           d d d            n# 1 swxY w Y   d}t          j        t          |          5  t          dd           d d d            n# 1 swxY w Y   d	}t          j        t          |          5  t          d
dd           d d d            n# 1 swxY w Y   d}t          j        t          |          5  t          d           d d d            n# 1 swxY w Y   d}t          j        t          |          5  t          dd           d d d            n# 1 swxY w Y   t          rd}nd}t          j        t          |          5  t          dd           d d d            n# 1 swxY w Y   d}t          j        t          |          5  t          dd           d d d            d S # 1 swxY w Y   d S )Nz#Must supply freq for datetime valuer   rE   g?rF   r.   zOrdinal must be an integerr   z?Only value or ordinal but not both should be given but not bothr   rU   )rc   valuer!   z%If value is None, freq cannot be None)rW   z1^Given date string "-2000" not likely a datetime$z-2000rN   z5day 0 must be in range 1..31 for month 1 in year 1: 0zday is out of range for month0z/Unknown datetime string format, unable to parsez	1/1/-2000)	r$   r%   r&   r   r   re   r   r   r
   r1   s     r*   test_invalid_argumentsz-TestPeriodConstruction.test_invalid_argumentsB  s   3]:S111 	# 	#8<>>"""	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	#]:S111 	* 	*8<>>&&(()))	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* C]:S111 	" 	"3S!!!!	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	"*]:S111 	* 	*3S))))	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	*O]:S111 	1 	11AC0000	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 6]:S111 	 	OOOO	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 B]:S111 	! 	!7C   	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	2ICC1C]>555 	 	3	 	 	 	 	 	 	 	 	 	 	 	 	 	 	?]>555 	% 	%;$$$	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	%s   !AAA13B00B47B4C66C:=C:D<<E E $FF
F+GGG0HHH?II #I J""J&)J&c                     t          dd          }t          ddd          |k    sJ t          d           t          u sJ t          dd          }t          |d	          }t          d
d	          }||k    sJ d S )Nr   2Mr.   r[   rU   )r    rW   r!   r   rF   rN   2007r   r   )r'   rn   presultexps        r*   test_constructor_cornerz.TestPeriodConstruction.test_constructor_cornerd  s    )$///4qt444@@@@d||s""""<c***$$$V#&&&}}}}}}rA   c                    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          d          }|j        dk    sJ t          d          }|j        dk    sJ d S )Nr   rF   z2007-01-01 07hz2007-01-01 07:10rQ   z2007-01-01 07:10:15sz2007-01-01 07:10:15.123r^   z2007-01-01 07:10:15.123000ra   z2007-01-01 07:10:15.123400)r   r!   r'   r   s     r*   test_constructor_infer_freqz2TestPeriodConstruction.test_constructor_infer_freqp  s    <  v}}}}?##v}}}}%&&v())v}}}},--v~~~~ /00v~~~~/00v~~~~~~rA   c                    t          dd          }t          dd          }|j        |j        k    sJ |j        dk    sJ |j        dk    sJ |j        t	          j        d          k    sJ |j        t	          j                    k    sJ |dz   j        |j        dz   k    sJ d|z   j        |j        dz   k    sJ |dz
  j        |j        dz
  k    sJ d	|z   j        |j        dz
  k    sJ d S )
N19892Yr.   rN   z2Y-DECY-DECr   rU   )r   rc   freqstrr!   r   r   )r'   result1result2s      r*   test_multiplesz%TestPeriodConstruction.test_multiples  s   d+++c***'/1111(****'))))|wq111111|w000000!$!(;;;;;G$!(;;;;;!$!(;;;;;W%1)<<<<<<<rA   rW   c                    d| }t          d|          }dt          |          v sJ |                    dd          }t          ||          }||k    sJ |                    dd          }t          ||          }||k    sJ d S )NzQ-1989Q3r.   rF   endhowr   )r   strrx   r'   rW   r!   r   stampr   s         r*   test_period_cons_quarterlyz1TestPeriodConstruction.test_period_cons_quarterly  s     E||XD)))3s88####  % 005t$$$Cxxxx  5 115t$$$CxxxxxxrA   c                     d| }t          d|          }|                    dd          t          d          z   }t          ||          }||d	z   k    sJ t          |t                     sJ d S )
NzY-r   r.   rF   r   r      )daysrU   )r   rx   r   
isinstancer   s         r*   test_period_cons_annualz.TestPeriodConstruction.test_period_cons_annual  s     E||V$'''  % 009"3E3E3EE5t$$$C!G||||!V$$$$$$$rA   rX   numr      c                     d| }d| }t          ||          }t          |d                              |          }||k    sJ t          |t                     sJ d S )Nz2011-02-zW-r.   rF   )r   r   r   )r'   r   rX   daystrr!   r   rn   s          r*   test_period_cons_weeklyz.TestPeriodConstruction.test_period_cons_weekly  s{     "C!!CzzT***&s+++22488!!!!&&)))))))rA   c                    t          d          }|j        j        dk    sJ t          d          }|j        j        dk    sJ d}t          j        t
          |          5  t          d           d d d            d S # 1 swxY w 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'   r{   r)   s      r*   test_parse_week_str_roundstripz5TestPeriodConstruction.test_parse_week_str_roundstrip  s    ,--x7****,--x7****5]:S111 	, 	,*+++	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	,s    A==BBc                     t          dd          }t          j        |j        |j                  }||k    sJ t	          |t                     sJ d S )N2011-01rL   r.   )r   _from_ordinalrc   r!   r   r'   r   ress      r*   test_period_from_ordinalz/TestPeriodConstruction.test_period_from_ordinal  sV    93'''"1916:::Cxxxx#v&&&&&&&rA   r!   rN   rL   rF   r   c                     t          d|          }|t          u sJ t          dd|z             }|t          u sJ t          dd|z             }|t          u sJ d S )Nr   r.   23r   )r'   r!   r{   s      r*   'test_construct_from_nat_string_and_freqz>TestPeriodConstruction.test_construct_from_nat_string_and_freq  sk    U&&&czzzzUt,,,czzzzUt,,,czzzzzzrA   c                 v   t          dd          }|t          u sJ t          t          d          }|t          u sJ t          t          d          }|t          u sJ t          t          d          }|t          u sJ t          d          }|t          u sJ t          t                    }|t          u sJ d S )Nnatr   r.   rF   r   1D1hr   )r   r   r   r   s     r*   test_period_cons_natz+TestPeriodConstruction.test_period_cons_nat  s    5w'''Cxxxx4c"""Cxxxx4d###Cxxxx4f%%%Cxxxx5MMCxxxx4LLCxxxxxxrA   c                    t          dd          }t          dd          }|j        |j        k    sJ |j        t          j        d          k    sJ |j        dk    sJ |j        t          j                    k    sJ |j        dk    sJ |dz   }|j        |dz   j        k    sJ |j        |j        k    sJ |j        dk    sJ |dz
  }|j        |dz
  j        k    sJ |j        |j        k    sJ |j        dk    sJ d}t          j        t          |          5  t          dd	           d d d            n# 1 swxY w Y   d
}t          j        t          |          5  t          dd           d d d            d S # 1 swxY w Y   d S )Nr   3Mr.   rL   rT   rU   z;Frequency must be positive, because it represents span: -3Mr   z-3Mz:Frequency must be positive, because it represents span: 0M0M)	r   rc   r!   r   r   r   r$   r%   r&   )r'   p1p2r   r)   s        r*   test_period_cons_multz,TestPeriodConstruction.test_period_cons_mult  sG   ID)))IC(((zRZ''''w'*1------zT!!!!w'*,,,,,,zS    a~"q&!11111{bg%%%%~%%%%a~"q&!11111{bg%%%%~%%%%K]:S111 	* 	*95))))	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* K]:S111 	) 	)94((((	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	)s$   D99D= D=!F  FFc                 L   t          dd          t          dd          t          dd          ft          dd          t          dd          t          dd          fg}|D ]\  }}}|j        |j        k    sJ |j        |j        k    sJ |j        t          j        d          k    sJ |j        d	k    sJ |j        t          j        d          k    sJ |j        d	k    sJ |j        t          j                    k    sJ |j        dk    sJ |dz   }|j        |dz   j        k    sJ |j        |j        k    sJ |j        d	k    sJ |dz   }|j        |dz   j        k    sJ |j        |j        k    sJ |j        d	k    sJ |dz
  }|j        |dz
  j        k    sJ |j        |j        k    sJ |j        d	k    sJ |dz
  }|j        |dz
  j        k    sJ |j        |j        k    sJ |j        d	k    sJ d
}t          j        t          |          5  t          dd           d d d            n# 1 swxY w Y   t          j        t          |          5  t          dd           d d d            n# 1 swxY w Y   t          j        t          |          5  t          dd           d d d            n# 1 swxY w Y   t          j        t          |          5  t          dd           d d d            n# 1 swxY w Y   d}t          j        t          |          5  t          dd           d d d            n# 1 swxY w Y   t          j        t          |          5  t          dd           d d d            n# 1 swxY w Y   d}t          j        t          |          5  t          dd           d d d            n# 1 swxY w Y   d}t          j        t          |          5  t          dd           d d d            d S # 1 swxY w Y   d S )Nr   r   r.   1h1Dr   rU   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   rc   r!   r   Hourr   r$   r%   r&   )r'   r   r   r   p3r   r)   s          r*   test_period_cons_combinedz0TestPeriodConstruction.test_period_cons_combined	  s    yv...yv...ys+++ qv...qv...qs+++
  	+ 	+JBB:++++:++++7gl2......:&&&&7gl2......:&&&&7glnn,,,,:$$$$!VF>b2g%66666;"'))))>U****!VF>b2g%66666;"'))))>U****!VF>b2g%66666;"'))))>U****!VF>b2g%66666;"'))))>U*****L]:S111 	, 	,97++++	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	,]:S111 	, 	,97++++	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	,]:S111 	, 	,17++++	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	,]:S111 	, 	,17++++	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, K]:S111 	+ 	+96****	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+]:S111 	+ 	+16****	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ (]:S111 	+ 	+96****	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+']:S111 	+ 	+96****	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+s   H66H:=H:I::I>I> J>>KK$LL	L*MMM.NNN4OOO:PP P)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
.000000001rU   )z
.000000999  )z
.123456789i  )z
.999999999r   )z
.999999000r   )z.999999001123rU   )z.999999001123456rU   )z.999999001123456789rU   c                 P    t          ||z   |z             j        j        |k    sJ d S )N)r   
start_time
nanosecond)r'   rX   r   	sec_floatrn   s        r*   "test_period_constructor_nanosecondz9TestPeriodConstruction.test_period_constructor_nanosecondP  s2    & cDj9,--8CxOOOOOOrA      c                 H    t          d|z   d          }|j        |k    sJ d S )Ni ' 1hr   )r   r   )r'   r   r   s      r*   test_period_large_ordinalz0TestPeriodConstruction.test_period_large_ordinale  s-     7T>555v~~~~~~rA   N) r;   r<   r=   rI   ro   ru   r   r   r   r   r   r   r   r   r   r$   r>   r?   r   r   r   r   ranger   r   r   r   r   r   r   r  r	  r@   rA   r*   rC   rC   E   s       	! 	! 	!?) ?) ?)B+ + +       $! ! !F  8F F FP %  %  %D
 
 
  0= = = [Wf--  .- [Wf--% % .-% [UD))[UEE"bMM22* * 32 *)*, , ,' ' ' [V%9%9%9::  ;:  &) ) )<E+ E+ E+N [U$Q$Q$QRR[V%U%U%UVV[
	
 
	
 
	
 P P  WV SR P
 [VUU2YY//  0/  rA   rC   c                      e Zd Zd Zd Zd Zej                            d          d             Z	d Z
ej                            dg d          ej                            d	g d
          d                         Zej                            dd          ej                            d          d                         Zd Zd ZdS )TestPeriodMethodsc                 \    t          d          }t          j        |          }||k    sJ d S )N2000Q1)r   rg   round_trip_pickle)r'   r   new_ps      r*   test_round_tripz!TestPeriodMethods.test_round_tripn  s0    8$Q''zzzzzzrA   c                    t          t          dd                    t          t          dd                    k    sJ t          t          dd                    t          t          dd                    k    sJ t          t          dd                    t          t          dd                    k    sJ t          t          dd                    t          t          dd                    k    sJ d S )	Nr   rL   r.   
2011-01-01rF   r   r   z2011-02)hashr   rt   s    r*   	test_hashzTestPeriodMethods.test_hashs  s    F93///00D	PS9T9T9T4U4UUUUUF<c22233tF9SV<W<W<W7X7XXXXXF9400011T&QU:V:V:V5W5WWWWWF93///00D	PS9T9T9T4U4UUUUUUUrA   c                    t          dd          }|                    d          t          d          k    sJ t          d          t          dd	          z
  }|                    d
          |k    sJ t          dd          }|                    d          t          d          k    sJ t          d          t          dd	          z
  }|                    d
          |k    sJ d S )Nr   rL   r.   Sr   r  z
2011-02-01rU   rw   Er   z
2011-04-01)r   rx   r   r   )r'   r   rn   s      r*   test_to_timestamp_multz(TestPeriodMethods.test_to_timestamp_mult  s    93'''~~#~&&)L*A*AAAAA\**Yq$-?-??~~#~&&(222294(((~~#~&&)L*A*AAAAA\**Yq$-?-??~~#~&&(222222rA   8ignore:Period with BDay freq is deprecated:FutureWarningc                    t          dd          }|                    d          }g d}|D ]<}||                    d|          k    sJ ||                    d|          k    sJ =|                    d	          }g d
}|D ]<}||                    d|          k    sJ ||                    d|          k    sJ =g d}d }|D ]y}t          d|          }|                                                    |          }	|	|k    sJ |j        |                    d          k    sJ |j         ||          k    sJ zt          dd          }|                    dd          }	t          ddd          t          dd          z
  }
|	|
k    sJ |                    dd          }	|	|
k    sJ |                    dd          }	t          ddd          t          dd          z
  }
|	|
k    sJ |                    dd          }	|	|
k    sJ |                    d          }	t          ddd          t          dd          z
  }
|	|
k    sJ t          ddd          }
|                    dd          }	|	|
k    sJ |                    dd          }	|	|
k    sJ |                    dd          }	|	|
k    sJ |                    dd          }	|	|
k    sJ |                    dd          }	|	|
k    sJ d S )NrP   rN   r.   r  r   )r   StarTBEGInrF   r   r  )er   FINIsH)	rN   rO   rL   Wr   rF   r   rq   r   c                     | j         dk    r| j        t          dd          z   S t          | | j         z   j        j        dz
            S )Nr   rU   r   )r   nanoseconds)r!   r  r   r   _value)r   s    r*   _exz0TestPeriodMethods.test_to_timestamp.<locals>._ex  sF    v}}|iQB&G&G&GGGa!&j4;a?@@@rA   1985r   r   i  rU   rw   3hrQ   2mini  startr   5s)r   rx   	to_periodr  end_timer   r   r   )r'   r   start_tsaliasesaend_tsfrom_lstr$  fcoder   rn   s              r*   test_to_timestampz#TestPeriodMethods.test_to_timestamp  s    6$$$>>c>**))) 	; 	;Aq~~cq~999999q~~d~:::::::C((((( 	9 	9AQ^^CQ^777777Q^^Da^8888888BBB	A 	A 	A
  	( 	(EvE***A^^%%//66FQ;;;;<1>>c>#:#::::::Q''''' 6$$$//T1a((9Q+=+==!!!!%00!!!!511T1a((9Q+=+==!!!!E22!!!!E**T1a((9Q+=+==!!!!D!Q''11!!!!733!!!!11!!!!'22!!!!'22!!!!!!rA   c                    t          j        t          t                    5  t	          dd          }|                    dd          }d d d            n# 1 swxY w Y   t          d          t          d          z
  }||k    sJ d S )	Nr   
1990-01-05r   r  r   
1990-01-06rU   r"  )rg   rh   ri   r   r   rx   r   r   r'   r{   r   rn   s       r*   test_to_timestamp_business_endz0TestPeriodMethods.test_to_timestamp_business_end  s    'XFFF 	4 	4s++C%%cs%33F	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 \**Y1-E-E-EE!!!!!!s   (AAAzts, expected)	)z1970-01-01 00:00:00r   )z1970-01-01 00:00:00.000001rU   )z1970-01-01 00:00:00.00001r   )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!   )Nra   rw   c                 f    t          |                              |          j        }||k    sJ d S )Nr.   )r   rx   microsecond)r'   rz   rn   r!   r   s        r*   test_to_timestamp_microsecondz/TestPeriodMethods.test_to_timestamp_microsecond  s:    " ((d(33?!!!!!!rA   zstr_ts,freq,str_res,str_freq))zJan-2000N2000-01rL   )
2000-12-15Nr=  rF   )2000-12-15 13:45:26.123456789rw   r>  rw   )r>  ra   2000-12-15 13:45:26.123456ra   )r?  Nr?  ra   )r>  r^   2000-12-15 13:45:26.123r^   )r@  Nr@  r^   )2000-12-15 13:45:26r   rA  r   )rA  rQ   z2000-12-15 13:45rQ   )rA  r   z2000-12-15 13:00r   )r=  rN   2000r   )r=  rO   2000Q4Q-DEC)r=  rL   z2000-12rL   )r=  r   z2000-12-11/2000-12-17r   )r=  rF   r=  rF   )r=  r   r=  r   c                     t          ||          }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   s         r*   	test_reprzTestPeriodMethods.test_repr  s^    < 6%%%1vv    Aww>W>>(>>>>>>>>>rA   c                 r    t          dd          }t          t                    t          |          v sJ d S )Nr   rL   r.   )r   rF  r   r   s     r*   test_repr_natzTestPeriodMethods.test_repr_nat  s7    5s###CyyDGG######rA   c                     t          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   s      r*   test_strftimezTestPeriodMethods.test_strftime  sU    &S111jj,--+++++#s#######rA   N)r;   r<   r=   r  r  r  r$   r>   filterwarningsr2  r8  r?   r;  rJ  rL  rO  r@   rA   r*   r  r  m  si         
V V V	3 	3 	3 [B =" =" ="~" " " [
	
 
	
 
	
  [V%7%7%788" " 98 " [&	
 4 [B ? ? 5 :?
$ $ $$ $ $ $ $rA   r  c                   p   e Zd ZdZej                            dg d          d             Zd Zd Z	ej        
                    d          d             Zed	             Zej                            d
ej        dfej        dfg          ej                            dddg          d                         Zej                            d
ej        dfej        dfg          ej                            dddg          d                         Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd ZdS ) TestPeriodPropertiesz5Test properties such as year, month, weekday, etc....r!   r   c                    t          d|          }|j        sJ t          |j        t                    sJ t          d|          }|j        rJ t          d|          }|j        sJ t          d|          }|j        rJ 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   s      r*   test_is_leap_yearz&TestPeriodProperties.test_is_leap_year  s     (t444~!.$/////(t444>!!!(t444~(t444>!!!!!rA   c                    t          dd          }|j        dk    sJ |j        dk    sJ t          |t                     sJ t          dd          }|j        dk    sJ |j        dk    sJ t          |t                     sJ t          dd          }|j        dk    sJ |j        d	k    sJ t          |t                     sJ d S )
Nr   rD  r        rT   rL      )r   r    r   r   rW   r   s     r*    test_quarterly_negative_ordinalsz5TestPeriodProperties.test_quarterly_negative_ordinals,  s    2G,,,v~~~~yA~~~~!V$$$$$2G,,,v~~~~yA~~~~!V$$$$$2C(((v~~~~w"}}}}!V$$$$$$$rA   c                 ~    t          dd          }|j        t          j                    k    sJ |j        dk    sJ d S )NrP   rq   r.   rQ   )r   r!   r   Minuter   )r'   rj   s     r*   test_freq_strz"TestPeriodProperties.test_freq_str<  sH    F'''w'.******zU""""""rA   r  c           
      >   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          |          5  t          d|           d d d            n# 1 swxY w Y   t          j        t          |          5  t          d|           d d d            n# 1 swxY w Y   t          d|          }t          d|          }t          |t
                    sJ t          |t
                    sJ d S )N)MTHMONTHMONTHLYMthrW   monthly)BUSBUSINESS
BUSINESSLYWEEKDAYbus)DAYDLYDAILYrf   DlyDaily)HRHOURHRLYHOURLYhrr   HRly)minuteMINUTEMINUTELYminutely)secSECSECONDSECONDLYsecond)MILLISECONDMILLISECONDLYmillisecond)MICROSECONDMICROSECONDLYr:  )
NANOSECONDNANOSECONDLYr  )	rL   r   rF   r   rQ   r   r^   ra   rw   r   z2016-03-01 09:00r.   rU   r   )r   itemsr$   r%   r&   r   r   )r'   casesr)   r   freqsr!   r   r   s           r*   test_period_deprecated_freqz0TestPeriodProperties.test_period_deprecated_freqA  s   
 HGGDDD???GGG??????AAAAAA>>>

 

 #++-- 	* 	*JC 1 1]:S999 : :-D9999: : : : : : : : : : : : : : :]:S999 1 11400001 1 1 1 1 1 1 1 1 1 1 1 1 1 1 *555B,,,Bb&)))))b&))))))	* 	*s$   A<<B B "C  CCc           	      p    t          | j        | j        | j        | j        | j        | j        |z   d          S )Nra   )r    rW   rX   r   rv  r~  r!   )r   r    rW   rX   r   rv  r~  )boundoffsets     r*   _period_constructorz(TestPeriodProperties._period_constructor_  s?    +	<<&(
 
 
 	
rA   zbound, offsetr   rU   period_propertyr  r+  c                     t                               ||          }t          j        t          d          5  t          ||           d d d            d S # 1 swxY w Y   d S )NzOut of bounds nanosecondr   )rR  r  r$   r%   r	   getattr)r'   r  r  r  periods        r*   $test_outer_bounds_start_and_end_timez9TestPeriodProperties.test_outer_bounds_start_and_end_timek  s     &99%HH].6PQQQ 	- 	-FO,,,	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	-s   AAAc                    t                               ||           }|                                                    d          }t	          ||                              d          |k    sJ ||t          dd          z  z
                      d          }t	          ||                              d          |k    sJ d S )Nr   r.   rU   )unit)rR  r  rx   roundr  r   floor)r'   r  r  r  r  rn   s         r*   $test_inner_bounds_start_and_end_timez9TestPeriodProperties.test_inner_bounds_start_and_end_times  s     &99%&II&&((..C.88v//5535??8KKKKFYqs%;%;%;;;BB3GGv//55c::hFFFFFFrA   c                    g d}t          ddd          }|D ] }t          d|          }|j        |k    sJ !t          j        t
          t                    5  t          dd          j        t          ddd          k    sJ 	 d d d            n# 1 swxY w Y   t          dd	          j        t          d
dd          k    sJ d S )N)rN   rO   rL   rF   r   rQ   r   r   rU   2012r.   r   r   r   r   i  r      )r   r   r  rg   rh   ri   r   )r'   freq_lstxpfr   s        r*   test_start_timez$TestPeriodProperties.test_start_time}  s4   888dAq!! 	& 	&AvA&&&A<2%%%%%'XFFF 	O 	O&s+++6(4A:N:NNNNNN	O 	O 	O 	O 	O 	O 	O 	O 	O 	O 	O 	O 	O 	O 	Of3'''2htR6L6LLLLLLLs   ,BBBc                    t          dd          }d } |ddd          }||j        k    sJ t          dd          } |dd	d          }||j        k    sJ t          dd
          } |ddd          }||j        k    sJ t          dd          } |ddd          }||j        k    sJ t          dd          } |dddd          }||j        k    sJ t          j        t          t
                    5  t          dd          } |ddd          }||j        k    sJ 	 d d d            n# 1 swxY w Y   t          dd          } |ddd          }||j        k    sJ t          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 d S )Nr  rN   r.   c                  ~    t          t          t          |                                d          j        dz
            S Nrw   rU   r   r   as_unitr#  argss    r*   r$  z/TestPeriodProperties.test_end_time.<locals>._ex  2    Yx77??EELqPQQQrA     rU   rO   r   rY  rL   r   rF   r   r   r   rT   r   15D   r   r   )r   r+  rg   rh   ri   r   )r'   r   r$  r  s       r*   test_end_timez"TestPeriodProperties.test_end_time  s   6$$$	R 	R 	R Sq!__QZ6$$$Sq!__QZ6$$$Sq!__QZ6$$$Sq!__QZ6$$$Sq!QQZ'XFFF 	$ 	$vC(((AT1aB#####	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$
 6$$$Sq!__QZ 6&&&Sq"QZ6'''Sq!QQZ6'''Sq!QQZs   <,D55D9<D9c                     t          j        t          t                    5  t	          dd          }|j        }d d d            n# 1 swxY w Y   t          d          t          d          z
  }||k    sJ d S )Nr   r4  r   r5  rU   r6  )rg   rh   ri   r   r   r+  r   r   r7  s       r*   test_end_time_business_fridayz2TestPeriodProperties.test_end_time_business_friday  s    'XFFF 	" 	"s++C\F	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" \**Y1-E-E-EE!!!!!!s   AA	A	c                 `    d }t          dd          } |ddd          }|j        |k    sJ d S )Nc                  ~    t          t          t          |                                d          j        dz
            S r  r  r  s    r*   r$  z;TestPeriodProperties.test_anchor_week_end_time.<locals>._ex  r  rA   z2013-1-1zW-SATr  rU      )r   r+  )r'   r$  r   r  s       r*   test_anchor_week_end_timez.TestPeriodProperties.test_anchor_week_end_time  sO    	R 	R 	R :w''Sq!__zRrA   c                 B    t          dd          }|j        dk    sJ d S )NrN   r[   )r!   r    r   )r'   a_dates     r*   test_properties_annuallyz-TestPeriodProperties.test_properties_annually  s-    St,,,{d""""""rA   c                     t          ddd          }t          ddd          }t          ddd          }t          d          D ]-}|||fD ]%}||z   j        dk    sJ ||z   j        |dz   k    sJ &.d S )NrD  r[   rU   )r!   r    r   zQ-JANzQ-JUNrT   )r   r
  qyearr   )r'   
qedec_date
qejan_date
qejun_datexqds         r*   test_properties_quarterlyz.TestPeriodProperties.test_properties_quarterly  s    tQ???
tQ???
tQ???
q 	1 	1A!:z: 1 1Q~----Q'1q5000001	1 	1rA   c                    t          ddd          }t          d          D ]}||z   }|j        dk    sJ d|dz   cxk    rdk    rn n|j        dk    sJ nbd|dz   cxk    rdk    rn n|j        d	k    sJ nAd
|dz   cxk    rdk    rn n|j        dk    sJ n d|dz   cxk    rdk    rn n|j        dk    sJ |j        |dz   k    sJ d S )NrL   r[   rU   )r!   r    rW   r[  rT   rY  r  r      r\   r   r   )r   r
  r    r   rW   )r'   m_dater  m_ival_xs       r*   test_properties_monthlyz,TestPeriodProperties.test_properties_monthly  sA   St1555r 	+ 	+AzH=D((((AEQ'1,,,,,a!eq'1,,,,,a!eq'1,,,,,q1u"""""""""'1,,,,>QU*****	+ 	+rA   c                 
   t          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z
  j        dk    sJ |j        dk    sJ t          ddd	d          j        d
k    sJ d S )Nr   r[   rU   r  r!   r    rW   rX   4      r   r      )r   r    r   rW   weekdays_in_month)r'   w_dates     r*   test_properties_weeklyz+TestPeriodProperties.test_properties_weekly  s    St1!<<<{d""""~""""|q    {a
 B&&&&#r))))3T:::HBNNNNNNrA   c                    t          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z
  j        dk    sJ |j        dk    sJ t          ddd	d          }|j        d
k    sJ t          }t          j        t          |          5  t          dddd           d d d            d S # 1 swxY w Y   d S )Nr   r[   rU   r  r  r  r  r   r   r  r   WK)
r   r    r   rW   r  r  r   r$   r%   r&   )r'   r  r   r)   s       r*   test_properties_weekly_legacyz2TestPeriodProperties.test_properties_weekly_legacy  sO   St1!<<<{d""""~""""|q    {a
 B&&&&#r))))#Dq999 B&&&&"]:S111 	9 	94qa8888	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9s   'CCCc                    t          j        t          t                    5  t	          dddd          }d d d            n# 1 swxY w Y   |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    sJ |j        dk    sJ t          j        t          t                    5  t	          ddd	d          j        d
k    sJ 	 d d d            n# 1 swxY w Y   t	          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    sJ |j        dk    sJ t	          ddd	d          j        d
k    sJ d S )Nr   r   r[   rU   r  r   r  r   r   r  rF   )rg   rh   ri   r   r   r    r   rW   rX   weekday	dayofyearr  )r'   b_dated_dates      r*   test_properties_dailyz*TestPeriodProperties.test_properties_daily  s   'XFFF 	A 	A4qa@@@F	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A {d""""~""""|q    zQ~""""1$$$$#r))))'XFFF 	S 	SsQA>>>LPRRRRRR	S 	S 	S 	S 	S 	S 	S 	S 	S 	S 	S 	S 	S 	S 	S St1!<<<{d""""~""""|q    zQ~""""1$$$$#r))))3T:::HBNNNNNNs#   AAAC33C7:C7c                 r   t          ddddd          }t          ddddd          }||f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    sJ |j        dk    sJ |j        dk    sJ t          ddd	dd          j        d
k    sJ d S )Nr   r[   rU   r   )r!   r    rW   rX   r   2hr  r   r   r  )	r   r    r   rW   rX   r  r  r   r  )r'   h_date1h_date2h_dates       r*   test_properties_hourlyz+TestPeriodProperties.test_properties_hourly  s   cA11EEEdQAAFFF( 	 	F;$&&&&>Q&&&&<1$$$$:????>Q&&&&#q((((;!####'2----Cd!CCCQUWWWWWW	 	rA   c                 @   t          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    sJ |j        dk    sJ |j        dk    sJ t          ddd	ddd          j        d
k    sJ d S )Nrq   r[   rU   r   )r!   r    rW   rX   r   rv  r  rF   r   r   r  )	r   r   rW   rX   r  r  r   rv  r  )r'   t_dates     r*   test_properties_minutelyz-TestPeriodProperties.test_properties_minutely0  s    UQAAaPPP~""""|q    zQ~""""1$$$${a}!!!!#r))))$aQQqIIIW     rA   c           	      x   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    sJ |j        dk    sJ |j        dk    sJ |j	        dk    sJ |j
        dk    sJ t          ddddddd          j
        d	k    sJ d S )
Nrq   r[   rU   r   )r!   r    rW   rX   r   rv  r~  r  r   r   r  )r   r    r   rW   rX   r  r  r   rv  r~  r  )r'   s_dates     r*   test_properties_secondlyz-TestPeriodProperties.test_properties_secondlyA  s)   T!A
 
 
 {d""""~""""|q    zQ~""""1$$$${a}!!!!}!!!!#r))))QAAaPQ       rA   N) r;   r<   r=   __doc__r$   r>   r?   rV  r\  r_  rP  r  staticmethodr  r   rQ   maxr  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r@   rA   r*   rR  rR    sW       ??[V%9%9%9::" " ;:"% % % # # #
 [B * * *6 	
 	
 \	
 [_	r/BY]TUDV.WXX[.z0JKK- - LK YX- [_	r/BY]TUDV.WXX[.z0JKKG G LK YXGM M M-  -  - ^" " "     # # #
	1 	1 	1+ + + 
O 
O 
O9 9 9"O O O4  $
 
 
"
 
 
 
 
rA   rR  c                       e Zd Zd ZdS )TestPeriodComparisonsc                     t          dd          }t          dd          }t          dd          }|||g}|||g}t          |          |k    sJ d S )Nr<  rL   z2000-02z2000-03)r   sorted)r'   janfebmarperiodscorrectPeriodss         r*   test_sort_periodsz'TestPeriodComparisons.test_sort_periodsZ  sb    Y$$Y$$Y$$S/sCg.000000rA   N)r;   r<   r=   r  r@   rA   r*   r  r  Y  s#        1 1 1 1 1rA   r  c                  &   d} t          d          }t          j        t          |           5  d|_        d d d            n# 1 swxY w Y   |j        }t          j        t          |           5  d|z  |_        d d d            d S # 1 swxY w Y   d S )Nznot writable2014Q1r      r   )r   r$   r%   AttributeErrorrc   r!   )r)   r{   r!   s      r*   test_period_immutabler  c  s   
C


C	~S	1	1	1                 8D	~S	1	1	1  t8                 s#   AAA.BB
B
c                  Z    t          dd          } | j        dk    sJ | j        dk    sJ d S )Nz
0001-01-07rF   rU   r  )r   r    rX   )per1s    r*   test_small_year_parsingr  p  s3    ,$$D9>>>>8q======rA   c                     g d} t          dd          }| D ]$}t          |                    |                     %| D ]/}t          d|          }t          |           |j        dk    sJ 0t	          j        t          t                    5  t          dd          }d d d            n# 1 swxY w Y   t          |           t          dd          }t          |           d S )	N)rN   rL   rO   rF   r   rQ   r   r   rF   r   rX  r   r   r   )r   rF  r   r    rg   rh   ri   r   )r  r  r!   s      r*   test_negone_ordinalsr  v  s6   111EBS)))F " "V]]4  !!!! # #...V{d"""""		#M	B	B	B . .---. . . . . . . . . . . . . . .LLLBS)))FLLLLLs   B--B14B1)&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   pandas.compatr   pandasr   r   r   r   r   pandas._testing_testingrg   r   r   rC   r  rR  r  r  r  r  r@   rA   r*   <module>r      sV           
 
			      $ $ $ $ $ $        @ ? ? ? ? ? 6 6 6 6 6 6 ; ; ; ; ; ;                         0!, !, !, !, !, !, !, !,He e e e e e e ePi$ i$ i$ i$ i$ i$ i$ i$X}
 }
 }
 }
 }
 }
 }
 }
@
1 1 1 1 1 1 1 1
 
 
      rA   