
    Owg'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y)    N)IncompatibleFrequency)PeriodDtype)IndexNaTPeriodPeriodIndexSeries
date_rangeoffsetsperiod_range)PeriodArrayc                       e Zd Zej                  j                  dg d      d        Zej                  j                  dg d      d        Zej                  j                  dg d      d	        Zy
)TestPeriodIndexDisallowedFreqszfreq,freq_depr))2M2ME)2Q-MARz2QE-MAR)2Y-FEBz2YE-FEB)r   2me)r   z2qe-MAR)r   z2yE-febc                    d|dd   d|dd   d}t        j                  t        |      5  t        ddg|       d d d        t        j                  t        |      5  t	        dd|	       d d d        y # 1 sw Y   <xY w# 1 sw Y   y xY w)
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       d/var/www/horilla/myenv/lib/python3.12/site-packages/pandas/tests/indexes/period/test_constructors.py1test_period_index_offsets_frequency_error_messagezPTestPeriodIndexDisallowedFreqs.test_period_index_offsets_frequency_error_message   s     )ab
.12qQ]]:S1 	F|49E	F ]]:S1 	O|IN	O 	O	F 	F	O 	Os   A6B6A?Br#   )2SME2sme2CBME2BYE2Byec                    d|dd   }t        j                  t        |      5  t        dd|       d d d        t        j                  t        |      5  t	        ddg|       d d d        y # 1 sw Y   =xY w# 1 sw Y   y xY w)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     $IabM?3]]:S1 	?II>	?]]:S1 	@I.Y?	@ 	@	? 	?	@ 	@s   A/A;/A8;Br   )z2BQE-SEPz2BYE-MAR2BMEc                     d|dd   }t        dd|      }t        j                  t        |      5  |j	                          d d d        y # 1 sw Y   y xY w)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   sP     $DH:.=]]:S1 	MMO	 	 	s   AAN)	__name__
__module____qualname__r   markparametrizer&   r.   r6        r%   r   r      s}    [[	

O
O [[[*ST@ U@ [[V%EF Gr=   r   c                   `   e Zd Zd Zd Zd Zd Zej                  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                  j                  dg d      d        Zd Zd Zd Zd Zd Zej                  j                  dddg ej                  ddg      g      d        Z d Z!d Z"ej                  j                  dg d      ej                  j                  d g d!      d"               Z#ej                  j                  d g d!      d#        Z$d$ Z%d% Z&d& Z'd' Z(ej                  j                  d(g d)      ej                  jS                  d*      ej                  jS                  d+      d,                      Z*d- Z+y.)/TestPeriodIndexc                 l   t        dd       t        dd       d}t        j                  t        |      5  t	        g dd      }d d d        t        j                  t        |      5  t	        t        j                  g d      d      }d d d        t        j                         t	        j                  g dd      }t        j                  ||       t	        j                  t        j                  g d      d      }t        j                  ||       y # 1 sw Y   xY w# 1 sw Y   xY w)	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 	=z<D	=''SA 	Grxx
';#FD	G
dD)((#>
dD)((*)=CH
dD)	= 	=	G 	Gs   D+#D*D'*D3c                 \   t        dd      }d}d}d}t        j                  t        |      5  t	        j
                  t        |      5  t        |g|j                  g|j                         d d d        d d d        d}t        j                  t        |      5  t	        j
                  t        |      5  t        |g|j                  g|j                  	       d d d        d d d        d
}t        j                  t        |      5  t	        j
                  t        |      5  t        |j                  g|j                  g|j                         d d d        d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   BxY w# 1 sw Y   y xY w)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   sm   \3'H	H	6]]:X6 	N++MK N#CHHMN	N 6]]:X6 	H++MK H#chhZchhGH	H 9]]:X6 	S++MK SS[[M
RS	S 	SN N	N 	NH H	H 	HS S	S 	Ssk   E2
%E&/E2F
8%E>F

F"&/FF"&E/	+E22E;>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                     y )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   s   ic*C	1LM
eCj+c*:;
eBHHSM2K4NOvvsF9378
eCj+c*:;
eBHHSM2K4NOic*C	1LM
eCj%6*BC
eBHHSM2E"((3-v4VWr=   c                     t        d      }g d}t        ||      }t        ||      }t        j                  ||       y )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   s9    C ;vU+vU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                  |             y )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~   si     93'93'

 $G,vV,F|u$$$
##FMM288F3CDr=   c                    d}t        j                  t        |      5  t        dd      }d d d        d}t        j                  t        |      5  t	        ddd      }d d d        t        j                  t        |      5  t	        d	      }d d d        t        j
                         y # 1 sw Y   xY w# 1 sw Y   ]xY w# 1 sw Y   8xY w)
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 	-z,A	-0''TB 	L#*bsKH	L ''TB 	6 q"5E	6
eX.	- 	-	L 	L	6 	6s#   B0B<C0B9<CCc                    t        j                  dd      j                  d      dd }t        j                  t        j                  dd      d      dd }d	}t	        j
                  t        |
      5  t        ||d      }d d d        t        ddd      }t	        j                  |       t	        j
                  t        |
      5  t        ||d      }d d d        t	        j                  |j                  j                         t	        j
                  t        |
      5  t        ||      }d d d        t	        j                  ||       g d}ddg}d}t        j                  t        |
      5  t	        j
                  t        |
      5  t        ||d       d d d        d d d        t        j                  t        |
      5  t	        j
                  t        |
      5  t        ||d       d d d        d d d        g d}g d}t	        j
                  t        |
      5  t        ||d      }	d d d        t        ddd      }
t	        j                  	|
       y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   OxY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w)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   s_    		$%,,Q/"577299Q?B/"5G''XF 	LUH7KE	L(A
eX.''XF 	N eXHMF	N
##EJJ<''XF 	>UH=E	>
eX."Q/]]:S1 	@++MJ @f3?@	@ ]]:S1 	A++MJ Af4@A	A #''XF 	B5SAC	B9ac:
c3';	L 	L
	N 	N	> 	>@ @	@ 	@A A	A 	A	B 	Bsx   3I&	I3%J 6JJ!JJ1(J%7J1*J=&I03I= J
J	JJ"%J.	*J11J:=Kc           	          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                  ||       y )	Nr   nsrB   r   r   r   r   r   )r   r   r   rF   rK   r"   r   r   s      r%   test_constructor_nanoz%TestPeriodIndex.test_constructor_nano   ss    .qt,

 qt,qt,qt,qt,	 
 	c3'r=   c                 `   t        j                  ddt         j                        j                  d      }t        j                  t        j
                  g dt         j                        d      }d}t        j                  t        |      5  t        ||	      }d d d        t        j                  j                  t        |             t        j                  |j                  t        |             t        j                  ||	      }t        j                  ||       y # 1 sw Y   xY w)
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   s    		$BHH5<<Q?77288LA2FB''SA 	? eX>F	? 	fkk5<8
fnneHo>%%5(C
c6*	? 	?s   D$$D-c           
          d}d}t        j                  t        |      5  t        j                  t
        |      5  t        t        dd      t        t        d            d       d d d        d d d        y # 1 sw Y   xY w# 1 sw Y   y xY w)	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   sw    G+]]:S1 	++MJ tT*DqN	 	 	 	s"   B+A8'B8B	=BBc                     d}t        j                  t        |      5  t        ddd      }d d d        t        ddd      }t        j                  |       y # 1 sw Y   .xY w)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 	E!)TDF	E9bs;
fc*	E 	Es   AA#c                     t        dd      }t        |d|j                        }t        |d      }t        j                  ||       y )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   s=    )8

CE1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        t        j                  t        |      5  t        t        |j                               d d d        d}t        j                  t        |      5  t        t        dd	
             d d d        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                  ||j!                  d             |j                  dk(  sJ t        |t        j                  d      
      }t        j                  ||j!                  d             |j                  dk(  sJ t        |d
      }|j!                  dd      }t        j                  ||       y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w)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   s   9bs; 	k#**5s;
