
    Pi¥                     F   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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 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	to_offset)DAYSMONTHS)DateParseError)INVALID_FREQ_ERR_MSG)PY314)OutOfBoundsDatetimePandas4Warning)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       z/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/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_raises7   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-1MONr0   r&   r'   r(   r   r3   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Invalid frequency: MEr    r6   MEr0   r7   r3   s     r,   +test_invalid_frequency_period_error_messagezETestPeriodDisallowedFreqs.test_invalid_frequency_period_error_messageE   s    %]:S111 	, 	,<d++++	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	,r9   N)__name__
__module____qualname__r&   markparametrizer   r   r   r   r   r-   r4   r8   r<        r,   r   r   '   s        [W!!<0Wq!!;/!W!333^D%W%a((*<=		
 ) ) )C C C2 2 2
, , , , ,rC   r   c                      e Zd Zd Zd Zd Zd Zej        	                    dg d          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 ej        !                    d'          ej        	                    d(g 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    Dr0   )r   to_numpyr&   r'   r(   r   )r)   tdr+   s      r,   test_from_td64nat_raisesz/TestPeriodConstruction.test_from_td64nat_raisesL   s   \(##B]:S111 	 	2JJJ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ]:S111 	! 	!2C    	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	!s#   AAA4BBBc                 L   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 d}t          j        t          |          5  t          dddd          }d d d            n# 1 swxY w Y   ||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Mr0   zJan 20052005YQrH   1982minz<'MIN' is deprecated and will be removed in a future version.r    MIN        r"   monthdayr#   z3/1/2005z:'d' is deprecated and will be removed in a future version.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_warningr   r&   r'   r(   )r)   i1i2i4i3r+   expecteds          r,   test_constructionz(TestPeriodConstruction.test_constructionW   sI   JS)))JRxxxx F%%%F^^RxxxxF%%%RxxxxZS!!!HLNN---Rxxxx ZS!!!HLNN---Z&&RxxxxRxxxxF'''L'cBBB 	, 	,U+++B	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	,RxxxxQAC888JS)))RxxxxJ'cBBB 	= 	=T<<<B	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	=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((((	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	)sH   E!!E%(E%=GG!$G!5KKK:LL L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    rR   )MinrW   r0   z
2006-12-31)wrW   )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nsr0   )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rC   r#   )r`   rc   rx   c                 @   t          t           j        j        |          }t          ||          }|j        |j        k    sJ |j        |j        k    sJ |j        |j        k    sJ |j        |j        k    sJ |j        |j        k    sJ |j	        |j	        k    sJ d S )Nunitr0   )
r   rS   valuer   r"   rY   rZ   hourminutesecond)r)   r#   r{   r|   s       r,   $test_construction_from_min_timestampz;TestPeriodConstruction.test_construction_from_min_timestamp   s     y}*666Rd### x27""""yBH$$$$w"&    x27""""zRY&&&&zRY&&&&&&rC   c                 &   t          j        t          dd          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 )Nz'b' is deprecatedFr!   raise_on_extra_warnings3/10/12Br0   rH   z3/11/12z3/12/12b  rV   
   rX   )ri   rj   r   r   asfreq)r)   rk   rl   rn   s       r,   test_construction_bdayz-TestPeriodConstruction.test_construction_bday   sw   '"5u
 
 
 	 	 	,,,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 )NrU   rW   rQ   r"   quarterr#   rM   r0   rV   z9/1/20052005Q12005q105Q105q11Q20051q20051Q051q054Q1984i  4q1984r   r"   )r)   rk   rl   rn   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{{{{{{rC   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-01rN   r0   200701rd   re   r#   I  r]   rW   
2007-01-012007-01-01 00:00:002007-01-01 00:00:00.000)r   r"   r   r   np
datetime64r)   ro   rk   rl   rn   rm   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RxxxxxxrC   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 )(NrM   r0   rN   rO   rP   r    r   r   rH   rU   rW   r   r   r   rQ   r   rV   rX   r   r   z
2005-03-013D3Brd   r   r   r]   r   r   r   r   r\   r^   r   r_   r`   ra   rb   rc   )r   r   MonthEndYearEndri   rj   FutureWarningbday_msgBusinessDayrh   
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    rG   g?rH   r0   zOrdinal must be an integerr   z?Only value or ordinal but not both should be given but not bothr   rW   )re   r   r#   z%If value is None, freq cannot be None)rY   z1^Given date string "-2000" not likely a datetime$z-2000rP   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   rg   r   r   r
   r3   s     r,   test_invalid_argumentsz-TestPeriodConstruction.test_invalid_arguments]  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   2Mr0   r]   rW   )r"   rY   r#   r   rH   rP   2007r   r   )r)   ro   presultexps        r,   test_constructor_cornerz.TestPeriodConstruction.test_constructor_corner  s    )$///4qt444@@@@d||s""""<c***$$$V#&&&}}}}}}rC   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   rH   z2007-01-01 07hz2007-01-01 07:10rS   z2007-01-01 07:10:15sz2007-01-01 07:10:15.123r`   z2007-01-01 07:10:15.123000rc   z2007-01-01 07:10:15.123400)r   r#   r)   r   s     r,   test_constructor_infer_freqz2TestPeriodConstruction.test_constructor_infer_freq  s    <  v}}}}?##v}}}}%&&v())v}}}},--v~~~~ /00v~~~~/00v~~~~~~rC   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2Yr0   rP   z2Y-DECY-DECr   rW   )r   re   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)<<<<<<<rC   rY   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-1989Q3r0   rH   endhowr   )r   strry   r)   rY   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$$$CxxxxxxrC   c                     d| }t          d|          }|                    dd          t          d          z   }t          ||          }||d	z   k    sJ t          |t                     sJ d S )
NzY-r   r0   rH   r   r      daysrW   )r   ry   r   
isinstancer   s         r,   test_period_cons_annualz.TestPeriodConstruction.test_period_cons_annual  s     E||V$'''  % 009"3E3E3EE5t$$$C!G||||!V$$$$$$$rC   rZ   numr      c                     d| }d| }t          ||          }t          |d                              |          }||k    sJ t          |t                     sJ d S )Nz2011-02-zW-r0   rH   )r   r   r   )r)   r   rZ   daystrr#   r   ro   s          r,   test_period_cons_weeklyz.TestPeriodConstruction.test_period_cons_weekly  s{     "C!!CzzT***&s+++22488!!!!&&)))))))rC   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-01rN   r0   )r   _from_ordinalre   r#   r   r)   r   ress      r,   test_period_from_ordinalz/TestPeriodConstruction.test_period_from_ordinal  sV    93'''"1916:::Cxxxx#v&&&&&&&rC   rP   rN   rH   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   r0   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,,,czzzzzzrC   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   r0   rH   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CxxxxxxrC   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   3Mr0   rN   rV   rW   z;Frequency must be positive, because it represents span: -3Mr    z-3Mz:Frequency must be positive, because it represents span: 0M0M)	r   re   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   r0   1h1Dr   rW   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   re   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 r   )z00:00:00z00:00:01z23:59:59z12:00:59zsec_float, expected))z
.000000001rW   )z
.000000999  )z
.123456789i  )z
.999999999r  )z
.999999000r   )z.999999001123rW   )z.999999001123456rW   )z.999999001123456789rW   c                 P    t          ||z   |z             j        j        |k    sJ d S )N)r   
start_time
nanosecond)r)   rZ   r   	sec_floatro   s        r,   "test_period_constructor_nanosecondz9TestPeriodConstruction.test_period_constructor_nanosecondk  s2    & cDj9,--8CxOOOOOOrC      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_ordinal  s-     7T>555v~~~~~~rC   8ignore:Period with BDay freq is deprecated:FutureWarningzfreq,freq_depr))2W2w)z2W-FRIz2w-fri)2D2d)2B2bc                     d|dd           d}t          j        t          |d          5  t          d|          }d d d            n# 1 swxY w Y   t          d|          }||k    sJ d S )N'rW   z8' is deprecated and will be removed in a future version.Fr   2016-03-01 09:00r0   )ri   rj   r   r   )r)   r#   	freq_deprr+   r   ro   s         r,   %test_period_deprecated_lowercase_freqz<TestPeriodConstruction.test_period_deprecated_lowercase_freq  s     X	!""WWW 	 '#u
 
 
 	@ 	@ .Y???F	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@
 ,4888!!!!!!s   A		AAN)#r=   r>   r?   rK   rp   rv   r   r&   r@   rA   r   r   r   r   r   r   r   r   r   r	   r   r   r   ranger   r   r   r   r   r   r
  r  r  filterwarningsr   rB   rC   r,   rE   rE   K   sa       	! 	! 	!A) A) A)F+ + +      [V%7%7%788' ' 98'   (! ! !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/ [B  [HHH " "	  " " "rC   rE   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   ri   round_trip_pickle)r)   	temp_filer   new_ps       r,   test_round_tripz!TestPeriodMethods.test_round_trip  s2    8$Q	22zzzzzzrC   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   rN   r0   
2011-01-01rH   r   r   z2011-02)hashr   ru   s    r,   	test_hashzTestPeriodMethods.test_hash  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UrC   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   rN   r0   Sr   r,  z
2011-02-01rW   rc   r   Er   z
2011-04-01)r   ry   r   r   )r)   r   ro   s      r,   test_to_timestamp_multz(TestPeriodMethods.test_to_timestamp_mult  s    93'''~~#~&&)L*A*AAAAA\**Yqt-D-D-DD~~#~&&(222294(((~~#~&&)L*A*AAAAA\**Yqt-D-D-DD~~#~&&(222222rC   r  c                    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 )NrR   rP   r0   r0  r   )r   StarTBEGInrH   r   r1  )er   FINIsH)	rP   rQ   rN   Wr   rH   r   rr   r   c                     | j         dk    r)| j        t          d          z   t          d          z
  S t          | | j         z   j        j        dz
  d          S )Nr   rW   r   )microsecondsrc   r   )r#   r  r   r   _value)r   s    r,   _exz0TestPeriodMethods.test_to_timestamp.<locals>._ex  sZ    v}}|iQ&7&7&77)QR:S:S:SSSa!&j4;a?dKKKKrC   1985r   r   i  rW   rc   r   3hrS   2mini  startr   5s)r   ry   	to_periodr  end_timer   r   r   )r)   r   start_tsaliasesaend_tsfrom_lstr<  fcoder   ro   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	L 	L 	L
  	( 	(EvE***A^^%%//66FQ;;;;<1>>c>#:#::::::Q''''' 6$$$//T1a((9QT+B+B+BB!!!!%00!!!!511T1a((9QT+B+B+BB!!!!E22!!!!E**T1a((9QT+B+B+BB!!!!D!Q''11!!!!733!!!!11!!!!'22!!!!'22!!!!!!rC   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d	          z
  }||k    sJ d S )
