
    A[g                        d dl mZm Z mZ d dlZd dlZd dlZd dlmZ d dl	m
Z
mZ d dlmZ d dlmZ d dlmZ d dlmZmZmZmZmZ d dlmZ d	Z G d
 d      Z G d d      Z G d d      Z G d d      Z G d d      Z d Z!d Z"d Z#y)    )datedatetime	timedeltaN)iNaT)DAYSMONTHS)OutOfBoundsDatetime)DateParseError)INVALID_FREQ_ERR_MSG)NaTPeriod	Timedelta	Timestampoffsetsz#Period with BDay freq is deprecatedc            	           e Zd Zej                  j                  d ej                         df ej                  d      df ej                  d      df ej                  d      dfg      d	        Zd
 Zd Zd Zy)TestPeriodDisallowedFreqszfreq, freq_msg
BYearBegin   	YearBegin   startingMonthQuarterBeginBusinessMonthEndc                     t        j                  | d      }t        j                  t        |      5  t        d|       d d d        y # 1 sw Y   y xY w)N% is not supported as period frequencymatchi  )yearfreq)reescapepytestraises
ValueErrorr   )selfr    freq_msgmsgs       a/var/www/html/bid-api/venv/lib/python3.12/site-packages/pandas/tests/scalar/period/test_period.pytest_offsets_not_supportedz4TestPeriodDisallowedFreqs.test_offsets_not_supported!   s>     ii4& EFG]]:S14( 211s   AAc                 b   d}t        j                  t        |      5  t        dd       d d d        t	        j
                         j                   d}t        j                  t        |      5  t        dt	        j
                                d d d        y # 1 sw Y   nxY w# 1 sw Y   y xY w)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_raisesz>TestPeriodDisallowedFreqs.test_custom_business_day_freq_raises0   s|    6]]:S1<c* 2**,1122WX]]:S1<g&?&?&AB 21 21 21s   B0 B%B"%B.c                     d}t        j                  t        |      5  t        dd       d d d        y # 1 sw Y   y xY w)Nz-WOM-1MON is not supported as period frequencyr   
