
    A>i¥                     &   S SK JrJ r Jr  S SKrS SKrS SKrS SKJrJ	r	  S SK
JrJr  S SKJr  S SKJr  S SKJr  S SKJrJr  S S	KJrJrJrJrJr  S SKJr  S
r " S S5      r  " S S5      r! " S S5      r" " S S5      r# " S S5      r$S r%S r&S r'g)    )datedatetime	timedeltaN)iNaT	to_offset)DAYSMONTHS)DateParseError)INVALID_FREQ_ERR_MSG)PY314)OutOfBoundsDatetimePandas4Warning)NaTPeriod	Timedelta	Timestampoffsetsz#Period with BDay freq is deprecatedc            	           \ rS rSr\R
                  R                  S\R                  " 5       S4\R                  " S5      S4\R                  " SS9S4\R                  " S5      S	4/5      S
 5       rS rS rS rSrg)TestPeriodDisallowedFreqs'   zfreq, freq_msg
BYearBegin   	YearBegin   startingMonthQuarterBeginBusinessMonthEndc                     [         R                  " U S35      n[        R                  " [        US9   [        SUS9  S S S 5        g ! , (       d  f       g = f)N% is not supported as period frequencymatchi  )yearfreq)reescapepytestraises
ValueErrorr   )selfr$   freq_msgmsgs       e/var/www/html/land-tabula/venv/lib/python3.13/site-packages/pandas/tests/scalar/period/test_period.pytest_offsets_not_supported4TestPeriodDisallowedFreqs.test_offsets_not_supported(   s>     ii4& EFG]]:S14( 211s   A
Ac                 f   Sn[         R                  " [        US9   [        SSS9  S S S 5        [        R
                  " 5       R                   S3n[         R                  " [        US9   [        S[        R
                  " 5       S9  S S S 5        g ! , (       d  f       Np= f! , (       d  f       g = f)Nz&C is not supported as period frequencyr!   z
2023-04-10Cr$   r    )r'   r(   r)   r   r   CustomBusinessDaybaser*   r,   s     r-   $test_custom_business_day_freq_raises>TestPeriodDisallowedFreqs.test_custom_business_day_freq_raises7   s|    6]]:S1<c* 2**,1122WX]]:S1<g&?&?&AB 21 21 21s   B*B"
B"
B0c                     Sn[         R                  " [        US9   [        SSS9  S S S 5        g ! , (       d  f       g = f)Nz-WOM-1MON is not supported as period frequencyr!   
2012-01-02zWOM-1MONr2   r'   r(   r)   r   r5   s     r-   $test_invalid_frequency_error_message>TestPeriodDisallowedFreqs.test_invalid_frequency_error_message@   s+    =]]:S1<j1 211   0
>c                     Sn[         R                  " [        US9   [        SSS9  S S S 5        g ! , (       d  f       g = f)NzInvalid frequency: MEr!   r9   MEr2   r:   r5   s     r-   +test_invalid_frequency_period_error_messageETestPeriodDisallowedFreqs.test_invalid_frequency_period_error_messageE   s+    %]]:S1<d+ 211r=    N)__name__
__module____qualname____firstlineno__r'   markparametrizer   r   r   r   r   r.   r6   r;   r@   __static_attributes__rB       r-   r   r   '   s    [[!<0q!;/!!3^D%%a(*<=		
))C2
,rJ   r   c                      \ rS rSrS rS rS rS r\R                  R                  S/ SQ5      S 5       rS	 rS
 rS rS rS rS rS rS r\R                  R                  S\5      S 5       r\R                  R                  S\5      S 5       r\R                  R                  S\5      \R                  R                  S\" SS5      5      S 5       5       rS rS r\R                  R                  S/ SQ5      S 5       rS rS rS r\R                  R                  S/ S Q5      \R                  R                  S!/ S"Q5      \R                  R                  S#/ S$Q5      S% 5       5       5       r \R                  R                  S!\" S&5      5      S' 5       r!\R                  RE                  S(5      \R                  R                  S)/ S*Q5      S+ 5       5       r#S,r$g-).TestPeriodConstructionK   c                 *   [         R                  " S5      nSn[        R                  " [        US9   [        U5        S S S 5        [        R                  " [        US9   [        USS9  S S S 5        g ! , (       d  f       N;= f! , (       d  f       g = f)Nzm8[ns]2Value must be Period, string, integer, or datetimer!   Dr2   )r   to_numpyr'   r(   r)   r   )r*   tdr,   s      r-   test_from_td64nat_raises/TestPeriodConstruction.test_from_td64nat_raisesL   sc    \\(#B]]:S12J 2 ]]:S12C  21 21 21s   A3B3
B
Bc                 ,   [        SSS9n[        S5      nX:X  d   e[        SSS9n[        S5      nX:X  d   e[        SSS9nX:w  d   e[         R                  " SS9n[        [        R                  " 5       SS9nX:X  d   e[         R                  " SS9n[        [        R                  " 5       SS9n[         R                  " [        R                  " 5       5      nX:X  d   eX:X  d   e[        S	S
S9nSn[
        R                  " [        US9   [        S	SS9nS S S 5        X:X  d   e[        SSSSS9n[        SSS9nX:X  d   eSn[
        R                  " [        US9   [        SSSSS9nS S S 5        X:X  d   e[        S5      n[        [        SSSSSSS5      SS9nX:X  d   e[        SSS9nX:X  d   e[        S5      n[        [        SSSSSSS5      SS9nX:X  d   e[        SSS9nX:X  d   eSn[        R                  " [        US9   [        SS 9  S S S 5        S!n[        R                  " [        US9   [        S"S#S9  S S S 5        g ! , (       d  f       GN>= f! , (       d  f       N= f! , (       d  f       N`= f! , (       d  f       g = f)$N1/1/2005Mr2   zJan 20052005YQrP   1982minz<'MIN' is deprecated and will be removed in a future version.r!   MIN        r#   monthdayr$   z3/1/2005z:'d' is deprecated and will be removed in a future version.d2007-01-01 09:00:00.001  	   r     ms2007-01-01 09:00:00.00101  usz"Must supply freq for ordinal value )ordinalzInvalid frequency: Xz2007-1-1X)r   nowr   r   Daytmassert_produces_warningr   r'   r(   r)   )r*   i1i2i4i3r,   expecteds          r-   test_construction(TestPeriodConstruction.test_constructionW   s\   JS)Jxx F%F^xxF%xxZZS!HLLN-xx ZZS!HLLN-ZZ&xxxxF'L''cBU+B CxxQAC8JS)xxJ''cBT<B Cxx-.(4Aq!Q=DI~~3$?~~/0(4Aq!Q=DI~~5DA~~2]]:S16" 2 %]]:S1:C( 21A CB CB& 21 21s0   I!I#
I4=J
I #
I14
J
Jc                     [         R                  " [        SS9   [        SSS9  S S S 5        [         R                  " [        SS9   [        SS5        S S S 5        g ! , (       d  f       N== f! , (       d  f       g = f)Nzpass as a string insteadr!   r[   )Minr`   r2   z
2006-12-31)wr`   )r'   r(   	TypeErrorr   r*   s    r-   test_tuple_freq_disallowed1TestPeriodConstruction.test_tuple_freq_disallowed   sY    ]]9,FG6
+ H ]]9,FG<* HG HG HGs   AA-
A*-
A;c                     [        S5      n[        USS9nUR                  5       nX1:X  d   eUR                  n[        USS9nUR                  5       nUR                  U:X  d   eg )Nz2022-04-20 09:23:24.123456789nsr2   )r   r   to_timestampasm8)r*   tsperrtdt64per2rt2s          r-   &test_construction_from_timestamp_nanos=TestPeriodConstruction.test_construction_from_timestamp_nanos   si    67Rd# xx wwd&!xx4rJ   r$   )ri   rl   r   c                    [        [         R                  R                  US9n[        X!S9nUR                  UR                  :X  d   eUR
                  UR
                  :X  d   eUR                  UR                  :X  d   eUR                  UR                  :X  d   eUR                  UR                  :X  d   eUR                  UR                  :X  d   eg )Nunitr2   )
r   r\   valuer   r#   rb   rc   hourminutesecond)r*   r$   r   r   s       r-   $test_construction_from_min_timestamp;TestPeriodConstruction.test_construction_from_min_timestamp   s     y}}**6R# xx277"""yyBHH$$$ww"&&   xx277"""zzRYY&&&zzRYY&&&rJ   c                    [         R                  " [        SSS9   [        SSS9n[        SSS9nXR	                  S5      :X  d   e[        SSS9nXR	                  S5      :X  d   e[        S	SS9nXR	                  S5      :X  d   e[        SS
S9nX:X  d   e[        SSSSS9n[        S	SS9nX:X  d   e S S S 5        g ! , (       d  f       g = f)Nz'b' is deprecatedFr"   raise_on_extra_warnings3/10/12Br2   rP   z3/11/12z3/12/12b  r_   
   ra   )rr   rs   r   r   asfreq)r*   rt   ru   rw   s       r-   test_construction_bday-TestPeriodConstruction.test_construction_bday   s    ''"5u
 	,B	,B3'''	,B3'''	,B3'''	,B8O8T=B	,B8O8!
 
 
s   BB>>
Cc                    [        SSSS9n[        SSS9nX:X  d   e[        SSSS9n[        SSS9nX:X  d   e[        S	5      n[        SSSS9n[        S
5      nX:X  d   eX:X  d   e[        S5      nX:X  d   e[        S5      nX:X  d   e[        S5      nX:X  d   e[        S5      nX:X  d   e[        S5      nX:X  d   e[        S5      nX:X  d   e[        S5      nUR                  S:X  d   e[        S5      nX:X  d   eg )Nr^   r`   rZ   r#   quarterr$   rV   r2   r_   z9/1/20052005Q12005q105Q105q11Q20051q20051Q051q054Q1984i  4q1984r   r#   )r*   rt   ru   rw   lowers        r-   test_construction_quarter0TestPeriodConstruction.test_construction_quarter   s   qs3JS)xxqs3JS)xxHqs3HxxxxF^xxv{{Hxxx {{F^xxv{{Hww$x {{rJ   c                    [        SSS9n[        SSS9nX!:X  d   e[        SSS9nX!:X  d   e[        SSS9nX!:X  d   e[        SSS9nUR                  S:X  d   e[        [        SS	S	5      SS9n[        SSS9nX#:X  d   e[        [        SS	S	5      SS9n[        [        SS	S	5      SS9n[        [        R
                  " S
5      SS9n[        SSS9n[        SSS9nX#:X  d   eX$:X  d   eX%:X  d   eX&:X  d   eg )N2007-01rW   r2   200701rm   rn   r$   I  rf   r`   
2007-01-012007-01-01 00:00:002007-01-01 00:00:00.000)r   r#   r   r   np
datetime64r*   rx   rt   ru   rw   rv   i5s          r-   test_construction_month.TestPeriodConstruction.test_construction_month   s   )#.H3'~~H3'~~F%~~F-ww%HT1a(s3H3'xxDq!$3/HT1a(s3BMM,/c:)4-C8xxxxxxxxrJ   c                 ~   [        S[        R                  " 5       S9[        SSS9:X  d   e[        S[        R                  " 5       S9[        SSS9:X  d   e[        S[        R                  " 5       S9[        SSS9:X  d   e[        R
                  " [        [        S9   [        S[        R                  " 5       S9[        SSS9:X  d   e S S S 5        [        S[        R                  " 5       S9[        SS	S9:X  d   e[        S
S[        R                  " SS9S9[        S
SSS9:X  d   e[        S
S[        R                  " SS9S9[        S
SSS9:X  d   e[        S
SS[        R                  " 5       S9[        S
SSS	S9:X  d   e[        R
                  " [        [        S9   [        SSS[        R                  " 5       S9[        SSSSS9:X  d   e S S S 5        [        SSS9n[        S
SS[        R                  " S5      S9U:X  d   e[        S
SSSS9U:X  d   e[        R
                  " [        [        S9   [        SSS[        R                  " S5      S9[        SSSSS9:X  d   e S S S 5        [        S[        R                  " 5       S9[        SSS9:X  d   e[        S[        R                  " 5       S9n[        SSS9nX#:X  d   eUR                  S:X  d   eUR                  S:X  d   e[        [        SSS5      SS9n[        SSS9nX#:X  d   e[        [        SSS5      SS9n[        [        SSS5      SS9n[        [        R                   " S5      SS9n[        SSS9n[        SSS9nX#:X  d   eX$:X  d   eX%:X  d   eX&:X  d   e[        S 5      n[        [        SSSS!S"S"S#5      S$S9nX!:X  d   e[        S S$S9nX!:X  d   e[        S%5      n[        [        SSSS!S"S"S&5      S'S9nX!:X  d   e[        S%S'S9nX!:X  d   eg ! , (       d  f       GND= f! , (       d  f       GNN= f! , (       d  f       GN= f)(NrV   r2   rW   rX   rY   r!   r   r   rP   r^   r`   r   r   r   rZ   r   r_   ra   r   r   z
2005-03-013D3Brm   r   r   rf   r   r   r   r   re   rg   r   rh   ri   rj   rk   rl   )r   r   MonthEndYearEndrr   rs   FutureWarningbday_msgBusinessDayrq   
QuarterEndBDayr#   r   r   r   r   r   s          r-   test_period_constructor_offsets6TestPeriodConstruction.test_period_constructor_offsets  s2   jw'7'7'9:fS?
 
 	
 
 f7??#45S9QQQQf7#3#3#56&c:RRRR''XF)'*=*=*?@FE    G igkkm4ys8SSSSqw'9'9'K
qs34 	4 4 qw'9'9'K
qs34 	4 4 4qagkkmDQACI
 
 	
 
 ''XFt1"7<<>JfO    G
 ,T24qagkk!nEQQQ4qad;xGGG''XFt1"7<<?KvP    G
 f7#3#3#56&c:RRRRF)9)9);<F-xxww%ww%HT1a(s3H3'xxDq!$3/HT1a(s3BMM,/c:)4-C8xxxxxxxx-.(4Aq!Q=DI~~3$?~~/0(4Aq!Q=DI~~5DA~~A GF  GF GFs$   ,P	#0P;1P-	
P
P*-
P<c                    Sn[         R                  " [        US9   [        [        R
                  " 5       5        S S S 5        [         R                  " [        US9   [        [        R
                  " 5       R                  5       5        S S S 5        Sn[         R                  " [        US9   [        SSS9  S S S 5        Sn[         R                  " [        US9   [        SSS9  S S S 5        S	n[         R                  " [        US9   [        S
SSS9  S S S 5        Sn[         R                  " [        US9   [        SS9  S S S 5        Sn[         R                  " [        US9   [        SS5        S S S 5        [        (       a  SnOSn[         R                  " [        US9   [        SS5        S S S 5        Sn[         R                  " [        US9   [        SS5        S S S 5        g ! , (       d  f       GN= f! , (       d  f       GNx= f! , (       d  f       GN\= f! , (       d  f       GN@= f! , (       d  f       GN#= f! , (       d  f       GN= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       g = f)Nz#Must supply freq for datetime valuer!   rO   g?rP   r2   zOrdinal must be an integerr   z?Only value or ordinal but not both should be given but not bothr   r`   )rn   r   r$   z%If value is None, freq cannot be None)rb   z1^Given date string "-2000" not likely a datetime$z-2000rY   z5day 0 must be in range 1..31 for month 1 in year 1: 0zday is out of range for month0z/Unknown datetime string format, unable to parsez	1/1/-2000)	r'   r(   r)   r   r   rp   r   r   r
   r5   s     r-   test_invalid_arguments-TestPeriodConstruction.test_invalid_arguments]  s   3]]:S18<<>" 2]]:S18<<>&&() 2 C]]:S13S! 2*]]:S13S) 2O]]:S11AC0 2 6]]:S1O 2 B]]:S17C  25IC1C]]>53 6?]]>5;$ 65; 2111 21 21 21 21 21 65 65sk   G(-G:,HHH07
I$I"I%I6(
G7:
H	
H
H-0
H?
I
I"%
I36
Jc                     [        SSS9n[        SSSS9U:X  d   e[        S 5      [        L d   e[        SSS9n[        US	S9n[        S
S	S9nX4:X  d   eg )Nr   2Mr2   rf   r`   )r#   rb   r$   r   rP   rY   2007r   r   )r*   rx   presultexps        r-   test_constructor_corner.TestPeriodConstruction.test_constructor_corner  se    )$/4qt4@@@d|s"""<c*$V#&}}rJ   c                    [        S5      nUR                  S:X  d   e[        S5      nUR                  S:X  d   e[        S5      nUR                  S:X  d   e[        S5      nUR                  S:X  d   e[        S	5      nUR                  S
:X  d   e[        S5      nUR                  S:X  d   e[        S5      nUR                  S:X  d   eg )Nr   rP   z2007-01-01 07hz2007-01-01 07:10r\   z2007-01-01 07:10:15sz2007-01-01 07:10:15.123ri   z2007-01-01 07:10:15.123000rl   z2007-01-01 07:10:15.123400)r   r$   r*   r   s     r-   test_constructor_infer_freq2TestPeriodConstruction.test_constructor_infer_freq  s    < vv}}?#vv}}%&vv()vv}},-vv~~ /0vv~~/0vv~~rJ   c                 R   [        SSS9n[        SSS9nUR                  UR                  :X  d   eUR                  S:X  d   eUR                  S:X  d   eUR                  [        R
                  " S5      :X  d   eUR                  [        R
                  " 5       :X  d   eUS-   R                  UR                  S-   :X  d   eSU-   R                  UR                  S-   :X  d   eUS-
  R                  UR                  S-
  :X  d   eS	U-   R                  UR                  S-
  :X  d   eg )
N19892Yr2   rY   z2Y-DECY-DECr   r`   )r   rn   freqstrr$   r   r   )r*   result1result2s      r-   test_multiples%TestPeriodConstruction.test_multiples  s   d+c*'//111(***')))||wq1111||w0000!$$!(;;;;G$$!(;;;;!$$!(;;;;W%%1)<<<<rJ   rb   c                     SU 3n[        SUS9nS[        U5      ;   d   eUR                  SSS9n[        XBS9nXS:X  d   eUR                  SSS9n[        XBS9nXS:X  d   eg )NzQ-1989Q3r2   rP   endhowr   )r   strr   r*   rb   r$   r   stampr   s         r-   test_period_cons_quarterly1TestPeriodConstruction.test_period_cons_quarterly  s}     E7|XD)3s8###  % 05$xx  5 15$xxrJ   c                     SU 3n[        SUS9nUR                  SSS9[        SS9-   n[        XBS9nXSS	-   :X  d   e[        U[         5      (       d   eg )
NzY-r   r2   rP   r   r      daysr`   )r   r   r   
isinstancer   s         r-   test_period_cons_annual.TestPeriodConstruction.test_period_cons_annual  se     E7|V$'  % 09"3EE5$!G||!V$$$$rJ   rc   numr      c                     SU 3nSU 3n[        X4S9n[        USS9R                  U5      nXV:X  d   e[        U[         5      (       d   eg )Nz2011-02-zW-r2   rP   )r   r   r   )r*   r   rc   daystrr$   r   rx   s          r-   test_period_cons_weekly.TestPeriodConstruction.test_period_cons_weekly  s[     C5!C5z*&s+2248!!!&&))))rJ   c                     [        S5      nUR                  R                  S:X  d   e[        S5      nUR                  R                  S:X  d   eSn[        R                  " [
        US9   [        S5        S S S 5        g ! , (       d  f       g = f)Nz2017-01-23/2017-01-29W-SUNz2017-01-24/2017-01-30zW-MONz%Could not parse as weekly-freq Periodr!   z2016-01-23/2017-01-29)r   r$   r   r'   r(   r)   )r*   r   r,   s      r-   test_parse_week_str_roundstrip5TestPeriodConstruction.test_parse_week_str_roundstrip  sp    ,-xx7***,-xx7***5]]:S1*+ 211s   *A??
Bc                     [        SSS9n[         R                  " UR                  UR                  S9nX:X  d   e[	        U[         5      (       d   eg )N2011-01rW   r2   )r   _from_ordinalrn   r$   r   r*   r   ress      r-   test_period_from_ordinal/TestPeriodConstruction.test_period_from_ordinal  sD    93'""199166:xx#v&&&&rJ   rY   rW   rP   r   c                     [        SUS9nU[        L d   e[        SSU-   S9nU[        L d   e[        SSU-   S9nU[        L d   eg )Nr   r2   23r   )r*   r$   r   s      r-   'test_construct_from_nat_string_and_freq>TestPeriodConstruction.test_construct_from_nat_string_and_freq  sR    U&czzUt,czzUt,czzrJ   c                 $   [        SSS9nU[        L d   e[        [        SS9nU[        L d   e[        [        SS9nU[        L d   e[        [        SS9nU[        L d   e[        S5      nU[        L d   e[        [        5      nU[        L d   eg )Nnatr  r2   rP   r   1D1hr   )r   r   r   r   s     r-   test_period_cons_nat+TestPeriodConstruction.test_period_cons_nat  s    5w'Cxx4c"Cxx4d#Cxx4f%Cxx5MCxx4LCxxrJ   c                    [        SSS9n[        SSS9nUR                  UR                  :X  d   eUR                  [        R                  " S5      :X  d   eUR
                  S:X  d   eUR                  [        R                  " 5       :X  d   eUR
                  S:X  d   eUS-   nUR                  US-   R                  :X  d   eUR                  UR                  :X  d   eUR
                  S:X  d   eUS-
  nUR                  US-
  R                  :X  d   eUR                  UR                  :X  d   eUR
                  S:X  d   eSn[        R                  " [        US9   [        SS	S9  S S S 5        S
n[        R                  " [        US9   [        SSS9  S S S 5        g ! , (       d  f       N== f! , (       d  f       g = f)Nr  3Mr2   rW   r_   r`   z;Frequency must be positive, because it represents span: -3Mr!   z-3Mz:Frequency must be positive, because it represents span: 0M0M)	r   rn   r$   r   r   r   r'   r(   r)   )r*   p1p2r   r,   s        r-   test_period_cons_mult,TestPeriodConstruction.test_period_cons_mult  s   ID)IC(zzRZZ'''ww'**1----zzT!!!ww'**,,,,zzS   a~~"q&!1!1111{{bgg%%%~~%%%a~~"q&!1!1111{{bgg%%%~~%%%K]]:S195) 2 K]]:S194( 21	 21 21s   F!F2!
F/2
G c                    [        SSS9[        SSS9[        SSS94[        SSS9[        SSS9[        SSS94/nU GH.  u  p#nUR                  UR                  :X  d   eUR                  UR                  :X  d   eUR                  [        R                  " S5      :X  d   eUR
                  S	:X  d   eUR                  [        R                  " S5      :X  d   eUR
                  S	:X  d   eUR                  [        R                  " 5       :X  d   eUR
                  S:X  d   eUS-   nUR                  US-   R                  :X  d   eUR                  UR                  :X  d   eUR
                  S	:X  d   eUS-   nUR                  US-   R                  :X  d   eUR                  UR                  :X  d   eUR
                  S	:X  d   eUS-
  nUR                  US-
  R                  :X  d   eUR                  UR                  :X  d   eUR
                  S	:X  d   eUS-
  nUR                  US-
  R                  :X  d   eUR                  UR                  :X  d   eUR
                  S	:X  a  GM/   e   S
n[        R                  " [        US9   [        SSS9  S S S 5        [        R                  " [        US9   [        SSS9  S S S 5        [        R                  " [        US9   [        SSS9  S S S 5        [        R                  " [        US9   [        SSS9  S S S 5        Sn[        R                  " [        US9   [        SSS9  S S S 5        [        R                  " [        US9   [        SSS9  S S S 5        Sn[        R                  " [        US9   [        SSS9  S S S 5        Sn[        R                  " [        US9   [        SSS9  S S S 5        g ! , (       d  f       GNJ= f! , (       d  f       GN0= f! , (       d  f       GN= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       g = f)Nr  r  r2   1h1Dr   r`   r      25hz<Frequency must be positive, because it represents span: -25hr!   z-1D1hz-1h1Dz:Frequency must be positive, because it represents span: 0D0D0hzInvalid frequency: 1W1D1W1DzInvalid frequency: 1D1W1D1W)	r   rn   r$   r   Hourr   r'   r(   r)   )r*   r   r  r  p3r   r,   s          r-   test_period_cons_combined0TestPeriodConstruction.test_period_cons_combined$  s    yv.yv.ys+ qv.qv.qs+
 JBB::+++::+++77gll2....::&&&77gll2....::&&&77glln,,,::$$$!VF>>b2g%6%6666;;"'')))>>U***!VF>>b2g%6%6666;;"'')))>>U***!VF>>b2g%6%6666;;"'')))>>U***!VF>>b2g%6%6666;;"'')))>>U***? B M]]:S197+ 2]]:S197+ 2]]:S117+ 2]]:S117+ 2 K]]:S196* 2]]:S116* 2 (]]:S196* 2']]:S196* 21) 21111111 2111
 21 21s`   O7O+#O=P=P )P1QQ
O(+
O:=
P
P 
P.1
P?
Q
Q!)z1970/01/01 z2020-12-31 z1981/09/13 r   )z00:00:00z00:00:01z23:59:59z12:00:59zsec_float, expected))z
.000000001r`   )z
.000000999  )z
.123456789i  )z
.999999999r)  )z
.999999000r   )z.999999001123r`   )z.999999001123456r`   )z.999999001123456789r`   c                 X    [        X-   U-   5      R                  R                  U:X  d   eg )N)r   
start_time
nanosecond)r*   rc   r   	sec_floatrx   s        r-   "test_period_constructor_nanosecond9TestPeriodConstruction.test_period_constructor_nanosecondk  s*    & cj9,-88CCxOOOrJ      c                 B    [        SU-   SS9nUR                  U:X  d   eg )Ni ' 1hr   )r   r   )r*   r   r   s      r-   test_period_large_ordinal0TestPeriodConstruction.test_period_large_ordinal  s$     7T>5vv~~rJ   8ignore:Period with BDay freq is deprecated:FutureWarningzfreq,freq_depr))2W2w)z2W-FRIz2w-fri)2D2d)2B2bc                     SUSS   S3n[         R                  " [        USS9   [        SUS9nS S S 5        [        SUS9nWU:X  d   eg ! , (       d  f       N!= f)N'r`   z8' is deprecated and will be removed in a future version.Fr   2016-03-01 09:00r2   )rr   rs   r   r   )r*   r$   	freq_deprr,   r   rx   s         r-   %test_period_deprecated_lowercase_freq<TestPeriodConstruction.test_period_deprecated_lowercase_freq  so     	!"VW 	 ''#u
 .Y?F

 ,48!!!
 
s   A


ArB   N)%rC   rD   rE   rF   rS   ry   r   r   r'   rG   rH   r   r   r   r   r   r   r   r   r   r	   r   r   r   ranger   r  r
  r  r  r  r'  r.  r3  filterwarningsr@  rI   rB   rJ   r-   rL   rL   K   s
   	!A)F+  [[V%78' 9' (!F8FP %D
0= [[Wf- . [[Wf-% .% [[UD)[[UE"bM2* 3 **,' [[V%9: ;&)<E+N [[U$QR[[V%UV[[
	
P W S P
 [[VU2Y/ 0 [[B [[H"	"rJ   rL   c                      \ rS rSrS rS rS r\R                  R                  S5      S 5       r
S r\R                  R                  S/ S	Q5      \R                  R                  S
/ SQ5      S 5       5       r\R                  R                  SS5      \R                  R                  S5      S 5       5       rS rS rSrg)TestPeriodMethodsi  c                 T    [        S5      n[        R                  " X!5      nX2:X  d   eg )N2000Q1)r   rr   round_trip_pickle)r*   	temp_filer   new_ps       r-   test_round_trip!TestPeriodMethods.test_round_trip  s&    8$$Q2zzrJ   c                 T   [        [        SSS95      [        [        SSS95      :X  d   e[        [        SSS95      [        [        SSS95      :w  d   e[        [        SSS95      [        [        SSS95      :w  d   e[        [        SSS95      [        [        SSS95      :w  d   eg )	Nr  rW   r2   
2011-01-01rP   r  r   z2011-02)hashr   r   s    r-   	test_hashTestPeriodMethods.test_hash  s    F93/0D	PS9T4UUUUF<c23tF9SV<W7XXXXF9401T&QU:V5WWWWF93/0D	PS9T4UUUUrJ   c                 P   [        SSS9nUR                  SS9[        S5      :X  d   e[        S5      [        SS	S
9-
  nUR                  SS9U:X  d   e[        SSS9nUR                  SS9[        S5      :X  d   e[        S5      [        SS	S
9-
  nUR                  SS9U:X  d   eg )Nr  rW   r2   Sr   rN  z
2011-02-01r`   rl   r   Er  z
2011-04-01)r   r   r   r   )r*   r   rx   s      r-   test_to_timestamp_mult(TestPeriodMethods.test_to_timestamp_mult  s    93'~~#~&)L*AAAA\*Yqt-DD~~#~&(22294(~~#~&)L*AAAA\*Yqt-DD~~#~&(222rJ   r5  c                    [        SSS9nUR                  SS9n/ SQnU H-  nX!R                  SUS9:X  d   eX!R                  SUS9:X  a  M-   e   UR                  S	S9n/ S
QnU H-  nXQR                  SUS9:X  d   eXQR                  SUS9:X  a  M-   e   / SQnS nU Hj  n[        SUS9nUR                  5       R                  U5      n	X:X  d   eUR                  UR                  SS9:X  d   eUR                  U" U5      :X  a  Mj   e   [        SSS9nUR                  SSS9n	[        SSS5      [        SSS9-
  n
X:X  d   eUR                  SSS9n	X:X  d   eUR                  SSS9n	[        SSS5      [        SSS9-
  n
X:X  d   eUR                  SSS9n	X:X  d   eUR                  SS9n	[        SSS5      [        SSS9-
  n
X:X  d   e[        SSS5      n
UR                  SSS9n	X:X  d   eUR                  SSS9n	X:X  d   eUR                  SSS9n	X:X  d   eUR                  SSS9n	X:X  d   eUR                  SSS9n	X:X  d   eg )Nr[   rY   r2   rS  r   )r   StarTBEGInrP   r   rT  )er   FINIsH)	rY   rZ   rW   Wr   rP   r   r|   r   c                     U R                   S:X  a   U R                  [        SS9-   [        SS9-
  $ [        X R                   -   R                  R                  S-
  SS9$ )Nr   r`   r   )microsecondsrl   r   )r$   r+  r   r   _value)r   s    r-   _ex0TestPeriodMethods.test_to_timestamp.<locals>._ex  sP    vv}||iQ&77)QR:SSSa&&j44;;a?dKKrJ   1985r   r   i  r`   rl   r   3hr\   2mini  startr   5s)r   r   	to_periodr+  end_timer   r   r   )r*   r   start_tsaliasesaend_tsfrom_lstr`  fcoder   rx   s              r-   test_to_timestamp#TestPeriodMethods.test_to_timestamp  s    6$>>c>*)A~~cq~9999~~d~:::: 
 C((A^^CQ^7777^^Da^8888  C	L
 EvE*A^^%//6F;;<<1>>c>#::::::Q'''  6$/T1a(9QT+BB!!!%0!!!51T1a(9QT+BB!!!E2!!!E*T1a(9QT+BB!!!D!Q'1!!!73!!!1!!!'2!!!'2!!!rJ   c                     [         R                  " [        [        S9   [	        SS5      nUR                  SSS9nS S S 5        [        S5      [        SSS	9-
  nWU:X  d   eg ! , (       d  f       N-= f)
Nr!   
1990-01-05r   rT  r   
1990-01-06r`   rl   r   )rr   rs   r   r   r   r   r   r   r*   r   r   rx   s       r-   test_to_timestamp_business_end0TestPeriodMethods.test_to_timestamp_business_end  si    ''XFs+C%%cs%3F G \*Yqt-DD!!! GFs   A""
A0zts, expected)	)z1970-01-01 00:00:00r   )z1970-01-01 00:00:00.000001r`   )z1970-01-01 00:00:00.00001r   )z1970-01-01 00:00:00.499i8 )z1999-12-31 23:59:59.999iX> )z1999-12-31 23:59:59.999999?B )z2050-12-31 23:59:59.5i  )z2050-12-31 23:59:59.500001i! )z2050-12-31 23:59:59.123456i@ r$   )Nrl   r   c                 V    [        U5      R                  US9R                  nXB:X  d   eg )Nr2   )r   r   microsecond)r*   r   rx   r$   r   s        r-   test_to_timestamp_microsecond/TestPeriodMethods.test_to_timestamp_microsecond  s-    " ((d(3??!!!rJ   zstr_ts,freq,str_res,str_freq))zJan-2000N2000-01rW   )
2000-12-15Nr}  rP   )2000-12-15 13:45:26.123456789r   r~  r   )r~  rl   2000-12-15 13:45:26.123456rl   )r  Nr  rl   )r~  ri   2000-12-15 13:45:26.123ri   )r  Nr  ri   )2000-12-15 13:45:26r   r  r   )r  r\   z2000-12-15 13:45r\   )r  r   z2000-12-15 13:00r   )r}  rY   2000r   )r}  rZ   2000Q4Q-DEC)r}  rW   z2000-12rW   )r}  r\  z2000-12-11/2000-12-17r  )r}  rP   r}  rP   )r}  r   r}  r   c                 h    [        XS9n[        U5      U:X  d   e[        U5      SU SU S3:X  d   eg )Nr2   zPeriod('z', 'z'))r   r   repr)r*   str_tsr$   str_resstr_freqr   s         r-   	test_reprTestPeriodMethods.test_repr  sA    < 6%1v   AwHWIT(2>>>>rJ   c                 T    [        SSS9n[        [        5      [        U5      ;   d   eg )Nr  rW   r2   )r   r  r   r   s     r-   test_repr_natTestPeriodMethods.test_repr_nat=  s$    5s#CyDG###rJ   c                 x    [        SSS9nUR                  S5      nUS:X  d   e[        U[        5      (       d   eg )Nz2000-1-1 12:34:12r   r2   z%Y-%m-%d %H:%M:%Sz2000-01-01 12:34:12)r   strftimer   r   r  s      r-   test_strftimeTestPeriodMethods.test_strftimeA  s@    &S1jj,-++++#s####rJ   rB   N)rC   rD   rE   rF   rK  rP  rU  r'   rG   rC  ro  ru  rH   rz  r  r  r  rI   rB   rJ   r-   rE  rE    s    
V	3 [[B="="~" [[
	
 [[V%78" 9" [[&	
4 [[B?5:?
$$rJ   rE  c                      \ rS rSrSr\R                  R                  S/ SQ5      S 5       rS r	S r
\R                  R                  S5      S	 5       r\S
 5       r\R                  R                  S\R                   S4\R"                  S4/5      \R                  R                  SSS/5      S 5       5       r\R                  R                  S\R                   S4\R"                  S4/5      \R                  R                  SSS/5      S 5       5       rS rS rS rS rS rS rS rS rS rS rS rS rS r S r!g!)"TestPeriodPropertiesiI  z5Test properties such as year, month, weekday, etc....r$   r  c                 .   [        SUS9nUR                  (       d   e[        UR                  [        5      (       d   e[        SUS9nUR                  (       a   e[        SUS9nUR                  (       d   e[        SUS9nUR                  (       a   eg )Nz2000-01-01 00:00:00r2   z1999-01-01 00:00:00z2004-01-01 00:00:00z2100-01-01 00:00:00)r   is_leap_yearr   bool)r*   r$   r   s      r-   test_is_leap_year&TestPeriodProperties.test_is_leap_yearL  s     (t4~~~!..$////(t4>>!!(t4~~~(t4>>!!>rJ   c                    [        SSS9nUR                  S:X  d   eUR                  S:X  d   e[        U[         5      (       d   e[        SSS9nUR                  S:X  d   eUR                  S:X  d   e[        U[         5      (       d   e[        SSS9nUR                  S:X  d   eUR                  S	:X  d   e[        U[         5      (       d   eg )
Nr   r  r        r_   rW      )r   r#   r   r   rb   r   s     r-    test_quarterly_negative_ordinals5TestPeriodProperties.test_quarterly_negative_ordinals\  s    2G,vv~~yyA~~!V$$$$2G,vv~~yyA~~!V$$$$2C(vv~~ww"}}!V$$$$rJ   c                     [        SSS9nUR                  [        R                  " 5       :X  d   eUR                  S:X  d   eg )Nr[   r|   r2   r\   )r   r$   r   Minuter   )r*   rt   s     r-   test_freq_str"TestPeriodProperties.test_freq_strl  s9    F'ww'..****zzU"""rJ   r5  c           
      
   / SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ S	QS
.	n[         nUR                  5        H  u  p4U H[  n[        R                  " [        US9   [        SUS9  S S S 5        [        R                  " [        US9   [        SUS9  S S S 5        M]     [        SUS9n[        SUS9n[        U[
        5      (       d   e[        U[
        5      (       a  M   e   g ! , (       d  f       N= f! , (       d  f       M  = f)N)MTHMONTHMONTHLYMthrb   monthly)BUSBUSINESS
BUSINESSLYWEEKDAYbus)DAYDLYDAILYrq   DlyDaily)HRHOURHRLYHOURLYhrr%  HRly)r   MINUTEMINUTELYminutely)secSECSECONDSECONDLYr   )MILLISECONDMILLISECONDLYmillisecond)MICROSECONDMICROSECONDLYry  )
NANOSECONDNANOSECONDLYr,  )	rW   r   rP   r   r\   r   ri   rl   r   r!   r>  r2   r`   r   )r   itemsr'   r(   r)   r   r   )r*   casesr,   r   freqsr$   r  r  s           r-   test_period_deprecated_freq0TestPeriodProperties.test_period_deprecated_freqq  s    
 HD?G??AA>

 #++-JC]]:S9-D9 :]]:S9140 :9  *5B,Bb&))))b&)))) (9999s   C"C3"
C03
Dc           
          [        U R                  U R                  U R                  U R                  U R
                  U R                  U-   SS9$ )Nrl   )r#   rb   rc   r   r   r   r$   )r   r#   rb   rc   r   r   r   )boundoffsets     r-   _period_constructor(TestPeriodProperties._period_constructor  sA    ++		<<<<&(
 	
rJ   zbound, offsetr   r`   period_propertyr+  rh  c                 @   [         R                  X5      n[        XC5        [        R                  " UR
                  [        S5      S9nUS:X  a  US:X  a	  [        nSnO[        nSn[        R                  " XgS9   [        XS5        S S S 5        g ! , (       d  f       g = f)Nri   r2   rh  r`   zvalue too largezOut of bounds microsecondr!   )r  r  getattrr   r  r   r   OverflowErrorr   r'   r(   )r*   r  r  r  periodr   errr,   s           r-   $test_outer_bounds_start_and_end_time9TestPeriodProperties.test_outer_bounds_start_and_end_time  sz     &99%H(""5;;Yt_Ej(Vq[C#C%C-C ]]3*C) +**s   :B
Bc                 "   [         R                  X* 5      nUR                  5       R                  SS9n[	        XC5      R                  SS9U:X  d   eX[        SSS9-  -
  R                  S5      n[	        XC5      R                  S5      U:X  d   eg )Nr   r2   r`   r   )r  r  r   roundr  r   floor)r*   r  r  r  r  rx   s         r-   $test_inner_bounds_start_and_end_time9TestPeriodProperties.test_inner_bounds_start_and_end_time  s     &99%I&&(..C.8v/5535?8KKKYqs%;;;BB3Gv/55c:hFFFrJ   c                 t   / SQn[        SSS5      nU H  n[        SUS9nUR                  U:X  a  M   e   [        R                  " [
        [        S9   [        SSS9R                  [        SSS5      :X  d   e S S S 5        [        SS	S9R                  [        S
SS5      :X  d   eg ! , (       d  f       N4= f)N)rY   rZ   rW   rP   r   r\   r   r   r`   2012r2   r!   r   r   r\  i  r      )r   r   r+  rr   rs   r   r   )r*   freq_lstxpfr   s        r-   test_start_time$TestPeriodProperties.test_start_time  s    8dAq!AvA&A<<2%%%  ''XF&s+66(4A:NNNN Gf3'22htR6LLLL GFs   &B))
B7c           
         [        SSS9n[        SSSSSSS	5      nUR                  U:X  d   e[        SS
S9n[        SSSSSSS	5      nUR                  U:X  d   e[        SSS9n[        SSSSSSS	5      nUR                  U:X  d   e[        SSS9n[        SSSSSSS	5      nUR                  U:X  d   e[        SSS9n[        SSSSSSS	5      nUR                  U:X  d   e[        R                  " [
        [        S9   [        SSS9n[        SSSSSSS	5      nUR                  U:X  d   e S S S 5        [        SSS9n[        SSSSSSS	5      nUR                  U:X  d   e[        SSS9n[        SSSSSSS	5      nUR                  U:X  d   e[        SSS9n[        SSSSSSS	5      nUR                  U:X  d   e[        SSS9n[        SSSSSSS	5      nUR                  U:X  d   eg ! , (       d  f       N= f)Nr  rY   r2   r   r         ;   rw  rZ   r_   rW   r`   rP   r   r   r!   r   r   r\  15D   r  r  )r   r   rh  rr   rs   r   r   r*   r   r   s      r-   test_end_time"TestPeriodProperties.test_end_time  s.   6$b"b"b&9zzS   6$aRR8zzS   6$aRR8zzS   6$aBB7zzS   6$aAr2v6zzS   ''XFvC(AD!QBF;C::$$$ G
 6$aBB7zzS    6&aRR8zzS   6'aAr2v6zzS   6'aAr2v6zzS   ) GFs   ?.G++
G9c                     [         R                  " [        [        S9   [	        SS5      nUR
                  nS S S 5        [        S5      [        SSS9-
  nWU:X  d   eg ! , (       d  f       N-= f)Nr!   rr  r   rs  r`   rl   r   )rr   rs   r   r   r   rh  r   r   rt  s       r-   test_end_time_business_friday2TestPeriodProperties.test_end_time_business_friday  s]    ''XFs+C\\F G \*Yqt-DD!!! GFs   A
A,c           	      b    [        SS5      n[        SSSSSSS5      nUR                  U:X  d   eg )	Nz2013-1-1zW-SATi  r`      r  r  rw  )r   r   rh  r  s      r-   test_anchor_week_end_time.TestPeriodProperties.test_anchor_week_end_time  s6    :w'aBB7zzS   rJ   c                 <    [        SSS9nUR                  S:X  d   eg )NrY   rf   )r$   r#   r   )r*   a_dates     r-   test_properties_annually-TestPeriodProperties.test_properties_annually  s     St,{{d"""rJ   c                     [        SSSS9n[        SSSS9n[        SSSS9n[        S5       H9  nXU4 H.  nXT-   R                  S:X  d   eXT-   R                  US-   :X  a  M.   e   M;     g )Nr  rf   r`   )r$   r#   r   zQ-JANzQ-JUNr_   )r   rB  qyearr   )r*   
qedec_date
qejan_date
qejun_datexqds         r-   test_properties_quarterly.TestPeriodProperties.test_properties_quarterly  sw    tQ?
tQ?
tQ?
qA!z:~~---''1q5000 ; rJ   c                    [        SSSS9n[        S5       H  nX-   nUR                  S:X  d   eSUS-   s=::  a  S::  a  O  OUR                  S:X  d   eOqSUS-   s=::  a  S::  a  O  OUR                  S	:X  d   eOKS
US-   s=::  a  S::  a  O  OUR                  S:X  d   eO%SUS-   s=::  a  S::  a  O  OUR                  S:X  d   eUR                  US-   :X  a  M   e   g )NrW   rf   r`   )r$   r#   rb   r  r_   r     r      rg   r   r   )r   rB  r#   r   rb   )r*   m_dater  m_ival_xs       r-   test_properties_monthly,TestPeriodProperties.test_properties_monthly  s    St15rAzH==D(((AEQ''1,,,a!eq''1,,,a!eq''1,,,q1u""''1,,,>>QU*** rJ   c                 2   [        SSSSS9nUR                  S:X  d   eUR                  S:X  d   eUR                  S:X  d   eUR                  S:X  d   eUS-
  R                  S:X  d   eUR
                  S:X  d   e[        SSS	SS9R
                  S
:X  d   eg )Nr\  rf   r`   r  r$   r#   rb   rc   4   r  r   r      )r   r#   r   rb   weekdays_in_month)r*   w_dates     r-   test_properties_weekly+TestPeriodProperties.test_properties_weekly  s    St1!<{{d"""~~"""||q   {{a
  B&&&##r)))3T:HHBNNNrJ   c                    [        SSSSS9nUR                  S:X  d   eUR                  S:X  d   eUR                  S:X  d   eUR                  S:X  d   eUS-
  R                  S:X  d   eUR
                  S:X  d   e[        SSS	SS9nUR
                  S
:X  d   e[        n[        R                  " [        US9   [        SSSSS9  S S S 5        g ! , (       d  f       g = f)Nr\  rf   r`   r  r  r  r  r   r   r  r!   WK)
r   r#   r   rb   r  r  r   r'   r(   r)   )r*   r  r   r,   s       r-   test_properties_weekly_legacy2TestPeriodProperties.test_properties_weekly_legacy(  s    St1!<{{d"""~~"""||q   {{a
  B&&&##r)))#Dq9  B&&&"]]:S14qa8 211s   9C
Cc                 |   [         R                  " [        [        S9   [	        SSSSS9nS S S 5        WR
                  S:X  d   eUR                  S:X  d   eUR                  S:X  d   eUR                  S:X  d   eUR                  S:X  d   eUR                  S:X  d   eUR                  S:X  d   e[         R                  " [        [        S9   [	        SSS	SS9R                  S
:X  d   e S S S 5        [	        SSSSS9nUR
                  S:X  d   eUR                  S:X  d   eUR                  S:X  d   eUR                  S:X  d   eUR                  S:X  d   eUR                  S:X  d   eUR                  S:X  d   e[	        SSS	SS9R                  S
:X  d   eg ! , (       d  f       GNw= f! , (       d  f       N= f)Nr!   r   rf   r`   r  r   r  r   r   r  rP   )rr   rs   r   r   r   r#   r   rb   rc   weekday	dayofyearr  )r*   b_dated_dates      r-   test_properties_daily*TestPeriodProperties.test_properties_daily9  s   ''XF4qa@F G{{d"""~~"""||q   zzQ~~"""1$$$##r)))''XFsQA>LLPRRRR G St1!<{{d"""~~"""||q   zzQ~~"""1$$$##r)))3T:HHBNNN+ GF GFs   FF-
F*-
F;c           	         [        SSSSSS9n[        SSSSSS9nX4 H  nUR                  S:X  d   eUR                  S:X  d   eUR                  S:X  d   eUR                  S:X  d   eUR
                  S:X  d   eUR                  S:X  d   eUR                  S:X  d   eUR                  S:X  d   e[        SSS	SSS9R                  S
:X  a  M   e   g )Nr   rf   r`   r   )r$   r#   rb   rc   r   2hr  r   r   r  )	r   r#   r   rb   rc   r  r  r   r  )r*   h_date1h_date2h_dates       r-   test_properties_hourly+TestPeriodProperties.test_properties_hourlyR  s    cA11EdQAAF(F;;$&&&>>Q&&&<<1$$$::?"?>>Q&&&##q(((;;!###''2---Cd!CQQUWWW )rJ   c           	      |   [        SSSSSSS9nUR                  S:X  d   eUR                  S:X  d   eUR                  S:X  d   eUR                  S:X  d   eUR
                  S:X  d   eUR                  S:X  d   eUR                  S:X  d   eUR                  S:X  d   e[        SSS	SSSS9R                  S
:X  d   eg )Nr|   rf   r`   r   )r$   r#   rb   rc   r   r   r  rP   r   r   r  )	r   r   rb   rc   r  r  r   r   r  )r*   t_dates     r-   test_properties_minutely-TestPeriodProperties.test_properties_minutelyd  s    UQAAaP~~"""||q   zzQ~~"""1$$${{a}}!!!##r)))$aQQqIWW	
rJ   c           
         [        SSSSSSSS9nUR                  S:X  d   eUR                  S:X  d   eUR                  S:X  d   eUR                  S:X  d   eUR
                  S:X  d   eUR                  S:X  d   eUR                  S:X  d   eUR                  S:X  d   eUR                  S:X  d   eUR                  S:X  d   e[        SSSSSSSS9R                  S	:X  d   eg )
Nr|   rf   r`   r   )r$   r#   rb   rc   r   r   r   r  r   r   r  )r   r#   r   rb   rc   r  r  r   r   r   r  )r*   s_dates     r-   test_properties_secondly-TestPeriodProperties.test_properties_secondlyt  s   T!A
 {{d"""~~"""||q   zzQ~~"""1$$${{a}}!!!}}!!!##r)))QAAaPQm	
rJ   rB   N)"rC   rD   rE   rF   __doc__r'   rG   rH   r  r  r  rC  r  staticmethodr  r   r\   maxr  r  r  r  r  r  r  r  r
  r  r  r  r%  r)  r-  rI   rB   rJ   r-   r  r  I  sp   ?[[V%9:" ;"% #
 [[B**6 	
 	
 [[_	r/BY]]TUDV.WX[[.z0JK* L Y*& [[_	r/BY]]TUDV.WX[[.z0JKG L YGM*!X"!
#
1+ 	O9"O2$
 
rJ   r  c                       \ rS rSrS rSrg)TestPeriodComparisonsi  c                 ~    [        SS5      n[        SS5      n[        SS5      nX1U/nXU/n[        U5      U:X  d   eg )Nr|  rW   z2000-02z2000-03)r   sorted)r*   janfebmarperiodscorrectPeriodss         r-   test_sort_periods'TestPeriodComparisons.test_sort_periods  sJ    Y$Y$Y$S/Cg.000rJ   rB   N)rC   rD   rE   rF   r;  rI   rB   rJ   r-   r3  r3    s    1rJ   r3  c                  $   Sn [        S5      n[        R                  " [        U S9   SUl        S S S 5        UR
                  n[        R                  " [        U S9   SU-  Ul        S S S 5        g ! , (       d  f       NG= f! , (       d  f       g = f)Nznot writable2014Q1r!      r   )r   r'   r(   AttributeErrorrn   r$   )r,   r   r$   s      r-   test_period_immutablerA    si    
C

C	~S	1 
2 88D	~S	1t8 
2	1	 
2	1 
2	1s   A0B0
A>
Bc                  d    [        SS5      n U R                  S:X  d   eU R                  S:X  d   eg )Nz
0001-01-07rP   r`   r  )r   r#   rc   )per1s    r-   test_small_year_parsingrD    s.    ,$D99>>88q==rJ   c                     / SQn [        SSS9nU  H  n[        UR                  U5      5        M     U  H*  n[        SUS9n[        U5        UR                  S:X  a  M*   e   [        R
                  " [        [        S9   [        SSS9nS S S 5        [        U5        [        SSS9n[        U5        g ! , (       d  f       N/= f)	N)rY   rW   rZ   rP   r   r\   r   r   rP   r   r  r!   r   r\  )r   r  r   r#   rr   rs   r   r   )r  r  r$   s      r-   test_negone_ordinalsrF    s    1EBS)FV]]4 !  .V{{d""" 
 
	#	#M	B- 
CLBS)FL	 
C	Bs   ?B33
C)(r   r   r   r%   numpyr   r'   pandas._libs.tslibsr   r   pandas._libs.tslibs.ccalendarr   r	   pandas._libs.tslibs.parsingr
   pandas._libs.tslibs.periodr   pandas.compatr   pandas.errorsr   r   pandasr   r   r   r   r   pandas._testing_testingrr   r   r   rL   rE  r  r3  rA  rD  rF  rB   rJ   r-   <module>rQ     s    
 
   7 ; 
  0!, !,HO	" O	"di$ i$X
 
D
1 1
rJ   