
    ie                         d dl Zd dlZd dlmZ d dlmZ d dlmZ d dl	m
Z
mZmZmZmZ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)Pandas4Warning)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ej                  j                  d	g d
      d        Z	ej                  j                  d      ej                  j                  d      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| }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)NInvalid frequency: match
2020-01-01
2020-01-02freqstartendr   )pytestraises
ValueErrorr	   r   )selfr   	freq_deprmsgs       j/app/cer_product_mecsu/.venv/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     $I;/]]:S1 	F|49E	F ]]:S1 	O|IN	O 	O	F 	F	O 	Os   A,A8,A58Br   )2SME2sme2BYE2Bye2CBMEc                    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Nr   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-   sv     $D6*]]:S1 	:ID9	:]]:S1 	;I.T:	; 	;	: 	:	; 	;   A,A8,A58B)z2BQE-SEPz2BYE-MAR2BMEc                     d| }t        dd|      }t        j                  t        |      5  |j	                          d d d        y # 1 sw Y   y xY w)Nr   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_freq:   sJ     $D6*=]]:S1 	MMO	 	 	s   A		Ar%   )2T1l2Unc                    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r/   r0   )r$   r%   r&   s      r'    test_period_index_T_L_U_N_raisesz?TestPeriodIndexDisallowedFreqs.test_period_index_T_L_U_N_raisesC   s{     $I;/]]:S1 	?II>	?]]:S1 	@I.Y?	@ 	@	? 	?	@ 	@r2   3ignore:PeriodDtype\[B\] is deprecated:FutureWarningz*ignore:Period with BDay freq:FutureWarning))2W2w)z2W-FRIz2w-fri)2D2d)2B2bc                    d|dd   d}t        j                  t        |d      5  t        ddg|      }d d d        t        ddg|      }t        j                  |       t        j                  t        |d      5  t        dd|	      }d d d        t        dd|	      }t        j                  ||       y # 1 sw Y   xY w# 1 sw Y   :xY w)
N'   z8' is deprecated and will be removed in a future version.F)r   raise_on_extra_warningsr   r   r   r   )tmassert_produces_warningr   r	   assert_index_equalr   )r$   r   r%   r&   resultexpecteds         r'   *test_period_index_depr_lowercase_frequencyzITestPeriodIndexDisallowedFreqs.test_period_index_depr_lowercase_frequencyM   s     	!"VW 	 ''#u
 	O !,!=INF	O
 l;$G
fh/''#u
 	X ",YWF	X
  l4P
fh/	O 	O	X 	Xs   B;?C;CCN)__name__
__module____qualname__r!   markparametrizer(   r1   r:   r@   filterwarningsrQ        r'   r   r      s   [[	

O
O [[1;	; [[V%EF G [[[*AB@ C@ [[ VW[[ LM[[H0	 N X0rY   r   c                   Z   e 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                  jQ                  d)      ej                  jQ                  d*      d+                      Z)d, Z*y-).TestPeriodIndexc                     t        dd       t        dd       t        j                  g dd      }t        j                  t        j                  g d      d      }t        j                  ||       y )NiYordinalr   r   )r   rJ   )ordinalsr   )r   r	   from_ordinalsnparrayrL   rN   )r$   idx1idx2s      r'   test_from_ordinalsz"TestPeriodIndex.test_from_ordinalsk   sS    u3'qs#((*3G(("((:2FSQ
dD)rY   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-03Ddtype)
r   r   rL   rN   r   r	   rc   rd   nanobject)r$   arrs     r'   "test_construction_base_constructorz2TestPeriodIndex.test_construction_base_constructors   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WrY   c                     t        d      }g d}t        ||      }t        ||      }t        j                  ||       y )Nrl   )
2011-01-01z
2012-03-04z
2014-05-01rm   )r   r   r	   rL   rN   )r$   rn   valuesrO   rP   s        r'   'test_base_constructor_with_period_dtypez7TestPeriodIndex.test_base_constructor_with_period_dtype   s9    C ;vU+vU3
fh/rY   values_constructorc                     t        dd      t        t        dd      g} ||      }t        |t              }t	        |      t        u sJ t        j                  |j                  t        j                  |             y )Nri   rj   r   rk   rm   )
r   r   r   rp   typerL   assert_numpy_array_equalru   rc   rd   )r$   rw   r7   ru   rO   s        r'   test_index_object_dtypez'TestPeriodIndex.test_index_object_dtype   si     93'93'

 $G,vV,F|u$$$