Nr    
1990-01-05r   r1  r   
1990-01-06rW   rc   r   )ri   rj   r   r   r   ry   r   r   r)   r|   r   ro   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 \**Yqt-D-D-DD!!!!!!s   (AAAzts, expected)	)z1970-01-01 00:00:00r   )z1970-01-01 00:00:00.000001rW   )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.999999?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#   )Nrc   rx   c                 f    t          |                              |          j        }||k    sJ d S )Nr0   )r   ry   microsecond)r)   r{   ro   r#   r   s        r,   test_to_timestamp_microsecondz/TestPeriodMethods.test_to_timestamp_microsecond  s:    " ((d(33?!!!!!!rC   zstr_ts,freq,str_res,str_freq))zJan-2000N2000-01rN   )
2000-12-15NrU  rH   )2000-12-15 13:45:26.123456789rx   rV  rx   )rV  rc   2000-12-15 13:45:26.123456rc   )rW  NrW  rc   )rV  r`   2000-12-15 13:45:26.123r`   )rX  NrX  r`   )2000-12-15 13:45:26r   rY  r   )rY  rS   z2000-12-15 13:45rS   )rY  r   z2000-12-15 13:00r   )rU  rP   2000r   )rU  rQ   2000Q4Q-DEC)rU  rN   z2000-12rN   )rU  r8  z2000-12-11/2000-12-17r   )rU  rH   rU  rH   )rU  r   rU  r   c                     t          ||          }t          |          |k    sJ t          |          d| d| dk    sJ d S )Nr0   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>>(>>>>>>>>>rC   c                 r    t          dd          }t          t                    t          |          v sJ d S )Nr   rN   r0   )r   r^  r   r   s     r,   test_repr_natzTestPeriodMethods.test_repr_nat=  s7    5s###CyyDGG######rC   c                     t          dd          }|                    d          }|dk    sJ t          |t                    sJ d S )Nz2000-1-1 12:34:12r   r0   z%Y-%m-%d %H:%M:%Sz2000-01-01 12:34:12)r   strftimer   r   r   s      r,   test_strftimezTestPeriodMethods.test_strftimeA  sU    &S111jj,--+++++#s#######rC   N)r=   r>   r?   r*  r.  r2  r&   r@   r"  rJ  rO  rA   rS  rb  rd  rg  rB   rC   r,   r$  r$    si         
V V V	3 	3 	3 [B =" =" ="~" " " [
	
 
	
 
	
  [V%7%7%788" " 98 " [&	
 4 [B ? ? 5 :?
$ $ $$ $ $ $ $rC   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:00r0   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_yearL  s     (t444~~!.$/////(t444>!!!(t444~~(t444>!!!!!rC   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   r\  r        rV   rN      )r   r"   r   r   rY   r   s     r,    test_quarterly_negative_ordinalsz5TestPeriodProperties.test_quarterly_negative_ordinals\  s    2G,,,v~~~~yA~~~~!V$$$$$2G,,,v~~~~yA~~~~!V$$$$$2C(((v~~~~w"}}}}!V$$$$$$$rC   c                 ~    t          dd          }|j        t          j                    k    sJ |j        dk    sJ d S )NrR   rr   r0   rS   )r   r#   r   Minuter   )r)   rk   s     r,   test_freq_strz"TestPeriodProperties.test_freq_strl  sH    F'''w'.******zU""""""rC   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MthrY   monthly)BUSBUSINESS
BUSINESSLYWEEKDAYbus)DAYDLYDAILYrh   DlyDaily)HRHOURHRLYHOURLYhrr  HRly)r   MINUTEMINUTELYminutely)secSECSECONDSECONDLYr   )MILLISECONDMILLISECONDLYmillisecond)MICROSECONDMICROSECONDLYrR  )
NANOSECONDNANOSECONDLYr  )	rN   r   rH   r   rS   r   r`   rc   rx   r    r  r0   rW   r   )r   itemsr&   r'   r(   r   r   )r)   casesr+   r   freqsr#   r   r   s           r,   test_period_deprecated_freqz0TestPeriodProperties.test_period_deprecated_freqq  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 )Nrc   )r"   rY   rZ   r   r   r   r#   )r   r"   rY   rZ   r   r   r   )boundoffsets     r,   _period_constructorz(TestPeriodProperties._period_constructor  s?    +	<<&(
 
 
 	
