
    Eg'j                         d dl Zd dlZd dlmZ d dlmZ d dlmZm	Z	m
Z
mZmZmZmZmZ d dlmZ d dlmZ  G d d          Z G d d	          Z G d
 d          Z G d d          Z G d d          ZdS )    N)IncompatibleFrequency)PeriodDtype)IndexNaTPeriodPeriodIndexSeries
date_rangeoffsetsperiod_range)PeriodArrayc                       e Zd Zej                            dg d          d             Zej                            dg d          d             Zej                            dg d          d	             Zd
S )TestPeriodIndexDisallowedFreqszfreq,freq_depr))2M2ME)2Q-MARz2QE-MAR)2Y-FEBz2YE-FEB)r   2me)r   z2qe-MAR)r   z2yE-febc                 P   d|dd           d|dd           d}t          j        t          |          5  t          ddg|           d d d            n# 1 swxY w Y   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 '   z' instead of ''matchz
2020-01-01z
2020-01-02freqstartendr   )pytestraises
ValueErrorr   r   )selfr   	freq_deprmsgs       b/var/www/sysmax/venv/lib/python3.11/site-packages/pandas/tests/indexes/period/test_constructors.py1test_period_index_offsets_frequency_error_messagezPTestPeriodIndexDisallowedFreqs.test_period_index_offsets_frequency_error_message   sd    RabbQQ122QQQ]:S111 	F 	F|49EEEE	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F ]:S111 	O 	O|INNNN	O 	O 	O 	O 	O 	O 	O 	O 	O 	O 	O 	O 	O 	O 	O 	O 	O 	Os#   AAA;BB"Br#   )2SME2sme2CBME2BYE2Byec                 8   d|d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g|           d d d            d S # 1 swxY w Y   d S )NInvalid frequency: r   r   z2020-01z2020-05r   )r   r    r!   r   r   )r"   r#   r$   s      r%   (test_period_index_frequency_invalid_freqzGTestPeriodIndexDisallowedFreqs.test_period_index_frequency_invalid_freq,   s=    4IabbM33]:S111 	? 	?II>>>>	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	?]:S111 	@ 	@I.Y????	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@s#   AAA.BBBr   )z2BQE-SEPz2BYE-MAR2BMEc                     d|dd           }t          dd|          }t          j        t          |          5  |                                 d d d            d S # 1 swxY w Y   d S )Nr-   r   z01-Jan-2012   periodsr   r   )r
   r   r    r!   	to_period)r"   r   r$   rngs       r%   2test_period_index_from_datetime_index_invalid_freqzQTestPeriodIndexDisallowedFreqs.test_period_index_from_datetime_index_invalid_freq6   s     /DH..===]:S111 	 	MMOOO	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   AA!$A!N)	__name__
__module____qualname__r   markparametrizer&   r.   r6        r%   r   r      s        [	
 	
 	

 
O O
 
O [[*S*S*STT@ @ UT@ [V%E%E%EFF  GF  r=   r   c                   n   e Zd Zd Zd Zd Zd Zej        	                    de
ej        eej        g          d             Zd Zd Zd	 Zd
 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ej        	                    dddg ej        ddg          g          d             Z d Z!d Z"ej        	                    dg d          ej        	                    d g d!          d"                         Z#ej        	                    d g d!          d#             Z$d$ Z%d% Z&d& Z'd' Z(ej        	                    d(g d)          ej        )                    d*          ej        )                    d+          d,                                     Z*d- Z+d.S )/TestPeriodIndexc                    t          dd           t          dd           d}t          j        t          |          5  t	          g dd          }d d d            n# 1 swxY w Y   t          j        t          |          5  t	          t          j        g d          d          }d d d            n# 1 swxY w Y   t          j        ||           t	          j        g dd          }t          j        ||           t	          j        t          j        g d          d          }t          j        ||           d S )	NiYordinalr   r   2The 'ordinal' keyword in PeriodIndex is deprecatedr   )r   r   r   )	r   tmassert_produces_warningFutureWarningr   nparrayassert_index_equalfrom_ordinals)r"   r$   idx1idx2alt1alt2s         r%   test_from_ordinalsz"TestPeriodIndex.test_from_ordinalsA   s   u3''''qs####B'SAAA 	= 	=zzz<<<D	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	='SAAA 	G 	Grx


';';#FFFD	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G
dD)))(#>>>
dD)))(***)=)=CHHH
dD)))))s$    A  A$'A$&B88B<?B<c                 ^   t          dd          }d}d}d}t          j        t          |          5  t	          j        t          |          5  t          |g|j        g|j	                   d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   d}t          j        t          |          5  t	          j        t          |          5  t          |g|j
        g|j	        	           d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   d
}t          j        t          |          5  t	          j        t          |          5  t          |j        g|j
        g|j	                   d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )N