##FMM288F3CDrY   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   r7   r   r   r7   )rL   rM   FutureWarningr   r   rN   )r$   msg1pmsg2rP   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 }t	        j
                  ||d	
      }t        ddd	      }t        j                  ||       t	        j
                  ||d
      }t        j                  |j                  |j                         t	        j
                  ||      }t        j                  ||       g d}ddg}d}t        j                  t        |      5  t	        j
                  ||d       d d d        t        j                  t        |      5  t	        j
                  ||d       d d d        g d}g d}t	        j
                  ||d      }t        ddd      }	t        j                  ||	       y # 1 sw Y   xY w# 1 sw Y   ZxY w)Ni  i        rJ         Q-DECyearquarterr   1990Q32009Q2r   z2Q-DECr   r   )  r   r   zMismatched Period array lengthsr   rj   )r   monthr   r   )rJ   r      2007-01r   r6   )rc   arangerepeattiler	   from_fieldsr   rL   rN   rz   asi8r!   r"   r#   )
r$   yearsquartersr   rP   index2monthsr&   idxexps
             r'   test_constructor_field_arraysz-TestPeriodIndex.test_constructor_field_arrays   s    		$%,,Q/"577299Q?B/"5''UH7S(A
eX.((eXHU
##EJJ<''UHE
eX."Q/]]:S1 	H##f3G	H]]:S1 	I##f4H	I #%%5SI9ac:
c3'	H 	H	I 	Is   &G"GGG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 )	NrJ   nsr^   r   r   r   r   r   )r   r   r	   rL   rN   r$   r   r   s      r'   test_constructor_nanoz%TestPeriodIndex.test_constructor_nano   ss    .qt,

 qt,qt,qt,qt,	 
 	c3'rY   c                    t        j                  ddt         j                        j                  d      }t        j                  t        j
                  g dt         j                        d      }t        j                  ||      }t        j                  |j                  t        |             t        j                  |j                  t        |             y )Ni    rm   r   )rJ   r   r   r   (   r   )rc   r   int64r   r   rd   r	   r   rL   rN   r   r   r   )r$   r   r   pindexs       r'   %test_constructor_arrays_negative_yearz5TestPeriodIndex.test_constructor_arrays_negative_year   s    		$BHH5<<Q?77288LA2F((eXF
fkk5<8
fnneHo>rY   c           	          d}t        j                  t        |      5  t        j                  t        dd      t        t        d            d       d d d        y # 1 sw Y   y xY w)NzQuarter must be 1 <= q <= 4r   r   i  r   r   r   )r!   r"   r#   r	   r   rangelistr$   r&   s     r'   !test_constructor_invalid_quartersz1TestPeriodIndex.test_constructor_invalid_quarters   sN    +]]:S1 	##4&U1XW	 	 	s   5AA%c                     d}t        j                  t        |      5  t        ddd       d d d        y # 1 sw Y   y xY w)Nz$periods must be an integer, got 10.5r   r   g      %@rj   r6   )r!   r"   	TypeErrorr   r   s     r'   #test_period_range_fractional_periodz3TestPeriodIndex.test_period_range_fractional_period   s6    4]]9C0 	<Ds;	< 	< 	<s   6?c                     t        dd      }t        |d|j                        }t        |d      }t        j                  ||       y )Nz2002-01-01 00:0030minr   r   r   r   )r   r   r   rL   rN   )r$   r   r   rO   s       r'   "test_constructor_with_without_freqz2TestPeriodIndex.test_constructor_with_without_freq   s=    )8

CE15
c6*rY   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   rj   r6   z)freq not specified and cannot be inferredr   z'Period' object is not iterable2007r]   r   )dataMEr   r   r   rl   e)r   rL   rN   r	   ru   r   r!   r"   r#   r   r   r   iterr   MonthEndr   asfreq)r$   r   r&   rO   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   rm   zM8[us]rl   r   zM8[ns])	rc   r   r   viewrn   r	   astyperL   rN   )r$   valspirP   s       r'   test_constructor_datetime64arrz.TestPeriodIndex.test_constructor_datetime64arr  sb    yyBHHEyy(+,C(t{{843?
b(+rY   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   r6   r   rl   r   )z
2017-01-31z
2017-02-28z
2017-03-31z
2017-04-30)r   _valuesr
   r	   rL   rN   )r$   r   r   rO   rP   s        r'   !test_constructor_datetime64arr_okz1TestPeriodIndex.test_constructor_datetime64arr_ok%  s]     &!$7;<<DH_$<DT,D3
 	fh/rY   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]rm   rj   r   z
