
    bMh                     2   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          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)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       f/var/www/html/test/jupyter/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_raises0   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   r0   s     r)   $test_invalid_frequency_error_messagez>TestPeriodDisallowedFreqs.test_invalid_frequency_error_message9   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   r3   MEr-   r4   r0   s     r)   +test_invalid_frequency_period_error_messagezETestPeriodDisallowedFreqs.test_invalid_frequency_period_error_message>   s    :]:S111 	, 	,<d++++	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	,r6   N)__name__
__module____qualname__r#   markparametrizer   r   r   r   r   r*   r1   r5   r9        r)   r   r       s        [W!!<0Wq!!;/!W!333^D%W%a((*<=		
 ) ) )C C C2 2 2
, , , , ,r@   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_raisesE   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QrE   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_constructionP   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   rO   )MinrT   r-   z
2006-12-31)wrT   )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r@   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-   rE   z3/11/12z3/12/12b  rS   
   rU   )rf   rg   rh   bday_msgr   asfreq)r&   ri   rj   rl   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 )NrR   rT   rN   r   quarterr    rJ   r-   rS   z9/1/20052005Q12005q105Q105q11Q20051q20051Q051q054Q1984i  4q1984r   r   )r&   ri   rj   rl   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{{{{{{r@   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-01rK   r-   200701ra   rb   r    I  rZ   rT   
2007-01-012007-01-01 00:00:002007-01-01 00:00:00.000)r   r   r   r   np
datetime64r&   rm   ri   rj   rl   rk   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Rxxxxxxr@   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 )(NrJ   r-   rK   rL   rM   r   r   r   rE   rR   rT   r   r   r   rN   r   rS   rU   r   r   z
2005-03-013D3Bra   r   r   rZ   r   r   r   r   rY   r[   r   r\   r]   r^   r_   r`   )r   r   MonthEndYearEndrf   rg   rh   r   BusinessDayre   
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                 J   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   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   rD   g?rE   r-   zOrdinal must be an integerr   z?Only value or ordinal but not both should be given but not bothr   rT   )rb   valuer    z%If value is None, freq cannot be None)rV   z1^Given date string "-2000" not likely a datetime$z-2000rM   zday is out of range for month0z/Unknown datetime string format, unable to parsez	1/1/-2000)r#   r$   r%   r   r   rd   r   r
   r0   s     r)   test_invalid_argumentsz-TestPeriodConstruction.test_invalid_argumentsA  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   	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	!-]>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5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-   rZ   rT   )r   rV   r    r   rE   rM   2007r   r   )r&   rm   presultexps        r)   test_constructor_cornerz.TestPeriodConstruction.test_constructor_corner`  s    )$///4qt444@@@@d||s""""<c***$$$V#&&&}}}}}}r@   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   rE   z2007-01-01 07hz2007-01-01 07:10rP   z2007-01-01 07:10:15sz2007-01-01 07:10:15.123r]   z2007-01-01 07:10:15.123000r`   z2007-01-01 07:10:15.123400)r   r    r&   r   s     r)   test_constructor_infer_freqz2TestPeriodConstruction.test_constructor_infer_freql  s    <  v}}}}?##v}}}}%&&v())v}}}},--v~~~~ /00v~~~~/00v~~~~~~r@   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-   rM   z2Y-DECY-DECr   rT   )r   rb   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)<<<<<<<r@   rV   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-   rE   endhowr   )r   strrw   r&   rV   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$$$Cxxxxxxr@   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-   rE   r   r      )daysrT   )r   rw   r   
isinstancer   s         r)   test_period_cons_annualz.TestPeriodConstruction.test_period_cons_annual  s     E||V$'''  % 009"3E3E3EE5t$$$C!G||||!V$$$$$$$r@   rW   numr      c                     d| }d| }t          ||          }t          |d                              |          }||k    sJ t          |t                     sJ d S )Nz2011-02-zW-r-   rE   )r   r   r   )r&   r   rW   daystrr    r   rm   s          r)   test_period_cons_weeklyz.TestPeriodConstruction.test_period_cons_weekly  s{     "C!!CzzT***&s+++22488!!!!&&)))))))r@   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&   rz   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-01rK   r-   )r   _from_ordinalrb   r    r   r&   r   ress      r)   test_period_from_ordinalz/TestPeriodConstruction.test_period_from_ordinal  sV    93'''"1916:::Cxxxx#v&&&&&&&r@   r    rM   rK   rE   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    rz   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,,,czzzzzzr@   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-   rE   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Cxxxxxxr@   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-   rK   rS   rT   z;Frequency must be positive, because it represents span: -3Mr   z-3Mz:Frequency must be positive, because it represents span: 0M0M)	r   rb   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   rT   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   rb   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
.000000001rT   )z
.000000999  )z
.123456789i  )z
.999999999r   )z
.999999000r   )z.999999001123rT   )z.999999001123456rT   )z.999999001123456789rT   c                 P    t          ||z   |z             j        j        |k    sJ d S )N)r   
start_time
nanosecond)r&   rW   r   	sec_floatrm   s        r)   "test_period_constructor_nanosecondz9TestPeriodConstruction.test_period_constructor_nanosecondL  s2    & cDj9,--8CxOOOOOOr@      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_ordinala  s-     7T>555v~~~~~~r@   N) r:   r;   r<   rH   rn   rt   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?   r@   r)   rB   rB   D   s       	! 	! 	!?) ?) ?)B+ + +       $! ! !F  8F F FP% % %>
 
 
  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/  r@   rB   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   rf   round_trip_pickle)r&   r   new_ps      r)   test_round_tripz!TestPeriodMethods.test_round_tripj  s0    8$Q''zzzzzzr@   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   rK   r-   