2016-01-01DrD   2Constructing PeriodIndex from fields is deprecatedz!Cannot pass both data and ordinalr   )datarC   r   z Cannot pass both data and fields)rV   yearr   z#Cannot pass both ordinal and fields)rC   rW   r   )r   r   r    r!   rF   rG   rH   r   rC   r   rW   )r"   per	depr_msg1	depr_msg2err_msg1err_msg2err_msg3s          r%   test_keyword_mismatchz%TestPeriodIndex.test_keyword_mismatchR   s~   \3''H	H	6]:X666 	N 	N+MKKK N N#CHMMMMN N N N N N N N N N N N N N N	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 6]:X666 	H 	H+MKKK H H#chZchGGGGH H H H H H H H H H H H H H H	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 9]:X666 	S 	S+MKKK S SS[M
RRRRS S S S S S S S S S S S S S S	S 	S 	S 	S 	S 	S 	S 	S 	S 	S 	S 	S 	S 	S 	S 	S 	S 	Ss   BA9-B9A=	=B A=	BBB8DC?3D?D	DD	DDD>F"$F
>F"
F	F"F	F""F&)F&c                    t          dd          t          t          dd          g}t          j        t	          |          t          |                     t          j        t	          t          j        |                    t          t          j        |                               t          j        t          t          dd          g}t          j        t	          |          t          |                     t          j        t	          t          j        |                    t          t          j        |                               t          dd          t          t          dd          g}t          j        t	          |          t	          |t                               t          j        t	          t          j        |                    t	          t          j        |          t                               d S )N2011-01Mr   2011-03rT   dtype)
r   r   rF   rK   r   r   rI   rJ   nanobject)r"   arrs     r%   "test_construction_base_constructorz2TestPeriodIndex.test_construction_base_constructorg   su   ic***C	1L1L1LM
eCjj+c*:*:;;;
eBHSMM22K4N4NOOOvsF937778
eCjj+c*:*:;;;
eBHSMM22K4N4NOOOic***C	1L1L1LM
eCjj%6*B*B*BCCC
eBHSMM22E"(3--v4V4V4VWWWWWr=   c                     t          d          }g d}t          ||          }t          ||          }t          j        ||           d S )NrT   )
2011-01-01z
2012-03-04z
2014-05-01rc   )r   r   r   rF   rK   )r"   rd   valuesresultexpecteds        r%   'test_base_constructor_with_period_dtypez7TestPeriodIndex.test_base_constructor_with_period_dtypev   sW    C  ;;;vU+++vU333
fh/////r=   values_constructorc                     t          dd          t          t          dd          g} ||          }t          |t                    }t	          |          t          u sJ t          j        |j        t          j	        |                     d S )Nr`   ra   r   rb   rc   )
r   r   r   rf   typerF   assert_numpy_array_equalrk   rI   rJ   )r"   ro   r3   rk   rl   s        r%   test_index_object_dtypez'TestPeriodIndex.test_index_object_dtype~   s     93'''93'''

 $#G,,vV,,,F||u$$$$
#FM28F3C3CDDDDDr=   c                    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   t          j        t          |          5  t	          |d	          }d d d            n# 1 swxY w Y   t          j        ||           d S )
N#Period with BDay freq is deprecatedr   z4/2/2012Br   PeriodDtype\[B\] is deprecated
   r   r3   r   r   r3   )rF   rG   rH   r   r   rK   )r"   msg1pmsg2rm   indexs         r%   test_constructor_use_start_freqz/TestPeriodIndex.test_constructor_use_start_freq   s   4'TBBB 	- 	-z,,,A	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	-0'TBBB 	L 	L#*bsKKKH	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 'TBBB 	6 	6 q"555E	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6
eX.....s3   <A A $BB
B)CCCc                    t          j        dd                              d          dd         }t          j        t          j        dd          d          dd         }d	}t	          j        t          |
          5  t          ||d          }d d d            n# 1 swxY w Y   t          ddd          }t	          j	        ||           t	          j        t          |
          5  t          ||d          }d d d            n# 1 swxY w Y   t	          j
        |j        |j                   t	          j        t          |
          5  t          ||          }d d d            n# 1 swxY w Y   t	          j	        ||           g d}ddg}d}t          j        t          |
          5  t	          j        t          |
          5  t          ||d           d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   t          j        t          |
          5  t	          j        t          |
          5  t          ||d           d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   g d}g d}t	          j        t          |
          5  t          ||d          }	d d d            n# 1 swxY w Y   t          ddd          }