2012-01-02zWOM-1MONr-   r#   r$   r%   r   r0   s     r)   $test_invalid_frequency_error_messagez>TestPeriodDisallowedFreqs.test_invalid_frequency_error_message9   s+    =]]:S1<j1 211   5>c                     d}t        j                  t        |      5  t        dd       d d d        y # 1 sw Y   y xY w)Nz*for Period, please use 'M' instead of 'ME'r   r3   MEr-   r4   r0   s     r)   +test_invalid_frequency_period_error_messagezETestPeriodDisallowedFreqs.test_invalid_frequency_period_error_message>   s+    :]]:S1<d+ 211r6   N)__name__
__module____qualname__r#   markparametrizer   r   r   r   r   r*   r1   r5   r9        r)   r   r       s    [[W!<0Wq!;/!W!!3^D%W%%a(*<=		
))C2
,r@   r   c                      e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zej                   j#                  de      d        Zej                   j#                  de      d        Zej                   j#                  de      ej                   j#                  d edd            d               Zd Zd Zej                   j#                  dg d      d        Zd Zd Zd Zej                   j#                  dg d      ej                   j#                  dg d      ej                   j#                  d g d!      d"                      Zej                   j#                  d ed#            d$        Zy%)&TestPeriodConstructionc                 "   t        j                  d      }d}t        j                  t        |      5  t        |       d d d        t        j                  t        |      5  t        |d       d d d        y # 1 sw Y   ;xY w# 1 sw Y   y xY w)Nzm8[ns]2Value must be Period, string, integer, or datetimer   Dr-   )r   to_numpyr#   r$   r%   r   )r&   tdr(   s      r)   test_from_td64nat_raisesz/TestPeriodConstruction.test_from_td64nat_raisesE   sc    \\(#B]]:S12J 2 ]]:S12C  21 21 21s   A9"B9BBc                    t        dd      }t        d      }||k(  sJ t        dd      }t        d      }||k(  sJ t        dd      }||k7  sJ t        j                  d      }t        t        j                         d      }||k(  sJ t        j                  d      }t        t        j                         d      }t        j                  t        j                               }||k(  sJ ||k(  sJ t        d	d
      }d}t        j                  t        |      5  t        d	d      }d d d        ||k(  sJ t        dddd      }t        dd      }||k(  sJ t        dddd      }||k(  sJ t        d      }t        t        ddddddd      d      }||k(  sJ t        dd      }||k(  sJ t        d      }t        t        ddddddd      d      }||k(  sJ t        dd      }||k(  sJ d}t        j                  t        |      5  t        d       d d d        d }t        j                  t        |      5  t        d!d"       d d d        y # 1 sw Y   4xY w# 1 sw Y   JxY w# 1 sw Y   y xY w)#N1/1/2005Mr-   zJan 20052005YQrE   1982minz<'MIN' is deprecated and will be removed in a future version.r   MIN        r   monthdayr    z3/1/2005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_warningFutureWarningr#   r$   r%   )r&   i1i2i4i3r(   expecteds          r)   test_constructionz(TestPeriodConstruction.test_constructionP   sP   JS)JRxx F%F^RxxF%RxxZZS!HLLN-Rxx ZZS!HLLN-ZZ&RxxRxxF'L''SAU+B BRxxQAC8JS)RxxQAC8Rxx-.(4Aq!Q=DIX~~3$?X~~/0(4Aq!Q=DIX~~5DAX~~2]]:S16" 2 %]]:S1:C( 21= BA4 21 21s$   #I#I0I<#I-0I9<Jc                     t        j                  t        d      5  t        dd       d d d        t        j                  t        d      5  t        dd       d d d        y # 1 sw Y   :xY w# 1 sw Y   y xY w)Nzpass as a string insteadr   rO   )MinrT   r-   z
2006-12-31)wrT   )r#   r$   	TypeErrorr   r&   s    r)   test_tuple_freq_disallowedz1TestPeriodConstruction.test_tuple_freq_disallowed   sY    ]]9,FG6
+ H ]]9,FG<* HG HG HGs   A#A/#A,/A8c                     t        d      }t        |d      }|j                         }||k(  sJ |j                  }t        |d      }|j                         }|j                  |k(  sJ y )Nz2022-04-20 09:23:24.123456789nsr-   )r   r   to_timestampasm8)r&   tsperrtdt64per2rt2s          r)   &test_construction_from_timestamp_nanosz=TestPeriodConstruction.test_construction_from_timestamp_nanos   sk    67Rd# Rxx wwd&!xx4r@   c                    t        j                  t        t              5  t	        dd      }t	        dd      }||j                  d      k(  sJ t	        dd      }||j                  d      k(  sJ t	        dd      }||j                  d      k(  sJ t	        dd      }||k(  sJ t	        d	d
dd      }t	        dd      }||k(  sJ 	 d d d        y # 1 sw Y   y xY w)Nr   3/10/12Br-   rE   z3/11/12z3/12/12b  rS   
   rU   )rf   rg   rh   bday_msgr   asfreq)r&   ri   rj   rl   s       r)   test_construction_bdayz-TestPeriodConstruction.test_construction_bday   s    ''XF	,B	,B3'''	,B3'''	,B3'''	,B8O8T=B	,B8O8 GFFs   B.CC!c                 $   t        ddd      }t        dd      }||k(  sJ t        ddd      }t        dd      }||k(  sJ t        d	      }t        ddd      }t        d
      }||k(  sJ ||k(  sJ t        d      }||k(  sJ t        d      }||k(  sJ t        d      }||k(  sJ t        d      }||k(  sJ t        d      }||k(  sJ t        d      }||k(  sJ t        d      }|j                  dk(  sJ t        d      }||k(  sJ y )NrR   rT   rN   r   quarterr    rJ   r-   rS   z9/1/20052005Q12005q105Q105q11Q20051q20051Q051q054Q1984i  4q1984r   r   )r&   ri   rj   rl   lowers        r)   test_construction_quarterz0TestPeriodConstruction.test_construction_quarter   s1   qs3JS)Rxxqs3JS)RxxHqs3HRxxRxxF^RxxvU{{HRxxx U{{F^RxxvU{{Hww$x U{{r@   c                 6   t        dd      }t        dd      }||k(  sJ t        dd      }||k(  sJ t        dd      }||k(  sJ t        dd      }|j                  dk(  sJ t        t        dd	d	      d      }t        dd      }||k(  sJ t        t        dd	d	      d      }t        t        dd	d	      d      }t        t	        j
                  d
      d      }t        dd      }t        dd      }||k(  sJ ||k(  sJ ||k(  sJ ||k(  sJ y )N2007-01rK   r-   200701ra   rb   r    I  rZ   rT   
2007-01-012007-01-01 00:00:002007-01-01 00:00:00.000)r   r   r   r   np
datetime64r&   rm   ri   rj   rl   rk   i5s          r)   test_construction_monthz.TestPeriodConstruction.test_construction_month   s%   )#.H3'X~~H3'X~~F%X~~F-ww%HT1a(s3H3'RxxDq!$3/HT1a(s3BMM,/c:)4-C8RxxRxxRxxRxxr@   c                 "	   t        dt        j                               t        dd      k(  sJ t        dt        j                               t        dd      k(  sJ t        dt        j                               t        dd      k(  sJ t	        j
                  t        t              5  t        dt        j                               t        dd      k(  sJ 	 d d d        t        dt        j                               t        dd	      k(  sJ t        d
dt        j                  d            t        d
dd      k(  sJ t        d
dt        j                  d            t        d
dd      k(  sJ t        d
ddt        j                               t        d
ddd	      k(  sJ t	        j
                  t        t              5  t        dddt        j                               t        dddd      k(  sJ 	 d d d        t        dd      }t        d
ddt        j                  d            |k(  sJ t        d
ddd      |k(  sJ t	        j
                  t        t              5  t        dddt        j                  d            t        dddd      k(  sJ 	 d d d        t        dt        j                               t        dd      k(  sJ t        dt        j                               }t        dd      }||k(  sJ |j                  dk(  sJ |j                  dk(  sJ t        t        ddd      d      }t        dd      }||k(  sJ t        t        ddd      d      }t        t        ddd      d      }t        t        j                   d      d      }t        dd      }t        dd      }||k(  sJ ||k(  sJ ||k(  sJ ||k(  sJ t        d       }t        t        dddd!d"d"d#      d$      }||k(  sJ t        d d$      }||k(  sJ t        d%      }t        t        dddd!d"d"d&      d'      }||k(  sJ t        d%d'      }||k(  sJ y # 1 sw Y   xY w# 1 sw Y   wxY w# 1 sw Y   xY w)(NrJ   r-   rK   rL   rM   r   r   r   rE   rR   rT   r   r   r   rN   r   rS   rU   r   r   z
2005-03-013D3Bra   r   r   rZ   r   r   r   r   rY   r[   r   r\   r]   r^   r_   r`   )r   r   MonthEndYearEndrf   rg   rh   r   BusinessDayre   
QuarterEndBDayr   r   r   r   r   r   s          r)   test_period_constructor_offsetsz6TestPeriodConstruction.test_period_constructor_offsets   sF   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-Rxxww%ww%HT1a(s3H3'RxxDq!$3/HT1a(s3BMM,/c:)4-C8RxxRxxRxxRxx-.(4Aq!Q=DIX~~3$?X~~/0(4Aq!Q=DIX~~5DAX~~A GF  GF GFs$   -0Q*4Q715R*Q47RRc                    d}t        j                  t        |      5  t        t	        j
                                d d d        t        j                  t        |      5  t        t	        j
                         j                                d d d        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 d d        d}t        j                  t        |      5  t        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 d        d}t        j                  t        |      5  t        dd       d d d        y # 1 sw Y   xY w# 1 sw Y   zxY w# 1 sw Y   Tx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# 1 sw Y   y xY w)Nz#Must supply freq for datetime valuer   rD   g?rE   r-   zOrdinal must be an integerr   z?Only value or ordinal but not both should be given but not bothr   rT   )rb   valuer    z%If value is None, freq cannot be None)rV   z1^Given date string "-2000" not likely a datetime$z-2000rM   zday is out of range for month0z/Unknown datetime string format, unable to parsez	1/1/-2000)r#   r$   r%   r   r   rd   r   r
   r0   s     r)   test_invalid_argumentsz-TestPeriodConstruction.test_invalid_argumentsA  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3 6?]]>5;$ 655 2111 21 21 21 21 21 65 65sk   G6,H0H#HH*
H7<I.I I6H HHH'*H47I III$c                     t        dd      }t        ddd      |k(  sJ t        d       t        u sJ t        dd      }t        |d	      }t        d
d	      }||k(  sJ y )Nr   2Mr-   rZ   rT   )r   rV   r    r   rE   rM   2007r   r   )r&   rm   presultexps        r)   test_constructor_cornerz.TestPeriodConstruction.test_constructor_corner`  sg    )$/4qt4@@@d|s"""<c*$V#&}}r@   c                    t        d      }|j                  dk(  sJ t        d      }|j                  dk(  sJ t        d      }|j                  dk(  sJ t        d      }|j                  dk(  sJ t        d	      }|j                  d
k(  sJ t        d      }|j                  dk(  sJ t        d      }|j                  dk(  sJ y )Nr   rE   z2007-01-01 07hz2007-01-01 07:10rP   z2007-01-01 07:10:15sz2007-01-01 07:10:15.123r]   z2007-01-01 07:10:15.123000r`   z2007-01-01 07:10:15.123400)r   r    r&   r   s     r)   test_constructor_infer_freqz2TestPeriodConstruction.test_constructor_infer_freql  s    < vv}}?#vv}}%&vv()vv}},-vv~~ /0vv~~/0vv~~r@   c                 H   t        dd      }t        dd      }|j                  |j                  k(  sJ |j                  dk(  sJ |j                  dk(  sJ |j                  t	        j
                  d      k(  sJ |j                  t	        j
                         k(  sJ |dz   j                  |j                  dz   k(  sJ d|z   j                  |j                  dz   k(  sJ |dz
  j                  |j                  dz
  k(  sJ d	|z   j                  |j                  dz
  k(  sJ y )
N19892Yr-   rM   z2Y-DECY-DECr   rT   )r   rb   freqstrr    r   r   )r&   result1result2s      r)   test_multiplesz%TestPeriodConstruction.test_multiples  s   d+c*'//111(***')))||wq1111||w0000!$$!(;;;;G$$!(;;;;!$$!(;;;;W%%1)<<<<r@   rV   c                     d| }t        d|      }dt        |      v sJ |j                  dd      }t        ||      }||k(  sJ |j                  dd      }t        ||      }||k(  sJ y )NzQ-1989Q3r-   rE   endhowr   )r   strrw   r&   rV   r    r   stampr   s         r)   test_period_cons_quarterlyz1TestPeriodConstruction.test_period_cons_quarterly  s     E7|XD)3s8###  % 05t$Cxx  5 15t$Cxxr@   c                     d| }t        d|      }|j                  dd      t        d      z   }t        ||      }||d	z   k(  sJ t        |t               sJ y )
NzY-r   r-   rE   r   r      )daysrT   )r   rw   r   
isinstancer   s         r)   test_period_cons_annualz.TestPeriodConstruction.test_period_cons_annual  sf     E7|V$'  % 09"3EE5t$C!G||!V$$$r@   rW   numr      c                     d| }d| }t        ||      }t        |d      j                  |      }||k(  sJ t        |t               sJ y )Nz2011-02-zW-r-   rE   )r   r   r   )r&   r   rW   daystrr    r   rm   s          r)   test_period_cons_weeklyz.TestPeriodConstruction.test_period_cons_weekly  s\     C5!C5zT*&s+2248!!!&&)))r@   c                    t        d      }|j                  j                  dk(  sJ t        d      }|j                  j                  dk(  sJ d}t        j                  t
        |      5  t        d       d d d        y # 1 sw Y   y xY w)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&   rz   r(   s      r)   test_parse_week_str_roundstripz5TestPeriodConstruction.test_parse_week_str_roundstrip  sp    ,-xx7***,-xx7***5]]:S1*+ 211s   *A??Bc                     t        dd      }t        j                  |j                  |j                        }||k(  sJ t	        |t               sJ y )N2011-01rK   r-   )r   _from_ordinalrb   r    r   r&   r   ress      r)   test_period_from_ordinalz/TestPeriodConstruction.test_period_from_ordinal  sC    93'""199166:Cxx#v&&&r@   r    rM   rK   rE   r   c                     t        d|      }|t        u sJ t        dd|z         }|t        u sJ t        dd|z         }|t        u sJ y )Nr   r-   23r   )r&   r    rz   s      r)   'test_construct_from_nat_string_and_freqz>TestPeriodConstruction.test_construct_from_nat_string_and_freq  sR    U&czzUt,czzUt,czzr@   c                 0   t        dd      }|t        u sJ t        t        d      }|t        u sJ t        t        d      }|t        u sJ t        t        d      }|t        u sJ t        d      }|t        u sJ t        t              }|t        u sJ y )Nnatr   r-   rE   r   1D1hr   )r   r   r   r   s     r)   test_period_cons_natz+TestPeriodConstruction.test_period_cons_nat  s    5w'Cxx4c"Cxx4d#Cxx4f%Cxx5MCxx4LCxxr@   c                 x   t        dd      }t        dd      }|j                  |j                  k(  sJ |j                  t        j                  d      k(  sJ |j
                  dk(  sJ |j                  t        j                         k(  sJ |j
                  dk(  sJ |dz   }|j                  |dz   j                  k(  sJ |j                  |j                  k(  sJ |j
                  dk(  sJ |dz
  }|j                  |dz
  j                  k(  sJ |j                  |j                  k(  sJ |j
                  dk(  sJ d}t        j                  t        |      5  t        dd	       d 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)Nr   3Mr-   rK   rS   rT   z;Frequency must be positive, because it represents span: -3Mr   z-3Mz:Frequency must be positive, because it represents span: 0M0M)	r   rb   r    r   r   r   r#   r$   r%   )r&   p1p2r   r(   s        r)   test_period_cons_multz,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$F0$F-0F9c                    t        dd      t        dd      t        dd      ft        dd      t        dd      t        dd      fg}|D ]  \  }}}|j                  |j                  k(  sJ |j                  |j                  k(  sJ |j                  t        j                  d      k(  sJ |j
                  d	k(  sJ |j                  t        j                  d      k(  sJ |j
                  d	k(  sJ |j                  t        j                         k(  sJ |j
                  dk(  sJ |dz   }|j                  |dz   j                  k(  sJ |j                  |j                  k(  sJ |j
                  d	k(  sJ |dz   }|j                  |dz   j                  k(  sJ |j                  |j                  k(  sJ |j
                  d	k(  sJ |dz
  }|j                  |dz
  j                  k(  sJ |j                  |j                  k(  sJ |j
                  d	k(  sJ |dz
  }|j                  |dz
  j                  k(  sJ |j                  |j                  k(  sJ |j
                  d	k(  rJ  d
}t        j                  t        |      5  t        dd       d d d        t        j                  t        |      5  t        dd       d d d        t        j                  t        |      5  t        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 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 d        y # 1 sw Y   hxY w# 1 sw Y   Dx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# 1 sw Y   y xY w)Nr   r   r-   1h1Dr   rT   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   rb   r    r   Hourr   r#   r$   r%   )r&   r   r   r   p3r   r(   s          r)   test_period_cons_combinedz0TestPeriodConstruction.test_period_cons_combined  s    yv.yv.ys+ qv.qv.qs+
 JBB::+++::+++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;8P)PP"P.>P:1Q$Q;PPP"P+.P7:QQQ)z1970/01/01 z2020-12-31 z1981/09/13 hour)z00:00:00z00:00:01z23:59:59z12:00:59zsec_float, expected))z
.000000001rT   )z
.000000999  )z
.123456789i  )z
.999999999r   )z
.999999000r   )z.999999001123rT   )z.999999001123456rT   )z.999999001123456789rT   c                 X    t        ||z   |z         j                  j                  |k(  sJ y )N)r   
start_time
nanosecond)r&   rW   r   	sec_floatrm   s        r)   "test_period_constructor_nanosecondz9TestPeriodConstruction.test_period_constructor_nanosecondL  s,    & cDj9,-88CCxOOOr@      c                 F    t        d|z   d      }|j                  |k(  sJ y )Ni ' 1hr   )r   r   )r&   r   r   s      r)   test_period_large_ordinalz0TestPeriodConstruction.test_period_large_ordinala  s$     7T>5vv~~r@   N) r:   r;   r<   rH   rn   rt   r   r   r   r   r   r   r   r   r   r#   r=   r>   r   r   r   r   ranger   r   r   r   r   r   r   r  r  r?   r@   r)   rB   rB   D   s   	!?)B+ $!F8FP%>
0= [[Wf- . [[Wf-% .% [[UD)[[UE"bM2* 3 **,' [[V%9: ;&)<E+N [[U$QR[[V%UV[[
	
P W S P
 [[VU2Y/ 0r@   rB   c                   |   e Zd Zd Zd Zd Zej                  j                  d      d        Z	d Z
ej                  j                  dg d      ej                  j                  d	g d
      d               Zej                  j                  dd      ej                  j                  d      d               Zd Zd Zy)TestPeriodMethodsc                 R    t        d      }t        j                  |      }||k(  sJ y )N2000Q1)r   rf   round_trip_pickle)r&   r   new_ps      r)   test_round_tripz!TestPeriodMethods.test_round_tripj  s(    8$$Q'zzr@   c                 |   t        t        dd            t        t        dd            k(  sJ t        t        dd            t        t        dd            k7  sJ t        t        dd            t        t        dd            k7  sJ t        t        dd            t        t        dd            k7  sJ y )	Nr   rK   r-   
2011-01-01rE   r   r   z2011-02)hashr   rs   s    r)   	test_hashzTestPeriodMethods.test_hasho  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Ur@   c                 t   t        dd      }|j                  d      t        d      k(  sJ t        d      t        dd	      z
  }|j                  d
      |k(  sJ t        dd      }|j                  d      t        d      k(  sJ t        d      t        dd	      z
  }|j                  d
      |k(  sJ y )Nr   rK   r-   Sr   r  z
2011-02-01rT   rv   Er   z
2011-04-01)r   rw   r   r   )r&   r   rm   s      r)   test_to_timestamp_multz(TestPeriodMethods.test_to_timestamp_mult{  s    93'~~#~&)L*AAAA\*Yq$-??~~#~&(22294(~~#~&)L*AAAA\*Yq$-??~~#~&(222r@   8ignore:Period with BDay freq is deprecated:FutureWarningc                    t        dd      }|j                  d      }g d}|D ]2  }||j                  d|      k(  sJ ||j                  d|      k(  r2J  |j                  d	      }g d
}|D ]2  }||j                  d|      k(  sJ ||j                  d|      k(  r2J  g d}d }|D ]m  }t        d|      }|j                         j                  |      }	|	|k(  sJ |j                  |j                  d      k(  sJ |j                   ||      k(  rmJ  t        dd      }|j                  dd      }	t        ddd      t        dd      z
  }
|	|
k(  sJ |j                  dd      }	|	|
k(  sJ |j                  dd      }	t        ddd      t        dd      z
  }
|	|
k(  sJ |j                  dd      }	|	|
k(  sJ |j                  d      }	t        ddd      t        dd      z
  }
|	|
k(  sJ t        ddd      }
|j                  dd      }	|	|
k(  sJ |j                  dd      }	|	|
k(  sJ |j                  dd      }	|	|
k(  sJ |j                  dd      }	|	|
k(  sJ |j                  dd      }	|	|
k(  sJ y )NrO   rM   r-   r  r   )r   StarTBEGInrE   r   r  )er   FINIsH)	rM   rN   rK   Wr   rE   r   rp   r   c                     | j                   dk(  r| j                  t        dd      z   S t        | | j                   z   j                  j                  dz
        S )Nr   rT   r   )r   nanoseconds)r    r  r   r   _value)r   s    r)   _exz0TestPeriodMethods.test_to_timestamp.<locals>._ex  sG    vv}||iQB&GGGa!&&j44;;a?@@r@   1985r   r   i  rT   rv   3hrP   2mini  startr   5s)r   rw   	to_periodr  end_timer   r   r   )r&   r   start_tsaliasesaend_tsfrom_lstr#  fcoder   rm   s              r)   test_to_timestampz#TestPeriodMethods.test_to_timestamp  s    6$>>c>*)Aq~~cq~9999q~~d~:::: 
 C((AQ^^CQ^7777Q^^Da^8888  C	A
 EvE*A^^%//6FQ;;<<1>>c>#::::::Q'''  6$/T1a(9Q+==!!!%0!!!51T1a(9Q+==!!!E2!!!E*T1a(9Q+==!!!D!Q'1!!!73!!!1!!!'2!!!'2!!!r@   c                     t        j                  t        t              5  t	        dd      }|j                  dd      }d d d        t        d      t        d      z
  }|k(  sJ y # 1 sw Y   )xY w)	Nr   
1990-01-05r   r  r   
1990-01-06rT   r!  )rf   rg   rh   r   r   rw   r   r   r&   rz   r   rm   s       r)   test_to_timestamp_business_endz0TestPeriodMethods.test_to_timestamp_business_end  sg    ''XFs+C%%cs%3F G \*Y1-EE!!! GFs    A((A1zts, expected)	)z1970-01-01 00:00:00r   )z1970-01-01 00:00:00.000001rT   )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.999999i?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    )Nr`   rv   c                 \    t        |      j                  |      j                  }||k(  sJ y )Nr-   )r   rw   microsecond)r&   ry   rm   r    r   s        r)   test_to_timestamp_microsecondz/TestPeriodMethods.test_to_timestamp_microsecond  s/    " ((d(3??!!!r@   zstr_ts,freq,str_res,str_freq))zJan-2000N2000-01rK   )
2000-12-15Nr<  rE   )2000-12-15 13:45:26.123456789rv   r=  rv   )r=  r`   2000-12-15 13:45:26.123456r`   )r>  Nr>  r`   )r=  r]   2000-12-15 13:45:26.123r]   )r?  Nr?  r]   )2000-12-15 13:45:26r   r@  r   )r@  rP   z2000-12-15 13:45rP   )r@  r   z2000-12-15 13:00r   )r<  rM   2000r   )r<  rN   2000Q4Q-DEC)r<  rK   z2000-12rK   )r<  r  z2000-12-11/2000-12-17r   )r<  rE   r<  rE   )r<  r   r<  r   c                 l    t        ||      }t        |      |k(  sJ t        |      d| d| dk(  sJ y )Nr-   zPeriod('z', 'z'))r   r   repr)r&   str_tsr    str_resstr_freqr   s         r)   	test_reprzTestPeriodMethods.test_repr  sC    < 6%1v   AwHWIT(2>>>>r@   c                 V    t        dd      }t        t              t        |      v sJ y )Nr   rK   r-   )r   rE  r   r   s     r)   test_repr_natzTestPeriodMethods.test_repr_nat	  s$    5s#CyDG###r@   c                 r    t        dd      }|j                  d      }|dk(  sJ t        |t              sJ y )Nz2000-1-1 12:34:12r   r-   z%Y-%m-%d %H:%M:%Sz2000-01-01 12:34:12)r   strftimer   r   r   s      r)   test_strftimezTestPeriodMethods.test_strftime  s=    &S1jj,-++++#s###r@   N)r:   r;   r<   r  r  r  r#   r=   filterwarningsr1  r7  r>   r:  rI  rK  rN  r?   r@   r)   r  r  i  s    
V	3 [[B="="~" [[
	
 [[V%78" 9" [[&	
4 [[B?5:?
$$r@   r  c                   x   e Zd ZdZej
                  j                  dg d      d        Zd Zd Z	ej
                  j                  d      d        Zed	        Zej
                  j                  d
ej                  dfej                   dfg      ej
                  j                  dddg      d               Zej
                  j                  d
ej                  dfej                   dfg      ej
                  j                  dddg      d               Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zy) TestPeriodPropertiesz5Test properties such as year, month, weekday, etc....r    r   c                    t        d|      }|j                  sJ t        |j                  t              sJ t        d|      }|j                  rJ t        d|      }|j                  sJ t        d|      }|j                  rJ y )Nz2000-01-01 00:00:00r-   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_yearz&TestPeriodProperties.test_is_leap_year  s     (t4~~~!..$///(t4>>!!(t4~~~(t4>>!!>r@   c                    t        dd      }|j                  dk(  sJ |j                  dk(  sJ t        |t               sJ t        dd      }|j                  dk(  sJ |j                  dk(  sJ t        |t               sJ t        dd      }|j                  dk(  sJ |j                  d	k(  sJ t        |t               sJ y )
Nr   rC  r        rS   rK      )r   r   r   r   rV   r   s     r)    test_quarterly_negative_ordinalsz5TestPeriodProperties.test_quarterly_negative_ordinals(  s    2G,vv~~yyA~~!V$$$2G,vv~~yyA~~!V$$$2C(vv~~ww"}}!V$$$r@   c                     t        dd      }|j                  t        j                         k(  sJ |j                  dk(  sJ y )NrO   rp   r-   rP   )r   r    r   Minuter   )r&   ri   s     r)   test_freq_strz"TestPeriodProperties.test_freq_str8  s9    F'ww'..****zzU"""r@   r  c           
         g dg dg dg dg dg dg dg dg d	d
	}t         }|j                         D ]  \  }}|D ]d  }t        j                  t        |      5  t        d|       d d d        t        j                  t        |      5  t        d|       d d d        f t        d|      }t        d|      }t        |t
              sJ t        |t
              rJ  y # 1 sw Y   }xY w# 1 sw Y   xY w)N)MTHMONTHMONTHLYMthrV   monthly)BUSBUSINESS
BUSINESSLYWEEKDAYbus)DAYDLYDAILYre   DlyDaily)HRHOURHRLYHOURLYhrr   HRly)minuteMINUTEMINUTELYminutely)secSECSECONDSECONDLYsecond)MILLISECONDMILLISECONDLYmillisecond)MICROSECONDMICROSECONDLYr9  )
NANOSECONDNANOSECONDLYr  )	rK   r   rE   r   rP   r   r]   r`   rv   r   z2016-03-01 09:00r-   rT   r   )r   itemsr#   r$   r%   r   r   )r&   casesr(   r   freqsr    r   r   s           r)   test_period_deprecated_freqz0TestPeriodProperties.test_period_deprecated_freq=  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%C1%C.1C:c           	          t        | j                  | j                  | j                  | j                  | j
                  | j                  |z   d      S )Nr`   )r   rV   rW   r   ru  r}  r    )r   r   rV   rW   r   ru  r}  )boundoffsets     r)   _period_constructorz(TestPeriodProperties._period_constructor[  sA    ++		<<<<&(
 	
r@   zbound, offsetr   rT   period_propertyr  r*  c                     t         j                  ||      }t        j                  t        d      5  t        ||       d d d        y # 1 sw Y   y xY w)NzOut of bounds nanosecondr   )rQ  r  r#   r$   r	   getattr)r&   r  r  r  periods        r)   $test_outer_bounds_start_and_end_timez9TestPeriodProperties.test_outer_bounds_start_and_end_timeg  s=     &99%H]].6PQFO, RQQs   AAc                 8   t         j                  ||       }|j                         j                  d      }t	        ||      j                  d      |k(  sJ ||t        dd      z  z
  j                  d      }t	        ||      j                  d      |k(  sJ y )Nr   r-   rT   )unit)rQ  r  rw   roundr  r   floor)r&   r  r  r  r  rm   s         r)   $test_inner_bounds_start_and_end_timez9TestPeriodProperties.test_inner_bounds_start_and_end_timeo  s     &99%&I&&(..C.8v/5535?8KKKFYqs%;;;BB3Gv/55c:hFFFr@   c                 v   g d}t        ddd      }|D ]   }t        d|      }|j                  |k(  r J  t        j                  t
        t              5  t        dd      j                  t        ddd      k(  sJ 	 d d d        t        dd	      j                  t        d
dd      k(  sJ y # 1 sw Y   1xY w)N)rM   rN   rK   rE   r   rP   r   r   rT   2012r-   r   r   r   r  i  r      )r   r   r  rf   rg   rh   r   )r&   freq_lstxpfr   s        r)   test_start_timez$TestPeriodProperties.test_start_timey  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//B8c                    t        dd      }d } |ddd      }||j                  k(  sJ t        dd      } |dd	d      }||j                  k(  sJ t        dd
      } |ddd      }||j                  k(  sJ t        dd      } |ddd      }||j                  k(  sJ t        dd      } |dddd      }||j                  k(  sJ t        j                  t        t
              5  t        dd      } |ddd      }||j                  k(  sJ 	 d d d        t        dd      } |ddd      }||j                  k(  sJ t        dd      } |ddd      }||j                  k(  sJ t        dd      } |dddd      }||j                  k(  sJ t        dd      } |dddd      }||j                  k(  sJ y # 1 sw Y   xY w)Nr  rM   r-   c                  n    t        t        t        |        j                  d      j                  dz
        S Nrv   rT   r   r   as_unitr"  argss    r)   r#  z/TestPeriodProperties.test_end_time.<locals>._ex  ,    Yx7??ELLqPQQr@     rT   rN   r   rX  rK   r   rE   r   r   r   rS   r  15D   r   r   )r   r*  rf   rg   rh   r   )r&   r   r#  r  s       r)   test_end_timez"TestPeriodProperties.test_end_time  s   6$	R q!_QZZ6$q!_QZZ6$q!_QZZ6$q!_QZZ6$q!QQZZ''XFvC(AT1aB### G
 6$q!_QZZ 6&q"QZZ6'q!QQZZ6'q!QQZZ) GFs   ,)GG
c                     t        j                  t        t              5  t	        dd      }|j
                  }d d d        t        d      t        d      z
  }|k(  sJ y # 1 sw Y   )xY w)Nr   r3  r   r4  rT   r5  )rf   rg   rh   r   r   r*  r   r   r6  s       r)   test_end_time_business_fridayz2TestPeriodProperties.test_end_time_business_friday  s[    ''XFs+C\\F G \*Y1-EE!!! GFs   A!!A*c                 X    d }t        dd      } |ddd      }|j                  |k(  sJ y )Nc                  n    t        t        t        |        j                  d      j                  dz
        S r  r  r  s    r)   r#  z;TestPeriodProperties.test_anchor_week_end_time.<locals>._ex  r  r@   z2013-1-1zW-SATr  rT      )r   r*  )r&   r#  r   r  s       r)   test_anchor_week_end_timez.TestPeriodProperties.test_anchor_week_end_time  s5    	R :w'q!_zzRr@   c                 @    t        dd      }|j                  dk(  sJ y )NrM   rZ   )r    r   r   )r&   a_dates     r)   test_properties_annuallyz-TestPeriodProperties.test_properties_annually  s     St,{{d"""r@   c                     t        ddd      }t        ddd      }t        ddd      }t        d      D ]7  }|||fD ]-  }||z   j                  dk(  sJ ||z   j                  |dz   k(  r-J  9 y )NrC  rZ   rT   )r    r   r   zQ-JANzQ-JUNrS   )r   r	  qyearr   )r&   