2011-01-01rE   r   r   z2011-02)hashr   rs   s    r)   	test_hashzTestPeriodMethods.test_hasho  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Ur@   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   rK   r-   Sr   r  z
2011-02-01rT   rv   Er   z
2011-04-01)r   rw   r   r   )r&   r   rm   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2r@   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 )NrO   rM   r-   r  r   )r   StarTBEGInrE   r   r  )er   FINIsH)	rM   rN   rK   Wr   rE   r   rp   r   c                     | j         dk    r| j        t          dd          z   S t          | | j         z   j        j        dz
            S )Nr   rT   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?@@@r@   1985r   r   i  rT   rv   3hrP   2mini  startr   5s)r   rw   	to_periodr  end_timer   r   r   )r&   r   start_tsaliasesaend_tsfrom_lstr#  fcoder   rm   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!!!!!!r@   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-06rT   r!  )rf   rg   rh   r   r   rw   r   r   r&   rz   r   rm   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.000001rT   )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    )Nr`   rv   c                 f    t          |                              |          j        }||k    sJ d S )Nr-   )r   rw   microsecond)r&   ry   rm   r    r   s        r)   test_to_timestamp_microsecondz/TestPeriodMethods.test_to_timestamp_microsecond  s:    " ((d(33?!!!!!!r@   zstr_ts,freq,str_res,str_freq))zJan-2000N2000-01rK   )
2000-12-15Nr<  rE   )2000-12-15 13:45:26.123456789rv   r=  rv   )r=  r`   2000-12-15 13:45:26.123456r`   )r>  Nr>  r`   )r=  r]   2000-12-15 13:45:26.123r]   )r?  Nr?  r]   )2000-12-15 13:45:26r   r@  r   )r@  rP   z2000-12-15 13:45rP   )r@  r   z2000-12-15 13:00r   )r<  rM   2000r   )r<  rN   2000Q4Q-DEC)r<  rK   z2000-12rK   )r<  r  z2000-12-11/2000-12-17r   )r<  rE   r<  rE   )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>>(>>>>>>>>>r@   c                 r    t          dd          }t          t                    t          |          v sJ d S )Nr   rK   r-   )r   rE  r   r   s     r)   test_repr_natzTestPeriodMethods.test_repr_nat	  s7    5s###CyyDGG######r@   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#######r@   N)r:   r;   r<   r  r  r  r#   r=   filterwarningsr1  r7  r>   r:  rI  rK  rN  r?   r@   r)   r  r  i  si         
V V V	3 	3 	3 [B =" =" ="~" " " [
	
 
	
 
	
  [V%7%7%788" " 98 " [&	
 4 [B ? ? 5 :?
$ $ $$ $ $ $ $r@   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>!!!!!r@   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   rC  r        rS   rK      )r   r   r   r   rV   r   s     r)    test_quarterly_negative_ordinalsz5TestPeriodProperties.test_quarterly_negative_ordinals(  s    2G,,,v~~~~yA~~~~!V$$$$$2G,,,v~~~~yA~~~~!V$$$$$2C(((v~~~~w"}}}}!V$$$$$$$r@   c                 ~    t          dd          }|j        t          j                    k    sJ |j        dk    sJ d S )NrO   rp   r-   rP   )r   r    r   Minuter   )r&   ri   s     r)   test_freq_strz"TestPeriodProperties.test_freq_str8  sH    F'''w'.******zU""""""r@   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MthrV   monthly)BUSBUSINESS
BUSINESSLYWEEKDAYbus)DAYDLYDAILYre   DlyDaily)HRHOURHRLYHOURLYhrr   HRly)minuteMINUTEMINUTELYminutely)secSECSECONDSECONDLYsecond)MILLISECONDMILLISECONDLYmillisecond)MICROSECONDMICROSECONDLYr9  )
NANOSECONDNANOSECONDLYr  )	rK   r   rE   r   rP   r   r]   r`   rv   r   z2016-03-01 09:00r-   rT   r   )r   itemsr#   r$   r%   r   r   )r&   casesr(   r   freqsr    r   r   s           r)   test_period_deprecated_freqz0TestPeriodProperties.test_period_deprecated_freq=  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 )Nr`   )r   rV   rW   r   ru  r}  r    )r   r   rV   rW   r   ru  r}  )boundoffsets     r)   _period_constructorz(TestPeriodProperties._period_constructor[  s?    +	<<&(
 
 
 	