t	          j	        |	|
           d S )Ni  i        r         rU   r   Q-DECrW   quarterr   1990Q32009Q2r   z2Q-DECrW   r   )  r   r   zMismatched Period array lengthsra   )rW   monthr   r   )r   r      2007-01r   r2   )rI   arangerepeattilerF   rG   rH   r   r   rK   rr   asi8r   r    r!   )r"   yearsquartersdepr_msgr~   rm   index2monthsr$   idxexps              r%   test_constructor_field_arraysz-TestPeriodIndex.test_constructor_field_arrays   sI    	$%%,,Q//"5729Q??B//"5G'XFFF 	L 	LUH7KKKE	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L(AAA
eX...'XFFF 	N 	N eXHMMMF	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N
#EJ<<<'XFFF 	> 	>UH===E	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	>
eX..."""Q/]:S111 	@ 	@+MJJJ @ @f3????@ @ @ @ @ @ @ @ @ @ @ @ @ @ @	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ ]:S111 	A 	A+MJJJ A Af4@@@@A A A A A A A A A A A A A A A	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A #""'XFFF 	B 	B5SAAAC	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B9ac:::
c3'''''s   >BB!$B!*D		DDE,,E03E01HG, H,G0	0H3G0	4HH
H)I;I$I;$I(	(I;+I(	,I;;I?I?)KKKc           	      2   t          t          dd          t          dd          d          }t          t          dd          t          dd          t          dd          t          dd          gd          }t          j        ||           d S )	Nr   nsrB   r   r   r   r   r   )r   r   r   rF   rK   r"   r   r   s      r%   test_constructor_nanoz%TestPeriodIndex.test_constructor_nano   s    ...qt,,,
 
 

 qt,,,qt,,,qt,,,qt,,,	 
 
 
 	c3'''''r=   c                 V   t          j        ddt           j                                      d          }t          j        t          j        g dt           j                  d          }d}t          j        t          |          5  t          ||	          }d d d            n# 1 swxY w Y   t          j
        |j        t          |                     t          j
        |j        t          |                     t          j        ||	          }t          j
        ||           d S )
Ni    rc   r   )r   r   r   r   (   rU   r   r   )rI   r   int64r   r   rJ   rF   rG   rH   r   rK   rW   r   r   from_fields)r"   r   r   r$   pindexalts         r%   %test_constructor_arrays_negative_yearz5TestPeriodIndex.test_constructor_arrays_negative_year   s6   	$BH555<<Q??728LLLAAA2FFB'SAAA 	? 	? eX>>>F	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	fk5<<888
fneHoo>>>%5(CCC
c6*****s   B%%B),B)c           
      P   d}d}t          j        t          |          5  t          j        t
          |          5  t          t          dd          t          t          d                    d           d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )	NrU   zQuarter must be 1 <= q <= 4r   r   i  r   r   r   )	r   r    r!   rF   rG   rH   r   rangelist)r"   r   r$   s      r%   !test_constructor_invalid_quartersz1TestPeriodIndex.test_constructor_invalid_quarters   s$   G+]:S111 	 	+MJJJ  tT**DqNN                 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s4   B;B7BB	B
B	BB"Bc                     d}t          j        t          |          5  t          ddd          }d d d            n# 1 swxY w Y   t          ddd          }t          j        ||           d S )Nz:Non-integer 'periods' in pd.date_range, pd.timedelta_ranger   r   g      %@ra   r2   rx   )rF   rG   rH   r   rK   )r"   r$   rl   r   s       r%   #test_period_range_fractional_periodz3TestPeriodIndex.test_period_range_fractional_period   s    J'SAAA 	E 	E!)TDDDF	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E9bs;;;
fc*****s   =AAc                     t          dd          }t          |d|j                  }t          |d          }t          j        ||           d S )Nz2002-01-01 00:0030minr   r   ry   rz   )r   r   r   rF   rK   )r"   r   r   rl   s       r%   "test_constructor_with_without_freqz2TestPeriodIndex.test_constructor_with_without_freq   sV    )888
CCCE1555
c6*****r=   c                    t          ddd          }t          j        t          |j                  |           t          j        t          t          |j                            |           d}t          j        t          |          5  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          t          dd	
                     d d d            n# 1 swxY w Y   t          t          |                    }t          j        ||           t          |          }t          j        ||           t          |d
          }t          j        ||           t          |t          j                    
          }t          j        ||           |j        dk    sJ t          |d
          }t          j        ||                    d                     |j        dk    sJ t          |t          j        d          
          }t          j        ||                    d                     |j        dk    sJ t          |d
          }|                    dd          }t          j        ||           d S )Nr   r   ra   r2   z)freq not specified and cannot be inferredr   z'Period' object is not iterable2007rA   r   )rV   MEr   r   r   rT   e)r   rF   rK   r   rk   r   r   r    r!   r   	TypeErrorr   iterr   MonthEndr   asfreq)r"   r   r$   rl   r   s        r%   test_constructor_fromarraylikez.TestPeriodIndex.test_constructor_fromarraylike   sg   9bs;;; 	k#*55s;;;
k$sz*:*:;;SAAA9]:S111 	" 	"!!!	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	"]:S111 	( 	(SX'''	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 0]9C000 	7 	7VF5556666	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 T#YY''
fc***S!!
fc***Ss+++
fc***Sw'7'9'9:::
fc***{d""""St,,,
fcjj&6&6777{e####Sw'7':':;;;
fcjj&6&6777{e####Ss+++jjc""
fc*****s6   B,,B03B0"D  DD( EEEc                 ,   t          j        dddt           j                  }|                    t          j        d                    }t          |d          }t          |                    d          d          }t          j        ||           d S )	Ni i d   rc   zM8[us]rT   r   zM8[ns])	rI   r   r   viewrd   r   astyperF   rK   )r"   valspirm   s       r%   test_constructor_datetime64arrz.TestPeriodIndex.test_constructor_datetime64arr!  s    yBHEEEyy(++,,C(((t{{8443???
b(+++++r=   box)Nseriesr~   c                     t          ddd          }||j        }n|dk    rt          |          }t          |d          }t          g dd          }t	          j        ||           d S )	N2017r   r   r2   r   rT   r   )z
2017-01-31z
2017-02-28z
2017-03-31z
2017-04-30)r
   _valuesr	   r   rF   rK   )r"   r   rV   rl   rm   s        r%   !test_constructor_datetime64arr_okz1TestPeriodIndex.test_constructor_datetime64arr_ok*  s     &!$777;<DDH__$<<DT,,,DDD3
 
 
 	fh/////r=   c                    t          ddgd          }t          ddgd          }t          j        ||           |j        dk    sJ t          ddgd	          }t          ddgd
          }t          j        ||           |j        d	k    sJ t          ddgd          }t          |d          }t          ddgd          }t          j        ||           |j        dk    sJ t          |d          }t          j        ||           |j        dk    sJ d}t	          j        t          |          5  t          dgdd           d d d            d S # 1 swxY w Y   d S )Nz2013-01z2013-03z	period[M]rc   ra   r   z