rC   zbound, offsetr   rW   period_propertyr  rC  c                 h   t                               ||          }t          ||           t          j        |j        t          d                    }|dk    r|dk    r
t          }d}n	t          }d}t          j
        ||          5  t          ||           d d d            d S # 1 swxY w Y   d S )Nr`   r0   rC  rW   zvalue too largezOut of bounds microsecondr    )ri  r  getattrr   r   r   r   OverflowErrorr   r&   r'   )r)   r  r  r  periodr|   errr+   s           r,   $test_outer_bounds_start_and_end_timez9TestPeriodProperties.test_outer_bounds_start_and_end_time  s     &99%HH((("5;Yt__EEEj((Vq[[C#CC%C-C ]3c*** 	* 	*C)))	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	*s   	B''B+.B+c                    t                               ||           }|                                                    d          }t	          ||                              d          |k    sJ ||t          dd          z  z
                      d          }t	          ||                              d          |k    sJ d S )Nr   r0   rW   r   )ri  r  ry   roundr  r   floor)r)   r  r  r  r  ro   s         r,   $test_inner_bounds_start_and_end_timez9TestPeriodProperties.test_inner_bounds_start_and_end_time  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FrC   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)rP   rQ   rN   rH   r   rS   r   r   rW   2012r0   r    r   r   r8  i  r      )r   r   r  ri   rj   r   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   t          dd          }t          ddddddd	          }|j        |k    sJ t          dd
          }t          ddddddd	          }|j        |k    sJ t          dd          }t          ddddddd	          }|j        |k    sJ t          dd          }t          ddddddd	          }|j        |k    sJ t          dd          }t          ddddddd	          }|j        |k    sJ t          j        t
          t                    5  t          dd          }t          ddddddd	          }|j        |k    sJ 	 d d d            n# 1 swxY w Y   t          dd          }t          ddddddd	          }|j        |k    sJ t          dd          }t          ddddddd	          }|j        |k    sJ t          dd          }t          ddddddd	          }|j        |k    sJ t          dd          }t          ddddddd	          }|j        |k    sJ d S )Nr  rP   r0   r   r         ;   rP  rQ   rV   rN   rW   rH   r   r   r    r   r   r8  15D   r   r  )r   r   rC  ri   rj   r   r   r)   r   r   s      r,   test_end_timez"TestPeriodProperties.test_end_time  s   6$$$b"b"b&99zS    6$$$aRR88zS    6$$$aRR88zS    6$$$aBB77zS    6$$$aAr2v66zS    'XFFF 	% 	%vC(((AD!QBF;;C:$$$$$	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	%
 6$$$aBB77zS     6&&&aRR88zS    6'''aAr2v66zS    6'''aAr2v66zS      s    4E!!E%(E%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d          z
  }||k    sJ d S )Nr    rL  r   rM  rW   rc   r   )ri   rj   r   r   r   rC  r   r   rN  s       r,   test_end_time_business_fridayz2TestPeriodProperties.test_end_time_business_friday  s    'XFFF 	" 	"s++C\F	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" \**Yqt-D-D-DD!!!!!!s   AA	A	c           	      j    t          dd          }t          ddddddd          }|j        |k    sJ d S )	Nz2013-1-1zW-SATi  rW      r  r  rP  )r   r   rC  r  s      r,   test_anchor_week_end_timez.TestPeriodProperties.test_anchor_week_end_time  sC    :w''aBB77zS      rC   c                 B    t          dd          }|j        dk    sJ d S )NrP   r]   )r#   r"   r   )r)   a_dates     r,   test_properties_annuallyz-TestPeriodProperties.test_properties_annually  s-    St,,,{d""""""rC   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 )Nr\  r]   rW   )r#   r"   r   zQ-JANzQ-JUNrV   )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 	1rC   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 )NrN   r]   rW   )r#   r"   rY   rr  rV   rp     r      r^   r   r   )r   r!  r"   r   rY   )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*****	+ 	+rC   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 )Nr8  r]   rW   r  r#   r"   rY   rZ   4   r  r   r      )r   r"   r   rY   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NrC   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 )Nr8  r]   rW   r  r  r  r  r   r   r  r    WK)