r@   zbound, offsetr   rT   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   )rQ  r  r#   r$   r	   getattr)r&   r  r  r  periods        r)   $test_outer_bounds_start_and_end_timez9TestPeriodProperties.test_outer_bounds_start_and_end_timeg  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-   rT   )unit)rQ  r  rw   roundr  r   floor)r&   r  r  r  r  rm   s         r)   $test_inner_bounds_start_and_end_timez9TestPeriodProperties.test_inner_bounds_start_and_end_timeo  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Fr@   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)rM   rN   rK   rE   r   rP   r   r   rT   2012r-   r   r   r   r  i  r      )r   r   r  rf   rg   rh   r   )r&   freq_lstxpfr   s        r)   test_start_timez$TestPeriodProperties.test_start_timey  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  rM   r-   c                  ~    t          t          t          |                                d          j        dz
            S Nrv   rT   r   r   as_unitr"  argss    r)   r#  z/TestPeriodProperties.test_end_time.<locals>._ex  2    Yx77??EELqPQQQr@     rT   rN   r   rX  rK   r   rE   r   r   r   rS   r  15D   r   r   )r   r*  rf   rg   rh   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   r3  r   r4  rT   r5  )rf   rg   rh   r   r   r*  r   r   r6  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  r@   z2013-1-1zW-SATr  rT      )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r@   c                 B    t          dd          }|j        dk    sJ d S )NrM   rZ   )r    r   r   )r&   a_dates     r)   test_properties_annuallyz-TestPeriodProperties.test_properties_annually  s-    St,,,{d""""""r@   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 )NrC  rZ   rT   )r    r   r   zQ-JANzQ-JUNrS   )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 	1r@   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 )NrK   rZ   rT   )r    r   rV   rZ  rS   rX  r  r      r[   r   r   )r   r	  r   r   rV   )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*****	+ 	+r@   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  rZ   rT   r  r    r   rV   rW   4      r   r      )r   r   r   rV   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Nr@   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  rZ   rT   r  r  r  r  r   r   r  r   WK)
r   r   r   rV   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   rZ   rT   r  r   r  r   r   r  rE   )rf   rg   rh   r   r   r   r   rV   rW   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   rZ   rT   r   )r    r   rV   rW   r   2hr  r   r   r  )	r   r   r   rV   rW   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	 	r@   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 )Nrp   rZ   rT   r   )r    r   rV   rW   r   ru  r  rE   r   r   r  )	r   r   rV   rW   r  r  r   ru  r  )r&   t_dates     r)   test_properties_minutelyz-TestPeriodProperties.test_properties_minutely,  s    UQAAaPPP~""""|q    zQ~""""1$$$${a}!!!!#r))))$aQQqIIIW     r@   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 )
Nrp   rZ   rT   r   )r    r   rV   rW   r   ru  r}  r  r   r   r  )r   r   r   rV   rW   r  r  r   ru  r}  r  )r&   s_dates     r)   test_properties_secondlyz-TestPeriodProperties.test_properties_secondly=  s)   T!A
 
 
 {d""""~""""|q    zQ~""""1$$$${a}!!!!}!!!!#r))))QAAaPQ       r@   N) r:   r;   r<   __doc__r#   r=   r>   rU  r[  r^  rO  r  staticmethodr  r   rP   maxr  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r?   r@   r)   rQ  rQ    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  $
 
 
"
 
 
 
 
r@   rQ  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;  rK   z2000-02z2000-03)r   sorted)r&   janfebmarperiodscorrectPeriodss         r)   test_sort_periodsz'TestPeriodComparisons.test_sort_periodsV  sb    Y$$Y$$Y$$S/sCg.000000r@   N)r:   r;   r<   r  r?   r@   r)   r  r  U  s#        1 1 1 1 1r@   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$   AttributeErrorrb   r    )r(   rz   r    s      r)   test_period_immutabler  _  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-07rE   rT   r  )r   r   rW   )per1s    r)   test_small_year_parsingr  l  s3    ,$$D9>>>>8q======r@   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)rM   rK   rN   rE   r   rP   r   r   rE   r   rW  r   r   r  )r   rE  r   r   rf   rg   rh   r   )r  r  r    s      r)   test_negone_ordinalsr  r  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   pandasr   r   r   r   r   pandas._testing_testingrf   r   r   rB   r  rQ  r  r  r  r  r?   r@   r)   <module>r     sD           
 
			      $ $ $ $ $ $        @ ? ? ? ? ? 6 6 6 6 6 6 ; ; ; ; ; ;                   0!, !, !, !, !, !, !, !,Hb b b b b b b bJi$ i$ i$ i$ i$ i$ i$ i$X}
 }
 }
 }
 }
 }
 }
 }
@
1 1 1 1 1 1 1 1
 
 
      r@   