2013-01-05z
2013-03-05z
period[3D]3Dz
2013-01-01z
2013-01-02rl   z&specified freq and dtype are differentr   ri   z	period[D])r   rn   )r	   rL   rN   rn   r!   r"   r   )r$   r   r   resr&   s        r'   test_constructor_dtypez&TestPeriodIndex.test_constructor_dtype4  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)Nrj   r   r   r   freq not specifiedr   )r	   
isinstancelenr   r!   r"   r#   )r$   r   s     r'   test_constructor_emptyz&TestPeriodIndex.test_constructor_emptyQ  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)	Nri   rj   r   ri   r   ri   )r   r   ri   ri   r   r   r   )
r	   r   r   rL   rN   rc   rd   r!   r"   r#   r   s      r'   test_constructor_pi_natz'TestPeriodIndex.test_constructor_pi_natZ  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   ri   rj   r   rl   )r!   r"   r   r	   r   r   rc   rd   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 )Nri   rj   r   r   r   )r   r   ri   rt   rl   
2012-01-01)rt   r   r   )r	   r   r   rL   rN   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'rY   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                     t        g d      }|dz
  }t        j                  ||      }t        ||      D cg c]  }|d   dd|d   d }}t	        t        t        |            }t        |      }t        j                  ||       y c c}w )N)i  i  i  r   r   r   dQrJ   )	r
   r	   r   zipr   mapr   rL   rN   )r$   r   r   r   tstrslopsr   s           r'   !test_constructor_year_and_quarterz1TestPeriodIndex.test_constructor_year_and_quarter  s    ()+%%4A.1'4.@A1Q4(!AaD8$AAC%&
a% Bs   B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   r7   )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   r7   )z2014-01-01 09:00z2014-01-01 13:00r   z;Frequency must be positive, because it represents span: -1Mr   ri   z-1Mz:Frequency must be positive, because it represents span: 0M0Mr6   )r   r	   rL   rN   r!   r"   r#   )r$   pidxrP   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))YEr]   )r   rj   )rl   rl   )minr   )sr   mult)rJ   r   r   r   r   c                     t        |      |z   }t        |      |z   }t        d|d      }t        d|d      j                  |      }t	        j
                  ||       y )N
2014-04-01r   r   )strr   r   r8   rL   rN   )r$   r   freq_offsetfreq_periodfreqstr_offsetfreqstr_periodr   rP   s           r'   %test_constructor_freq_mult_dti_compatz5TestPeriodIndex.test_constructor_freq_mult_dti_compat  s^     T[0T[0,^RP^R

)N
# 	 	dH-rY   c                     t        d| dd      }t        d| dd      j                  | d      }t        j                  ||       y )Nr   rj   r   r   r   )r   r   r8   rL   rN   )r$   r   r   rP   s       r'   +test_constructor_freq_mult_dti_compat_monthz;TestPeriodIndex.test_constructor_freq_mult_dti_compat_month  sR    ,vQZLvR["

)tfAJ
 	 	dH-rY   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1h1Dz