k$szz*:;SA9]]:S1 	"!	"]]:S1 	(SXX'	( 0]]9C0 	7VF56	7 T#Y'
fc*S!
fc*Ss+
fc*Sw'7'7'9:
fc*{{d"""St,
fcjj&67{{e###Sw'7'7':;
fcjj&67{{e###Ss+jjc"
fc*A	" 	"	( 	(	7 	7s$   J' J4K'J14J>Kc                    t        j                  dddt         j                        }|j                  t        j                  d            }t        |d      }t        |j                  d      d      }t        j                  ||       y )	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!  sb    yyBHHEyy(+,C(t{{8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
                  ||       y )	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;<<DH_$<DT,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        y # 1 sw Y   y xY w)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  sE   9i0D9i0s;
c3'yyK'''<6lK<6TB
c3'yyL((( <6SA#[19i0s;
c3'yyK'''#C(
c3'yyK'''6]]0< 	B#[A	B 	B 	Bs   .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        y # 1 sw Y   y xY w)Nra   r   r   r   freq not specifiedr   )r   
isinstancelenr   r   r    r!   )r"   r   s     r%   test_constructor_emptyz&TestPeriodIndex.test_constructor_emptyV  sk    "3'#{+++3x1}}xx4]]:-AB 	O	 	 	s   A11A:c                 B   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        t        j                  t        d      5  t        t        j                  t        t        g             d d d        t        j                  t        d      5  t        ddg       d d d        t        j                  t        d      5  t        t        j                  ddg             d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   fxY w# 1 sw Y   y xY w)	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K
 7cB
c3'HHfYS13ys8STU
 	c3'#vic2F934OP
 >SI
c3'HHc6)#6ys8ST

 	c3'3Y	:E
c3']]:-AB 	$c
#	$ ]]:-AB 	.#s,-	. ]]:-AB 	('	( ]]:-AB 	2%01	2 	2	$ 	$	. 	.	( 	(	2 	2s0   I1
)I=J	!J1I:=J	JJc                    d}t        j                  t        |      5  t        t	        dd      t
        t	        dd      g       d d d        t        j                  t        |      5  t        t        j                  t	        dd      t
        t	        dd      g             d d d        t        j                  t        |      5  t        t
        t	        dd      t	        dd      g       d d d        t        j                  t        |      5  t        t        j                  t
        t	        dd      t	        dd      g             d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   y xY w)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	4c6)RU;VWX	Y ]]0< 	IC0#vic7RS	 ]]0< 	YfYS96)RU;VWX	Y ]]0< 	&5vic7RS	 		Y 	Y	 		Y 	Y	 	s/   )E*<E'	)E3<E?E$'E03E<?F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                  ||       y )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GH7cB
c3'5#vic'BCD3#>
c3'6,S93MN=CH
c3'r=   floats皙? @c                 ~    d}t        j                  t        |      5  t        |       d d d        y # 1 sw Y   y xY w)Nz9PeriodIndex does not allow floating point in constructionr   )r   r    r   r   )r"   r   r$   s      r%   test_constructor_floatsz'TestPeriodIndex.test_constructor_floats  s2    I]]9C0 	 	  	  	 s   3<c                 p   t        g d      }|dz
  }d}t        j                  t        |      5  t	        ||      }d d d        t        ||      D cg c]  }|d   dd|d	   d }}t        t        t        |            }t	        |      }t        j                  |       y # 1 sw Y   jxY wc c}w )
N)i  i  i  r   rU   r   r   r   dQr   )
r	   rF   rG   rH   r   zipr   mapr   rK   )	r"   rW   r   r$   r   tstrslopsr|   s	            r%   !test_constructor_year_and_quarterz1TestPeriodIndex.test_constructor_year_and_quarter  s    ()+B''SA 	:49C	:.1'4.@A1Q4(!AaD8$AAC%&
a%	: 	:As   B'B3'B0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        d}t	        j
                  t        |      5  t        dgd       d d d        d}t	        j
                  t        |      5  t        ddd       d d d        y # 1 sw Y   rxY w# 1 sw Y   JxY w# 1 sw Y   y xY w)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  s5   )$BKRVW
dH-,LtLR
 	dH- 2qIHt
 	dH-K]]:S1 	1%0	1 K]]:S1 	0$/	0 K]]:S1 	:AD9	: 	:	1 	1	0 	0	: 	:s$   7D7+EE7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      j                  |      }t	        j
                  ||       y )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^R

)N
# 	 	dH-r=   c                     t        d| dd      }t        d| dd      j                  | d      }t        j                  ||       y )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  sR    ,vQZLvR["

)tfAJ
 	 	dH-r=   c                     dD ]   }t        ddg|      }t        ddgd      }" dD ]5  }t        dd|	      }t        dd
gd      }t        j                  ||       7 y )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Dl;$GD"$68J#KRWXH	Y % 	2DlADID"$68J#KRWXH!!$1	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        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        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        t        |d !      }t        |      t        |      k(  sJ ||k(  j                         sJ |j                  |j                  k(  sJ y # 1 sw Y   xY w# 1 sw Y   #xY w# 1 sw Y   zxY w)%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  sy   s*+F2w!||s*+F2w%s*+F2w&   s*,G2w+%%%3''SA 	L3jlKB	L2w'!!!s*:LM2w("""uJ<LM2w'!!!s*:MN2w,&&&''SA 	7=#.EE26B	7 2w"}}ww%**$$$!u~~,,h32w"}}ww(--'''"v!!!J''SA 	2lD1H	2h32w#b'!!!b~~ww"''!!!A	L 	L	7 	7	2 	2s$   I 2I-4I: I*-I7:Jc           
         d}t        j                  t        |      5  t        dd      }t        dd      }t	        ||       t        |t        dd      g      }d d d        t              dk(  sJ |d	   k(  sJ t        j                  t        |      5  t        t        j                  |t        dd      g            }d d d        t        |      dk(  sJ |d	   |k(  sJ y # 1 sw Y   xY w# 1 sw Y   0xY w)
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 	D=#.ElC0Hu(3 h|S(ABCB	D 2w!||!u   ''SA 	NRXXxc1J&KLMB	N2w!||!u   	D 	D	N 	Ns   =C&+C2&C/2C;c                    d}t        j                  t        |      5  t        dd      }d d d        d}t        j                  t        |      5  t        dd      g}d d d        d}d	}t	        j
                  t        |      5  t        j                  t        |      5  t               d d d        d d d        t        j                        }t	        j
                  t        |      5  t        j                  t        |      5  t        |       d d d        d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   BxY w# 1 sw Y   y xY w)
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  s6   3''SA 	1lC0H	1 K''SA 	9f\378D	9J4]]0< 	"++MJ "D!"	" xx~]]0< 	"++MJ "D!"	" 	"	1 	1	9 	9
" "	" 	"
" "	" 	"s_   D'D3E"D?.E.E#
EE#'D03D<?E	EEE 	E##E,r   )ra   r   rA   rT   rv   r   r   msusr   r  z8ignore:Period with BDay freq is deprecated:FutureWarningz3ignore:PeriodDtype\[B\] is deprecated:FutureWarningc                 z    t        d|d      }t        |j                  |      }t        j                  ||       y )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  s2     D!D#**40
c3'r=   c                    g d}t        |d      }t        |D cg c]  }t        |       c}      }|j                  t              }t	        |t              sJ t        d |D              sJ t        j                  ||       y c c}w )N)i  r   i  rA   r   c              3   <   K   | ]  }t        |t                y w)N)r   r   ).0resis     r%   	<genexpr>zCTestPeriodIndex.test_map_with_string_constructor.<locals>.<genexpr>l  s     9T:dC(9s   )r   r   r   r   r   r  rF   rK   )r"   rawr~   numrm   r   s         r%    test_map_with_string_constructorz0TestPeriodIndex.test_map_with_string_constructora  sx     Cc*c2s#c(23iin #u%%% 9S9999 	c8, 3s   B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?   @   s   *"S*X0 [[tRXX{K<V<VWEE/$(L("+++(+T, [[U$=>0 ?0B:&2P0( [[Xc
HBHHc3Z4H'IJ  K 
	&:> [["	
	 [[V_5. 6	. [[V_5. 6.2."`!""& [[L [[C [[ VW( X(
-r=   r?   c                       e Zd Zd Zd Zej                  j                  dddg ej                  ddg      g      d        Z
y)TestSimpleNewc                    t        dddd      }t        j                  t        d      5  |j	                  |d       d d d        |j	                  |j
                  d      }t        j                  ||       d	}t        j                  t        |      5  t        |j
                        j	                  t        |j                        |j                  
       d d d        t        |j
                        j	                  |j                  |j                  
      }|j	                  |d      }t        j                  ||       y # 1 sw Y   