2013-01-05z
2013-03-05z
period[3D]3Dz
2013-01-01z
2013-01-02rT   z&specified freq and dtype are differentr   r`   z	period[D])r   rd   )r   rF   rK   rd   r   r    r   )r"   r   r   resr$   s        r%   test_constructor_dtypez&TestPeriodIndex.test_constructor_dtype9  s   9i0DDD9i0s;;;
c3'''yK''''<6lKKK<6TBBB
c3'''yL(((( <6SAAA#[1119i0s;;;
c3'''yK''''#C(((
c3'''yK''''6]0<<< 	B 	B#[AAAA	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	Bs   :EE"Ec                     t          g d          }t          |t                     sJ t          |          dk    sJ |j        dk    sJ t	          j        t          d          5  t          g            d d d            d S # 1 swxY w Y   d S )Nra   r   r   r   freq not specifiedr   )r   
isinstancelenr   r   r    r!   )r"   r   s     r%   test_constructor_emptyz&TestPeriodIndex.test_constructor_emptyV  s    "3'''#{+++++3xx1}}}}x4]:-ABBB 	 	OOO	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   &BB
Bc                    t          t          dd          t          t          dd          g          }t          g dd          }t          j        ||           t          t          j        t          dd          t          t          dd          g                    }t          j        ||           t          t          t          t          dd          t          dd          g          }t          g dd          }t          j        ||           t          t          j        t          t          t          dd          t          dd          g                    }t          j        ||           t          t          t          ddgd          }t          j        ||           t          j        t          d          5  t          t          t          g           d d d            n# 1 swxY w Y   t          j        t          d          5  t          t          j        t          t          g                     d d d            n# 1 swxY w Y   t          j        t          d          5  t          ddg           d d d            n# 1 swxY w Y   t          j        t          d          5  t          t          j        ddg                     d d d            d S # 1 swxY w Y   d S )	Nr`   ra   r   r`   r   r`   )r   r   r`   r`   r   r   r   )
r   r   r   rF   rK   rI   rJ   r   r    r!   r   s      r%   test_constructor_pi_natz'TestPeriodIndex.test_constructor_pi_nat_  s   IC(((#vic/J/J/JK
 
 777cBBB