2016-01-01z
2016-01-02r   z2016-01-01 00:00z2016-01-02 00:0025hr   r   z2016-01-02 01:00)r	   r   rL   rN   )r$   r   r   rP   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	2rY   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)%Nr]   z1/1/2001z	12/1/2009)r   r   r    	   r   $   rj   l   rl   z
12/31/2009i  r}   r   r~   i-	  hz12/31/2001 23:00i8"  Minz1/1/2001 23:59i  r   z1/1/2001 23:59:59iQ 02-Apr-2005r   r   r   
2006-12-31Wr   )r    r7   r`   z:'w' is deprecated and will be removed in a future version.1w)	r   r   rL   rM   r   r   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''cB 	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)
Nr}   r   r  r~   
2005-05-01)r   r    z
2005-05-05r   r   )	rL   rM   r   r   r   r	   r   rc   rd   )r$   r&   r   r  r  s        r'   "test_infer_freq_from_first_elementz2TestPeriodIndex.test_infer_freq_from_first_element*  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                 z   d}t        j                  t        |      5  t        dd      }d d d        t        dd      g}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   6xY w# 1 sw Y   y xY w)	Nr}   r   r  r~   r  r  z9Input has different freq=W-SUN from PeriodIndex\(freq=B\)r   )
rL   rM   r   r   r!   r"   r   r	   rc   rd   )r$   r&   r  r   depr_msgs        r'   test_mixed_freq_raisesz&TestPeriodIndex.test_mixed_freq_raises;  s   3''SA 	1lC0H	1 &s34J4]]0< 	"++MJ "D!"	" xx~]]0< 	"++MJ "D!"	" 	"	1 	1" "	" 	"
" "	" 	"sS   D D<DDD1$D%0D1D
D	DD"%D.	*D11D:r   )rj   r   r]   rl   r~   r   r   msusr   r  z8ignore:Period with BDay freq is deprecated:FutureWarningrA   c                 z    t        d|d      }t        |j                  |      }t        j                  ||       y )Nz
2001/04/01rJ   r   r   )r   r	   ru   rL   rN   )r$   r   orgr   s       r'   test_recreate_from_dataz'TestPeriodIndex.test_recreate_from_dataL  s2     D!D#**40
c3'rY   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  r]   r   c              3   <   K   | ]  }t        |t                y w)N)r   r   ).0resis     r'   	<genexpr>zCTestPeriodIndex.test_map_with_string_constructor.<locals>.<genexpr>c  s     9T:dC(9s   )r	   r   r   r   r   r  rL   rN   )r$   rawr   numrP   r   s         r'    test_map_with_string_constructorz0TestPeriodIndex.test_map_with_string_constructorX  sx     Cc*c2s#c(23iin #u%%% 9S9999 	c8, 3s   BN)+rR   rS   rT   rg   rr   rv   r!   rU   rV   r   rc   rd   r	   r   _from_sequencer{   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r  r   rW   r%  r-  rX   rY   r'   r[   r[   j   s   *X0 [[tRXX{K<V<VWEE/(>("?<
+(+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(
-rY   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   rj   )namer7   r   <class .*PeriodIndex'>r   r2  z Should be numpy array of type i8rm   )r   r!   r"   AssertionError_simple_new_datarL   rN   ry   r   r   rn   )r$   r   rO   r&   rq   s        r'   test_constructor_simple_newz)TestSimpleNew.test_constructor_simple_newj  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)Nrj   r   )r   r2  r3  r   r4  )r	   r!   r"   r5  r6  r7  rL   rN   )r$   r   rO   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"   r5  r	   r6  )r$   r   s     r'   -test_period_index_simple_new_disallows_floatsz;TestSimpleNew.test_period_index_simple_new_disallows_floats  s3    ]]>; 	,##F+	, 	, 	,s	   ;AN)rR   rS   rT   r8  r:  r!   rU   rV   rc   rd   r<  rX   rY   r'   r0  r0  i  sJ    +$+ [[Xc
HBHHc3Z4H'IJ, K,rY   r0  c                       e Zd Zd Zd Zd Zy)TestShallowCopyc                 n    t        g d      }|j                         }|}t        j                  ||       y )Nrj   r   )r	   _viewrL   rN   )r$   r   rO   rP   s       r'   test_shallow_copy_emptyz'TestShallowCopy.test_shallow_copy_empty  s.    "3'
fh/rY   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   rD   r6   ndarrayr   )r   r!   r"   r5  _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)NrC  r   rD   r6   r	   r   )r   r!   r"   r5  rE  rF  s     r'   0test_shallow_copy_requires_disallow_period_indexz@TestShallowCopy.test_shallow_copy_requires_disallow_period_index  sA    ,=]]>? 	!R 	! 	! 	!s   AAN)rR   rS   rT   rA  rG  rI  rX   rY   r'   r>  r>    s    0&!rY   r>  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-01r   rl   r6   rm   )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/2000r   )r7   rl   rm   )r   r
   r   rL   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(rY   N)rR   rS   rT   rN  rR  rX   rY   r'   rK  rK    s    R
)rY   rK  )numpyrc   r!   pandas._libs.tslibs.periodr   pandas.errorsr   pandas.core.dtypes.dtypesr   pandasr   r   r   r	   r
   r   r   r   pandas._testing_testingrL   pandas.core.arraysr   r   r[   r0  r>  rK  rX   rY   r'   <module>r[     sd      < ( 1	 	 	  *P0 P0f|- |-~, ,D! !*
) 
)rY   