xY w# 1 sw Y   zxY w)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]]>1IJ 	+OOCcO*	+ 5
fc*0]]>5 	JO''chhsyy'I	J 399o))#((#)))D3/
fc*	+ 	+	J 	Js   EAEEEc                    t        g dd      }t        j                  t        d      5  |j	                  |d       d d d        |j	                  |j
                  d      }t        j                  ||       y # 1 sw Y   =xY w)Nra   r|   )r   r+  r,  r   r-  )r   r   r    r.  r/  r0  rF   rK   )r"   r   rl   s      r%   !test_constructor_simple_new_emptyz/TestSimpleNew.test_constructor_simple_new_empty  sl    "3S1]]>1IJ 	+OOCcO*	+ 5
fc*		+ 	+s   A::Br   r   r   c                     t        j                  t        d      5  t        j                  |       d d d        y # 1 sw Y   y xY w)Nz<class r   )r   r    r.  r   r/  )r"   r   s     r%   -test_period_index_simple_new_disallows_floatsz;TestSimpleNew.test_period_index_simple_new_disallows_floats  s3    ]]>; 	,##F+	, 	, 	,s	   ;AN)r7   r8   r9   r1  r3  r   r:   r;   rI   rJ   r5  r<   r=   r%   r)  r)  r  sJ    +$+ [[Xc
HBHHc3Z4H'IJ, K,r=   r)  c                       e Zd Zd Zd Zd Zy)TestShallowCopyc                 n    t        g d      }|j                         }|}t        j                  ||       y )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	                  |j
                         d d d        y # 1 sw Y   y xY w)N