c3'''HfYS1113ys8S8S8STUU
 
 	c3'''#vic222F934O4O4OP
 
 >>>SIII
c3'''Hc6)#666ys8S8S8ST 
 

 	c3'''3Y	:EEE
c3''']:-ABBB 	$ 	$c
###	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ ]:-ABBB 	. 	.#s,,---	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. ]:-ABBB 	( 	('''	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( ]:-ABBB 	2 	2%00111	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2sH   G66G:=G:.III<JJ!J $K11K58K5c                    d}t          j        t          |          5  t          t	          dd          t
          t	          dd          g           d d d            n# 1 swxY w Y   t          j        t          |          5  t          t          j        t	          dd          t
          t	          dd          g                     d d d            n# 1 swxY w Y   t          j        t          |          5  t          t
          t	          dd          t	          dd          g           d d d            n# 1 swxY w Y   t          j        t          |          5  t          t          j        t
          t	          dd          t	          dd          g                     d d d            d S # 1 swxY w Y   d S )Nz5Input has different freq=D from PeriodIndex\(freq=M\)r   r`   ra   r   rT   )r   r    r   r   r   r   rI   rJ   r"   r$   s     r%   test_constructor_incompat_freqz.TestPeriodIndex.test_constructor_incompat_freq  s   G]0<<< 	Y 	Y	444c6)RU;V;V;VWXXX	Y 	Y 	Y 	Y 	Y 	Y 	Y 	Y 	Y 	Y 	Y 	Y 	Y 	Y 	Y ]0<<< 	 	IC000#vic7R7R7RS   	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ]0<<< 	Y 	YfYS9996)RU;V;V;VWXXX	Y 	Y 	Y 	Y 	Y 	Y 	Y 	Y 	Y 	Y 	Y 	Y 	Y 	Y 	Y ]0<<< 	 	&555vic7R7R7RS   	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	sI   6A  A$'A$ACC!C 6EE	E(AF==GGc                    t          dt          t          dd          g          }t          g dd          }t          j        ||           t          dt          t          dd          g          }t          g dd          }t          j        ||           t          t          dd          t          d	g          }t          g d
