
    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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       b/var/www/openai/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|     )ab
.12qQ]]:S1|49E 2 ]]:S1|IN 21 21 21s   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,   sj     $IabM?3]]:S1II> 2]]:S1I.Y? 21 2111s   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   sG     $DH:.=]]:S1MMO 211s   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 B''SArxx
';#FD B
dD)((#>
dD)((*)=CH
dD) BAAAs   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   s.   \3'H	H	6]]:X6++MK#CHHM L 7 6]]:X6++MK#chhZchhG L 7 9]]:X6++MKS[[M
R L 76 LK 76 LK 76 LK 76sk   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 C0''TB#*bsKH C ''TB q"5E C
eX. CB CB CBs#   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UH7KE G(A
eX.''XF eXHMF G
##EJJ<''XFUH=E G
eX."Q/]]:S1++MJf3? K 2 ]]:S1++MJf4@ K 2 #''XF5SAC G9ac:
c3'; GF
 GF GF KJ 21 KJ 21 GFsx   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 B 	fkk5<8
fnneHo>%%5(C
c6* BAs   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   sf    G+]]:S1++MJtT*DqN K 21JJ 21s"   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   sS    J''SA!)TDF B9bs;
fc* BAs   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! 2]]:S1SXX' 2 0]]9C0VF56 1 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 2111 10s$   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  s8   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<#[A =<<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  sc    "3'#{+++3x1}}xx4]]:-ABO CBBs   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
# C ]]:-AB#s,- C ]]:-AB' C ]]:-AB%01 CB CB CB CB CBs0   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<	4c6)RU;VWX = ]]0<IC0#vic7RS = ]]0<fYS96)RU;VWX = ]]0<&5vic7RS =< =< =< =< =<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  s)    I]]9C0 100s   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 B.1'4.@A.@1Q4(!AaD8$.@AC%&
a% B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  s   )$BKRVW
dH-,LtLR
 	dH- 2qIHt
 	dH-K]]:S1%0 2 K]]:S1$/ 2 K]]:S1AD9 21 21 21 21s$   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  so    $Dl;$GD"$68J#KRWXH % %DlADID"$68J#KRWXH!!$1 %r=   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  sf   s*+F2w!||s*+F2w%s*+F2w&   s*,G2w+%%%3''SA3jlKB B2w'!!!s*:LM2w("""uJ<LM2w'!!!s*:MN2w,&&&''SA=#.EE26B B 2w"}}ww%**$$$!u~~,,h32w"}}ww(--'''"v!!!J''SAlD1H Bh32w#b'!!!b~~ww"''!!!A BA BA BAs$   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=#.ElC0Hu(3 h|S(ABCB B 2w!||!u   ''SARXXxc1J&KLMB B2w!||!u    BA BAs   =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  s   3''SAlC0H B K''SAf\378D BJ4]]0<++MJD! K = xx~]]0<++MJD! K =< BA BA
 KJ =<
 KJ =<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     9ST:dC(Ss   )r   r   r   r   r   r  rF   rK   )r"   rawr~   numrm   r   s         r%    test_map_with_string_constructorz0TestPeriodIndex.test_map_with_string_constructora  s|     Cc*c2cs#c(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* K 5
fc*0]]>5O''chhsyy'I 6 399o))#((#)))D3/
fc* KJ 65s   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  sg    "3S1]]>1IJOOCcO* K 5
fc*	 KJs   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  s*    ]]>;##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  s<    ,=]]>;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  s9    ,=]]>?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  s4    8]]9C0<bsC5Q 100s   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=   