r   r"   r   rY   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]   rW   r  r   r  r   r   r  rH   )ri   rj   r   r   r   r"   r   rY   rZ   weekday	dayofyearr  )r)   b_dated_dates      r,   test_properties_dailyz*TestPeriodProperties.test_properties_daily9  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]   rW   r   )r#   r"   rY   rZ   r   2hr  r   r   r  )	r   r"   r   rY   rZ   r  r  r   r  )r)   h_date1h_date2h_dates       r,   test_properties_hourlyz+TestPeriodProperties.test_properties_hourlyR  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	 	rC   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 )Nrr   r]   rW   r   )r#   r"   rY   rZ   r   r   r  rH   r   r   r  )	r   r   rY   rZ   r  r  r   r   r  )r)   t_dates     r,   test_properties_minutelyz-TestPeriodProperties.test_properties_minutelyd  s    UQAAaPPP~""""|q    zQ~""""1$$$${a}!!!!#r))))$aQQqIIIW     rC   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 )
Nrr   r]   rW   r   )r#   r"   rY   rZ   r   r   r   r  r   r   r  )r   r"   r   rY   rZ   r  r  r   r   r   r  )r)   s_dates     r,   test_properties_secondlyz-TestPeriodProperties.test_properties_secondlyt  s)   T!A
 
 
 {d""""~""""|q    zQ~""""1$$$${a}!!!!}!!!!#r))))QAAaPQ       rC   N) r=   r>   r?   __doc__r&   r@   rA   rm  rs  rv  r"  r  staticmethodr  r   rS   maxr  r  r  r  r  r  r  r  r  r  r  r  r  r  r  rB   rC   r,   ri  ri  I  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*! *! *!X" " "! ! !
# # #
1 1 1+ + + 	O 	O 	O9 9 9"O O O2  $
 
 
 
 
 
 
 
rC   ri  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 )NrT  rN   z2000-02z2000-03)r   sorted)r)   janfebmarperiodscorrectPeriodss         r,   test_sort_periodsz'TestPeriodComparisons.test_sort_periods  sb    Y$$Y$$Y$$S/sCg.000000rC   N)r=   r>   r?   r  rB   rC   r,   r  r    s#        1 1 1 1 1rC   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'   AttributeErrorre   r#   )r+   r|   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-07rH   rW   r  )r   r"   rZ   )per1s    r,   test_small_year_parsingr    s3    ,$$D9>>>>8q======rC   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)rP   rN   rQ   rH   r   rS   r   r   rH   r   ro  r    r   r8  )r   r^  r   r"   ri   rj   r   r   )r  r  r#   s      r,   test_negone_ordinalsr    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   r   pandas._libs.tslibs.ccalendarr   r	   pandas._libs.tslibs.parsingr
   pandas._libs.tslibs.periodr   pandas.compatr   pandas.errorsr   r   pandasr   r   r   r   r   pandas._testing_testingri   r   r   rE   r$  ri  r  r  r  r  rB   rC   r,   <module>r     s           
 
			                    7 6 6 6 6 6 ; ; ; ; ; ;             
                   0!, !, !, !, !, !, !, !,HO	" O	" O	" O	" O	" O	" O	" O	"di$ i$ i$ i$ i$ i$ i$ i$X
 
 
 
 
 
 
 
D
1 1 1 1 1 1 1 1
 
 
      rC   