qedec_date
qejan_date
qejun_datexqds         r)   test_properties_quarterlyz.TestPeriodProperties.test_properties_quarterly  s}    tQ?
tQ?
tQ?
qA!:z:Q~~---Q''1q5000 ; r@   c                    t        ddd      }t        d      D ]  }||z   }|j                  dk(  sJ d|dz   cxk  rdk  rn n|j                  dk(  shJ d|dz   cxk  rdk  rn n|j                  d	k(  sFJ d
|dz   cxk  rdk  rn n|j                  dk(  s$J d|dz   cxk  rdk  rn n|j                  dk(  sJ |j                  |dz   k(  rJ  y )NrK   rZ   rT   )r    r   rV   rZ  rS   rX  r  r      r[   r   r   )r   r	  r   r   rV   )r&   m_dater  m_ival_xs       r)   test_properties_monthlyz,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*** r@   c                 0   t        dddd      }|j                  dk(  sJ |j                  dk(  sJ |j                  dk(  sJ |j                  dk(  sJ |dz
  j                  dk(  sJ |j
                  dk(  sJ t        ddd	d      j
                  d
k(  sJ y )Nr  rZ   rT   r  r    r   rV   rW   4      r   r      )r   r   r   rV   weekdays_in_month)r&   w_dates     r)   test_properties_weeklyz+TestPeriodProperties.test_properties_weekly  s    St1!<{{d"""~~"""||q   {{a
  B&&&##r)))3T:HHBNNNr@   c                    t        dddd      }|j                  dk(  sJ |j                  dk(  sJ |j                  dk(  sJ |j                  dk(  sJ |dz
  j                  dk(  sJ |j
                  dk(  sJ t        ddd	d      }|j
                  d
k(  sJ t        }t        j                  t        |      5  t        dddd       d d d        y # 1 sw Y   y xY w)Nr  rZ   rT   r  r  r  r  r   r   r  r   WK)
r   r   r   rV   r  r  r   r#   r$   r%   )r&   r  r   r(   s       r)   test_properties_weekly_legacyz2TestPeriodProperties.test_properties_weekly_legacy  s    St1!<{{d"""~~"""||q   {{a
  B&&&##r)))#Dq9  B&&&"]]:S14qa8 211s   :CCc                 h   t        j                  t        t              5  t	        dddd      }d d d        j
                  dk(  sJ |j                  dk(  sJ |j                  dk(  sJ |j                  dk(  sJ |j                  dk(  sJ |j                  dk(  sJ |j                  dk(  sJ t        j                  t        t              5  t	        ddd	d      j                  d
k(  sJ 	 d d d        t	        dddd      }|j
                  dk(  sJ |j                  dk(  sJ |j                  dk(  sJ |j                  dk(  sJ |j                  dk(  sJ |j                  dk(  sJ |j                  dk(  sJ t	        ddd	d      j                  d
k(  sJ y # 1 sw Y   mxY w# 1 sw Y   xY w)Nr   r   rZ   rT   r  r   r  r   r   r  rE   )rf   rg   rh   r   r   r   r   rV   rW   weekday	dayofyearr  )r&   b_dated_dates      r)   test_properties_dailyz*TestPeriodProperties.test_properties_daily   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%(F1c                    t        ddddd      }t        ddddd      }||fD ]  }|j                  dk(  sJ |j                  dk(  sJ |j                  dk(  sJ |j                  dk(  sJ |j
                  dk(  sJ |j                  dk(  sJ |j                  dk(  sJ |j                  dk(  sJ t        ddd	dd      j                  d
k(  rJ  y )Nr   rZ   rT   r   )r    r   rV   rW   r   2hr  r   r   r  )	r   r   r   rV   rW   r  r  r   r  )r&   h_date1h_date2h_dates       r)   test_properties_hourlyz+TestPeriodProperties.test_properties_hourly  s    cA11EdQAAF(F;;$&&&>>Q&&&<<1$$$::?"?>>Q&&&##q(((;;!###''2---Cd!CQQUWWW )r@   c                 v   t        dddddd      }|j                  dk(  sJ |j                  dk(  sJ |j                  dk(  sJ |j                  dk(  sJ |j
                  dk(  sJ |j                  dk(  sJ |j                  dk(  sJ |j                  dk(  sJ t        ddd	ddd      j                  d
k(  sJ y )Nrp   rZ   rT   r   )r    r   rV   rW   r   ru  r  rE   r   r   r  )	r   r   rV   rW   r  r  r   ru  r  )r&   t_dates     r)   test_properties_minutelyz-TestPeriodProperties.test_properties_minutely,  s    UQAAaP~~"""||q   zzQ~~"""1$$${{a}}!!!##r)))$aQQqIWW	
r@   c           	         t        ddddddd      }|j                  dk(  sJ |j                  dk(  sJ |j                  dk(  sJ |j                  dk(  sJ |j
                  dk(  sJ |j                  dk(  sJ |j                  dk(  sJ |j                  dk(  sJ |j                  dk(  sJ |j                  dk(  sJ t        ddddddd      j                  d	k(  sJ y )
Nrp   rZ   rT   r   )r    r   rV   rW   r   ru  r}  r  r   r   r  )r   r   r   rV   rW   r  r  r   ru  r}  r  )r&   s_dates     r)   test_properties_secondlyz-TestPeriodProperties.test_properties_secondly=  s   T!A
 {{d"""~~"""||q   zzQ~~"""1$$${{a}}!!!}}!!!##r)))QAAaPQm	
r@   N) r:   r;   r<   __doc__r#   r=   r>   rU  r[  r^  rO  r  staticmethodr  r   rP   maxr  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r?   r@   r)   rQ  rQ    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- ^" #
	1+ 
O9"O4$
"
r@   rQ  c                       e Zd Zd Zy)TestPeriodComparisonsc                     t        dd      }t        dd      }t        dd      }|||g}|||g}t        |      |k(  sJ y )Nr;  rK   z2000-02z2000-03)r   sorted)r&   janfebmarperiodscorrectPeriodss         r)   test_sort_periodsz'TestPeriodComparisons.test_sort_periodsV  sN    Y$Y$Y$S/sCg.000r@   N)r:   r;   r<   r  r?   r@   r)   r  r  U  s    1r@   r  c                     d} t        d      }t        j                  t        |       5  d|_        d d d        |j
                  }t        j                  t        |       5  d|z  |_        d d d        y # 1 sw Y   DxY w# 1 sw Y   y xY w)Nznot writable2014Q1r      r   )r   r#   r$   AttributeErrorrb   r    )r(   rz   r    s      r)   test_period_immutabler  _  si    
C

C	~S	1 
2 88D	~S	1t8 
2	1	 
2	1 
2	1s   A4 B 4A= B	c                  `    t        dd      } | j                  dk(  sJ | j                  dk(  sJ y )Nz
0001-01-07rE   rT   r  )r   r   rW   )per1s    r)   test_small_year_parsingr  l  s.    ,$D99>>88q==r@   c                     g d} t        dd      }| D ]  }t        |j                  |              | D ]+  }t        d|      }t        |       |j                  dk(  r+J  t	        j
                  t        t              5  t        dd      }d d d        t        |       t        dd      }t        |       y # 1 sw Y   -xY w)	N)rM   rK   rN   rE   r   rP   r   r   rE   r   rW  r   r   r  )r   rE  r   r   rf   rg   rh   r   )r  r  r    s      r)   test_negone_ordinalsr  r  s    1EBS)FV]]4 !  .V{{d""" 
 
	#	#M	B- 
CLBS)FL	 
C	Bs   B<<C)$r   r   r   r!   numpyr   r#   pandas._libs.tslibsr   pandas._libs.tslibs.ccalendarr   r   pandas._libs.tslibs.np_datetimer	   pandas._libs.tslibs.parsingr
   pandas._libs.tslibs.periodr   pandasr   r   r   r   r   pandas._testing_testingrf   r   r   rB   r  rQ  r  r  r  r  r?   r@   r)   <module>r     s    
 
   $ @ 6 ;  0!, !,Hb bJi$ i$X}
 }
@
1 1
r@   