d          }t          j        ||           d S )Nr`   ra   r   r   r   )r   r   r`   rj   rT   
2012-01-01)rj   r   r   )r   r   r   rF   rK   r   s      r%   test_constructor_mixedz&TestPeriodIndex.test_constructor_mixed  s    9c6)#+F+F+FGHH777cBBB
c3'''5#vic'B'B'BCDD333#>>>
c3'''6,S9993MNN===CHHH
c3'''''r=   floats皙? @c                     d}t          j        t          |          5  t          |           d d d            d S # 1 swxY w Y   d S )Nz9PeriodIndex does not allow floating point in constructionr   )r   r    r   r   )r"   r   r$   s      r%   test_constructor_floatsz'TestPeriodIndex.test_constructor_floats  s    I]9C000 	  	 	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	 s   ;??c                 ~   t          g d          }|dz
  }d}t          j        t          |          5  t	          ||          }d d d            n# 1 swxY w Y   d t          ||          D             }t          t          t          |                    }t	          |          }t          j	        ||           d S )N)i  i  i  r   rU   r   r   c                 8    g | ]}|d          dd|d         dS )r   dQr   r<   ).0ts     r%   
<listcomp>zETestPeriodIndex.test_constructor_year_and_quarter.<locals>.<listcomp>  s4    AAA1Q4$$$AaD$$$AAAr=   )
r	   rF   rG   rH   r   zipr   mapr   rK   )r"   rW   r   r$   r   strslopsr|   s           r%   !test_constructor_year_and_quarterz1TestPeriodIndex.test_constructor_year_and_quarter  s    ((())+B'SAAA 	: 	:4999C	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	:AAc'4.@.@AAAC%%&&
a%%%%%s   AAAc                    t          ddd          }t          g dd          }t          j        ||           t          ddd	
          }t          g dd	          }t          j        ||           t          ddd          }t          g dd          }t          j        ||           d}t	          j        t          |          5  t          dgd           d d d            n# 1 swxY w Y   d}t	          j        t          |          5  t          dgd           d d d            n# 1 swxY w Y   d}t	          j        t          |          5  t          ddd           d d d            d S # 1 swxY w Y   d S )N2014-01r   r   r   r   r3   )r   z2014-03z2014-05z2014-07r   
2014-01-02z
2014-01-15r   r   )r   z
2014-01-05z
2014-01-08z
2014-01-11z
2014-01-142014-01-01 17:004hr   )r   r   r3   )z2014-01-01 09:00z2014-01-01 13:00r   z;Frequency must be positive, because it represents span: -1Mr   r`   z-1Mz:Frequency must be positive, because it represents span: 0M0Mr2   )r   r   rF   rK   r   r    r!   )r"   pidxrm   r$   s       r%   test_constructor_freq_multz*TestPeriodIndex.test_constructor_freq_mult  sv   )$BBBKKKRVWWW
dH---,LtLLLRRR
 
 
 	dH--- 2qIIIHHHt
 
 
 	dH---K]:S111 	1 	1%0000	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 K]:S111 	0 	0$////	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 K]:S111 	: 	:AD9999	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	:s6   C++C/2C/D22D69D6E::E>E>zfreq_offset, freq_period))YErA   )r   ra   )rT   rT   )minr   )sr   mult)r   r   r   r   r   c                     t          |          |z   }t          |          |z   }t          d|d          }t          d|d                              |          }t	          j        ||           d S )N
2014-04-01rx   r   )strr   r
   r4   rF   rK   )r"   r   freq_offsetfreq_periodfreqstr_offsetfreqstr_periodr   rm   s           r%   %test_constructor_freq_mult_dti_compatz5TestPeriodIndex.test_constructor_freq_mult_dti_compat  s~     T[0T[0,^RPPP^R
 
 

)N
#
# 	 	dH-----r=   c                     t          d| dd          }t          d| dd                              | d          }t          j        ||           d S )Nr   ra   rx   r   r   )r   r
   r4   rF   rK   )r"   r   r   rm   s       r%   +test_constructor_freq_mult_dti_compat_monthz;TestPeriodIndex.test_constructor_freq_mult_dti_compat_month  sn    ,ZZZLLL[[["
 
 

)tJJJ

 	 	dH-----r=   c                     dD ](}t          ddg|          }t          ddgd          })dD ]<}t          dd|	          }t          dd
gd          }t          j        ||           =d S )N)1D1h1h1DrS   z
2016-01-02r   z2016-01-01 00:00z2016-01-02 00:0025hr   ry   z2016-01-02 01:00)r   r   rF   rK   )r"   r   r   rm   s       r%   test_constructor_freq_combinedz.TestPeriodIndex.test_constructor_freq_combined  s    $ 	Y 	YDl;$GGGD"$68J#KRWXXXHH$ 	2 	2DlADIIID"$68J#KRWXXXH!$1111	2 	2r=   c                    t          ddd          }t          |          dk    sJ t          ddd          }t          |          dk    sJ t          ddd          }t          |          d	k    sJ t          d
dd          }t          |          dk    sJ d}t          j        t          |          5  t          ddd          }d d d            n# 1 swxY w Y   t          |          dk    sJ t          ddd          }t          |          dk    sJ t          ddd          }t          |          dk    sJ t          ddd          }t          |          dk    sJ t          j        t          |          5  t          dd          }t          |d          }d d d            n# 1 swxY w Y   t          |          dk    sJ |j        |j        k    sJ |d         |k    sJ t          dd          }t          |d !          }t          |          d k    sJ |j        |j        k    s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          |d !          }t          |          t          |          k    sJ ||k                                    sJ |j        |j        k    sJ d S )%NrA   z1/1/2001z	12/1/2009)r   r   r   	   r   $   ra   l   rT   z
12/31/2009i  ru   r   rv   i-	  hz12/31/2001 23:00i8"  Minz1/1/2001 23:59i  r   z1/1/2001 23:59:59iQ 02-Apr-2005r   rz   r   
2006-12-31Wrx   )r   r3   rE   :'w' is deprecated and will be removed in a future version.1w)r   r   rF   rG   rH   r   r   all)r"   r   r$   r   i1end_intvi2s          r%   test_period_range_lengthz(TestPeriodIndex.test_period_range_length  s   s*+FFF2ww!||||s*+FFF2ww%s*+FFF2ww&    s*,GGG2ww+%%%%3'SAAA 	L 	L3jlKKKB	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L2ww'!!!!s*:LMMM2ww(""""uJ<LMMM2ww'!!!!s*:MNNN2ww,&&&&'SAAA 	7 	7=#..EE2666B	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 2ww"}}}}w%*$$$$!u~~~~,,,h3332ww"}}}}w(-''''"v!!!!J'SAAA 	2 	2lD11H	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2h3332ww#b''!!!!b~~w"'!!!!!!s6   :CC C	"F77F;>F;*JJJc           
      d   d}t          j        t          |          5  t          dd          }t          dd          }t	          ||           t          |t          dd          g          }d d d            n# 1 swxY w Y   t          |          dk    sJ |d	         |k    sJ t          j        t          |          5  t          t          j        |t          dd          g                    }d d d            n# 1 swxY w Y   t          |          dk    sJ |d	         |k    sJ d S )