2018-01-01r   2Dr2   ndarrayr   )r   r   r    r.  _shallow_copyr   r"   r   s     r%   test_shallow_copy_disallow_i8z-TestShallowCopy.test_shallow_copy_disallow_i8  sE    ,=]]>; 	&RWW%	& 	& 	&s   AAc                     t        ddd      }t        j                  t        d      5  |j	                  |       d d d        y # 1 sw Y   y xY w)Nr<  r   r=  r2   r   r   )r   r   r    r.  r?  r@  s     r%   0test_shallow_copy_requires_disallow_period_indexz@TestShallowCopy.test_shallow_copy_requires_disallow_period_index  sA    ,=]]>? 	!R 	! 	! 	!s   AAN)r7   r8   r9   r:  rA  rC  r<   r=   r%   r7  r7    s    0&!r=   r7  c                       e Zd Zd Zd Zy)TestSeriesPeriodc                     d}t        j                  t        |      5  t        t	        ddd      t
               d d d        y # 1 sw Y   y xY w)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  sA    8]]9C0 	R<bsC5Q	R 	R 	Rs   AAc                     t        dd      }t        |t        d            }t        |      }t        j                  ||       y )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  s8    *b1R{3/0Rj
sC(r=   N)r7   r8   r9   rH  rL  r<   r=   r%   rE  rE    s    R
)r=   rE  )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)  r7  rE  r<   r=   r%   <module>rT     s_      < 1	 	 	  *' 'To- o-d, ,D! !*
) 
)r=   