Nru   r   r  rv   
2005-05-01)r   r   z
2005-05-05r   r   )	rF   rG   rH   r   r   r   r   rI   rJ   )r"   r$   r   r  r  s        r%   "test_infer_freq_from_first_elementz2TestPeriodIndex.test_infer_freq_from_first_element1  s   3'SAAA 	D 	D=#..ElC00Hu(3333 h|S(A(ABCCB	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 2ww!||||!u    'SAAA 	N 	NRXxc1J1J&KLLMMB	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N2ww!||||!u      s$   AA;;A?A?2DD	Dc                 $   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          g}d d d            n# 1 swxY w Y   d}d	}t	          j        t          |          5  t          j        t          |          5  t          |           d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   t          j	        |          }t	          j        t          |          5  t          j        t          |          5  t          |           d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )
Nru   r   r  rv   r  r  wz9Input has different freq=W-SUN from PeriodIndex\(freq=B\)rw   )
rF   rG   rH   r   r   r    r   r   rI   rJ   )r"   r$   r  r   r   s        r%   test_mixed_freq_raisesz&TestPeriodIndex.test_mixed_freq_raisesB  s   3'SAAA 	1 	1lC00H	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 K'SAAA 	9 	9f\3778D	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9J4]0<<< 	" 	"+MJJJ " "D!!!" " " " " " " " " " " " " " "	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" x~~]0<<< 	" 	"+MJJJ " "D!!!" " " " " " " " " " " " " " "	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	"s   ;??#BB	B,C;C$C;$C(	(C;+C(	,C;;C?C?5FE-!F-E1	1F4E1	5FF	F	r   )ra   r   rA   rT   rv   r   r   msusr   r
  z8ignore:Period with BDay freq is deprecated:FutureWarningz3ignore:PeriodDtype\[B\] is deprecated:FutureWarningc                     t          d|d          }t          |j        |          }t          j        ||           d S )Nz
2001/04/01r   r   r   )r   r   rk   rF   rK   )r"   r   orgr   s       r%   test_recreate_from_dataz'TestPeriodIndex.test_recreate_from_dataU  sE     D!DDD#*4000
c3'''''r=   c                 $   g d}t          |d          }t          d |D                       }|                    t                    }t	          |t                    sJ t          d |D                       sJ t          j        ||           d S )N)i  r   i  rA   r   c                 ,    g | ]}t          |          S r<   )r   )r   nums     r%   r   zDTestPeriodIndex.test_map_with_string_constructor.<locals>.<listcomp>e  s    222s#c((222r=   c              3   @   K   | ]}t          |t                    V  d S )N)r   r   )r   resis     r%   	<genexpr>zCTestPeriodIndex.test_map_with_string_constructor.<locals>.<genexpr>l  s,      99T:dC((999999r=   )r   r   r   r   r   r  rF   rK   )r"   rawr~   rm   r   s        r%    test_map_with_string_constructorz0TestPeriodIndex.test_map_with_string_constructora  s       Cc***22c22233iinn #u%%%%% 99S99999999 	c8,,,,,r=   N),r7   r8   r9   rQ   r^   rh   rn   r   r:   r;   r   rI   rJ   r   r   _from_sequencers   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  filterwarningsr   r(  r<   r=   r%   r?   r?   @   sq       * * *"S S S*X X X0 0 0 [tRX{K<VW E E E/ / /$( $( $(L( ( ("+ + +  + + ++ + +(+ (+ (+T, , , [U$=$=$=>>0 0 ?>0B B B:  &2 &2 &2P  0( ( ( [Xc
HBHc3Z4H4H'IJJ    KJ 
	& 	& 	&: : :> ["	
 	
 	
	 	 [V___55. . 65	 	. [V___55. . 65.2 2 2." ." ."`! ! !"" " "& [LLL  [C  [ VWW( ( XW  (
- - - - -r=   r?   c                       e Zd Zd Zd Zej                            dddg ej	        ddg          g          d             Z
dS )TestSimpleNewc                    t          dddd          }t          j        t          d          5  |                    |d           d d d            n# 1 swxY w Y   |                    |j        d          }t          j        ||           d	}t          j        t          |          5  t          |j                                      t          |j
                  |j        
           d d d            n# 1 swxY w Y   t          |j                                      |j
        |j        
          }|                    |d          }t          j        ||           d S )Nr   r|   r   ra   )namer3   r   <class .*PeriodIndex'>r   r.  z Should be numpy array of type i8rc   )r   r   r    AssertionError_simple_new_datarF   rK   rq   r   r   rd   )r"   r   rl   r$   rg   s        r%   test_constructor_simple_newz)TestSimpleNew.test_constructor_simple_news  s   93DDD]>1IJJJ 	+ 	+OOCcO***	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 55
fc***0]>555 	J 	JOO''chsy'III	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 39oo))#(#))DD3//
fc*****s$   AAA,AC99C= C=c                     t          g dd          }t          j        t          d          5  |                    |d           d d d            n# 1 swxY w Y   |                    |j        d          }t          j        ||           d S )Nra   r|   )r   r.  r/  r   r0  )r   r   r    r1  r2  r3  rF   rK   )r"   r   rl   s      r%   !test_constructor_simple_new_emptyz/TestSimpleNew.test_constructor_simple_new_empty  s    "3S111]>1IJJJ 	+ 	+OOCcO***	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 55
fc*****s   AAAr   r   r   c                     t          j        t          d          5  t          j        |           d d d            d S # 1 swxY w Y   d S )Nz<class r   )r   r    r1  r   r2  )r"   r   s     r%   -test_period_index_simple_new_disallows_floatsz;TestSimpleNew.test_period_index_simple_new_disallows_floats  s    ]>;;; 	, 	,#F+++	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	,s   >AAN)r7   r8   r9   r4  r6  r   r:   r;   rI   rJ   r8  r<   r=   r%   r,  r,  r  sz        + + +$+ + + [Xc
HBHc3Z4H4H'IJJ, , KJ, , ,r=   r,  c                        e Zd Zd Zd Zd ZdS )TestShallowCopyc                 ~    t          g d          }|                                }|}t          j        ||           d S )Nra   r   )r   _viewrF   rK   )r"   r   rl   rm   s       r%   test_shallow_copy_emptyz'TestShallowCopy.test_shallow_copy_empty  s?    "3'''
fh/////r=   c                     t          ddd          }t          j        t          d          5  |                    |j                   d d d            d S # 1 swxY w Y   d S )N
2018-01-01r   2Dr2   ndarrayr   )r   r   r    r1  _shallow_copyr   r"   r   s     r%   test_shallow_copy_disallow_i8z-TestShallowCopy.test_shallow_copy_disallow_i8  s    ,===]>;;; 	& 	&RW%%%	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	&s   AAAc                     t          ddd          }t          j        t          d          5  |                    |           d d d            d S # 1 swxY w Y   d S )Nr?  r   r@  r2   r   r   )r   r   r    r1  rB  rC  s     r%   0test_shallow_copy_requires_disallow_period_indexz@TestShallowCopy.test_shallow_copy_requires_disallow_period_index  s    ,===]>??? 	! 	!R   	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	!s   AAAN)r7   r8   r9   r=  rD  rF  r<   r=   r%   r:  r:    sA        0 0 0& & &! ! ! ! !r=   r:  c                       e Zd Zd Zd ZdS )TestSeriesPeriodc                     d}t          j        t          |          5  t          t	          ddd          t
                     d d d            d S # 1 swxY w Y   d S )Nz(Cannot cast PeriodIndex to dtype float64r   z
2000-01-01rx   rT   r2   rc   )r   r    r   r	   r   floatr   s     r%   !test_constructor_cant_cast_periodz2TestSeriesPeriod.test_constructor_cant_cast_period  s    8]9C000 	R 	R<bsCCC5QQQQ	R 	R 	R 	R 	R 	R 	R 	R 	R 	R 	R 	R 	R 	R 	R 	R 	R 	Rs   'AAAc                     t          dd          }t          |t          d                    }t          |          }t          j        ||           d S )Nz1/1/2000rx   )r3   rT   rc   )r   r	   r   rF   assert_series_equal)r"   r   serr   s       r%   test_constructor_cast_objectz-TestSeriesPeriod.test_constructor_cast_object  sR    *b111R{3//000Rjj
sC(((((r=   N)r7   r8   r9   rK  rO  r<   r=   r%   rH  rH    s5        R R R
) ) ) ) )r=   rH  )numpyrI   r   pandas._libs.tslibs.periodr   pandas.core.dtypes.dtypesr   pandasr   r   r   r   r	   r
   r   r   pandas._testing_testingrF   pandas.core.arraysr   r   r?   r,  r:  rH  r<   r=   r%   <module>rW     s        < < < < < < 1 1 1 1 1 1	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	       * * * * * *' ' ' ' ' ' ' 'To- o- o- o- o- o- o- o-d, , , , , , , ,D! ! ! ! ! ! ! !*
) 
) 
) 
) 
) 
) 
) 
) 
) 
)r=   