
    I jO                       S r 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	  SSK
JrJrJrJrJr  SSKJrJr  SSKJs  Jr  SSKrSSKJrJrJrJrJrJrJrJ r   SSK!J"r#  SSK$J%r&  SS	K'J(r(J)r)  SS
K*J+r+  \" SSS5      \" SSS5      sr,r-S r. " S S5      r/ " S S5      r0 " S S5      r1 " S S5      r2 " S S5      r3 " S S5      r4 " S S5      r5 " S S5      r6 " S S 5      r7g)!zP
test date_range, bdate_range construction from the convenience range functions
    )datetimetime	timedeltaN)	timezones)BDayCDay
DateOffsetMonthEndprefix_mapping)OutOfBoundsDatetimePandas4Warning)	DataFrameDatetimeIndexSeries	Timedelta	Timestampbdate_range
date_rangeoffsets)_generate_range)FixedOffsetfixed_off_no_name)USFederalHolidayCalendar       c                    XS   :H  nXS   :H  nUS:X  a  U(       a  USS nU$ US:X  a  U(       a  USS nU$ US:X  a  U(       a  U(       a  USS nU$ US:X  a  U(       a  USS nU$ US:X  a  U(       a  USS nU$ US:X  a  USS nU$ USS nU$ )	z8Helper to get expected range from a both inclusive ranger   leftNrightr   neitherboth )begin_to_matchend_to_match
both_rangeinclusive_endpoints
left_matchright_matchexpected_ranges          /root/GenerationalWealth/GenerationalWealth/venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimes/test_date_range.py_get_expected_ranger,   4   s      a=0JR.0Kf$#CR  
	'J#AB  
		)j[#Ab)  
		)k#CR  
		)j#AB  
	&#A  $A    c                   V    \ rS rSrS rS rS r\R                  S 5       r	S r
S rSrg	)
TestTimestampEquivDateRangeP   c                 F    [        SSSS9nUS   n[        SSS9nX2:X  d   eg )N2009041520090519
US/Easterntzr   r   r   selfrngstamptss       r+   test_date_range_timestamp_equiv;TestTimestampEquivDateRange.test_date_range_timestamp_equivV   s/    ZLAAzl3{{r-   c                 F    [        SSSS9nUS   n[        SSS9nX2:X  d   eg )Nr2   r3   dateutil/US/Easternr5   r   r7   r8   s       r+   (test_date_range_timestamp_equiv_dateutilDTestTimestampEquivDateRange.test_date_range_timestamp_equiv_dateutil]   s1    Z4IJAz&;<{{r-   c                     [         R                  " S5      n[        SSUR                  S5      S9nUS   n[	        SUR                  S5      S9nXC:X  d   eg )Npytzr2   r3   r4   r5   r   )pytestimportorskipr   timezoner   )r9   rD   r:   r;   r<   s        r+   -test_date_range_timestamp_equiv_explicit_pytzITestTimestampEquivDateRange.test_date_range_timestamp_equiv_explicit_pytzd   sQ    ""6*ZDMM,4OPAzdmmL&AB{{r-   c                 j    SSK Jn  [        SSU" S5      S9nUS   n[        SU" S5      S9nXC:X  d   eg )Nr   )dateutil_gettzr2   r3   r4   r5   )pandas._libs.tslibs.timezonesrK   r   r   )r9   gettzr:   r;   r<   s        r+   1test_date_range_timestamp_equiv_explicit_dateutilMTestTimestampEquivDateRange.test_date_range_timestamp_equiv_explicit_dateutill   s<    IZE,4GHAzeL&9:{{r-   c                 ^    [        SSS5      n[        USSS9S   n[        U5      nX2:X  d   eg )N        r   Dperiodsfreqr   )r   r   r   )r9   datetime_instancetimestamp_instancer<   s       r+   6test_date_range_timestamp_equiv_from_datetime_instanceRTestTimestampEquivDateRange.test_date_range_timestamp_equiv_from_datetime_instancev   s@    $T1a0 ((913OPQR()'''r-   c                 D    [        SSSS9S   n[        S5      nX:X  d   eg )Nz
2014-03-05r   rT   rU   r   r7   )r9   rY   r<   s      r+   2test_date_range_timestamp_equiv_preserve_frequencyNTestTimestampEquivDateRange.test_date_range_timestamp_equiv_preserve_frequency   s,    'acJ1M|$!'''r-   r#   N)__name__
__module____qualname____firstlineno__r=   rA   rH   tdskip_if_windowsrN   rZ   r]   __static_attributes__r#   r-   r+   r/   r/   P   s5      ((r-   r/   c                      \ rS rSrS rS rS r\R                  R                  S/ SQ5      S 5       r
S r\R                  R                  S/ S	Q5      S
 5       rS rS rS rS rS r\R                  R$                  \R                  R                  SSS/5      S 5       5       rS rS rS rS rS rS r\R                  R                  S/ SQ\" SSS5      \" SSS5      S/\" S 5      \" S!5      S/\" S SS"9\" S!SS"9S/\" S SS"9\" S!SS"9S#//5      S$ 5       rS% rS& rS' rS( r S) r!S* r"S+ r#S, r$S- r%\R                  R                  S.\" S/SS05      \" S/SS15      /\" S2S3S5      \" S2S3S05      //5      S4 5       r&S5 r'\R                  R                  S/ S6Q5      \R                  R                  S7S#S/5      S8 5       5       r(\R                  R                  S/ S6Q5      S9 5       r)S: r*S; r+S< r,S= r-S> r.S? r/S@ r0SA r1SB r2\R                  R                  S/ SCQ5      SD 5       r3\R                  R                  SE/ SFQ5      SG 5       r4SH r5\R                  R                  SSISJ/5      SK 5       r6\R                  R                  SL/ SMQ5      SN 5       r7\R                  R                  SO/ SPQ5      SQ 5       r8SRr9g#)STestDateRanges   c                 @    [        SSSSS9nUR                  S:X  d   eg )Nz
2000-01-01r   YETEST)startrV   rW   name)r   rm   )r9   idxs     r+   test_date_range_name#TestDateRanges.test_date_range_name   s$    |QTOxx6!!!r-   c                     Sn[         R                  " [        US9   [        SSSS9  S S S 5        g ! , (       d  f       g = f)Nz#periods must be an integer, got foomatch1/1/2000foorT   rl   rV   rW   rE   raises	TypeErrorr   r9   msgs     r+   test_date_range_invalid_periods.TestDateRanges.test_date_range_invalid_periods   s-    3]]9C0ZSA 100s   1
?c                     Sn[         R                  " [        US9   [        SSS9  S S S 5        g ! , (       d  f       g = f)Nzperiods must be an integerrr   rt   g      %@rV   rw   rz   s     r+   !test_date_range_fractional_period0TestDateRanges.test_date_range_fractional_period   s+    *]]9C0z40 100s   0
>rW   )2M1m2SM2BQ1bq2BYc                     SU 3n[         R                  " [        US9   [        SSUS9  S S S 5        g ! , (       d  f       g = f)NInvalid frequency: rr   rt   rS   rU   rE   rx   
ValueErrorr   r9   rW   r{   s      r+   +test_date_range_frequency_M_SM_BQ_BY_raises:TestDateRanges.test_date_range_frequency_M_SM_BQ_BY_raises   s4    #D6*]]:S1z148 211	   4
Ac                     [        SSS5      n[        R                  " [        SS9   [	        USSS9  S S S 5        g ! , (       d  f       g = f)N  r   zpass as a string insteadrr   )rT         )endrW   rV   )r   rE   rx   ry   r   )r9   edates     r+   !test_date_range_tuple_freq_raises0TestDateRanges.test_date_range_tuple_freq_raises   s8    q!$]]9,FG5x< HGGs	   <
A
)nsusmsminshrT   c                    [        SU 35      n[        S5      nUS:w  a  SOSn[        X2-   USU-  -   US9n[        [	        SS	5       Vs/ s H	  ocXb-  -   PM     snUUS
9n[
        R                  " XW5        [        USU-  -   X2-   US9n[        / XAS
9n[
        R                  " XW5        [        X2-   X2-   US9n[        X2-   /XAS
9n[
        R                  " XW5        g s  snf )N1z
1970-01-01r   M8[us]M8[ns]rS   rl   r   rW   r   r   dtyperW   )r   r   r   r   rangetmassert_index_equal)r9   rW   rc   r<   	exp_dtypern   nexps           r+   test_date_range_edges$TestDateRanges.test_date_range_edges   s     4&z"|$ $H(	'QV

 "'1+.+Q!&[+.

 	c' q2v+

 Bi;
c' '

 RWIYB
c'- /s   
Cc                     [        S5      n[        R                  " [        SS9   [	        [
        R                  SUS9  S S S 5        g ! , (       d  f       g = f)Nr   Cannot generate range withrr      r   rV   rW   )r   rE   rx   r   r   r   r   )r9   rW   s     r+   )test_date_range_near_implementation_bound8TestDateRanges.test_date_range_near_implementation_bound   s8    |]].6RS9==!$? TSSs   A
Ac                 8   Sn[         R                  " [        US9   [        S[        R
                  SS9  S S S 5        [         R                  " [        US9   [        [        R
                  SSS9  S S S 5        g ! , (       d  f       NJ= f! , (       d  f       g = f)Nz$Neither `start` nor `end` can be NaTrr   
2016-01-01rT   r   )rE   rx   r   r   pdNaTrz   s     r+   test_date_range_nat"TestDateRanges.test_date_range_nat   s`    4]]:S1\rvvC@ 2]]:S1RVVC@ 21 2111s   A:B:
B
Bc                 D   [         R                  " S 5         [        SSSS9nS S S 5        WS   [        S5      :X  d   e[	        U5      S:X  d   eSn[
        R                  " [        US9   [        SS	S
S9  S S S 5        g ! , (       d  f       Nc= f! , (       d  f       g = f)N
1677-09-22iA rT   rv   r   r   rr   z
1969-05-04i 30000DrU   )r   assert_produces_warningr   r   lenrE   rx   r   )r9   dtir{   s      r+   'test_date_range_multiplication_overflow6TestDateRanges.test_date_range_multiplication_overflow   s     ''-<cJC . 1v<00003x6!!!*]].c:|YXF ;: .- ;:s   B +B 
B
Bc                     [        SSSS9n[        US   [        U5      SS9nUR                  U5      (       d   e[        US   [        U5      SS9nUR                  U5      (       d   eg )	Nr   z
2262-04-11rT   r   r   rv   r   r   )r   r   equals)r9   r   dti2dti3s       r+   *test_date_range_unsigned_overflow_handling9TestDateRanges.test_date_range_unsigned_overflow_handling   sh     |CHACsC{{3c"gs3xcB{{3r-   c                    Sn[         R                  " [        US9   [        SSSSS9  S S S 5        [         R                  " [        US9   [        SSSSS	9  S S S 5        g ! , (       d  f       N== f! , (       d  f       g = f)
Nr   rr   
1970-02-01i ' r   r   rl   rV   rW   unit
1969-11-14r   rV   rW   r   rE   rx   r   r   rz   s     r+   .test_date_range_int64_overflow_non_recoverable=TestDateRanges.test_date_range_int64_overflow_non_recoverable   sd     +]].c:\;StT ; ]].c:<3TR ;:	 ;: ;:   A 
A1 
A.1
A?z
s_ts, e_ts)z
2262-02-23r   )r   z
1677-10-22c                     [        U5      n[        U5      n[        X4SS9nUS   U:X  d   eUS   U:X  d   e[        U[        U5      SS9n[        R                  " Xe5        g )Nz-1hr   r   r   r   )r   r   r   r   r   )r9   s_tse_tsrl   r   expectedr   s          r+   >test_date_range_int64_overflow_stride_endpoint_different_signsMTestDateRanges.test_date_range_int64_overflow_stride_endpoint_different_signs   sf     $oE?{e###|s"""S#h-eD
c,r-   c                    Sn[         R                  " [        US9   [        SSSSS9  S S S 5        [         R                  " [        US9   [        SSSSS	9  S S S 5        g ! , (       d  f       N== f! , (       d  f       g = f)
NzCannot generate rangerr   r   i rT   r   rV   rW   r   z
1763-10-12r   r   rz   s     r+   test_date_range_out_of_bounds,TestDateRanges.test_date_range_out_of_bounds  s^    %]].c:|V#DI ;]].c:<cM ;: ;:::r   c                 <    [        SSSS9n[        U5      S:X  d   eg )Nz1/1/2000 00:00z1/1/2000 00:185minrW   rS   )r   r   r9   r:   s     r+   test_date_range_gen_error(TestDateRanges.test_date_range_gen_error  s"    )+;&I3x1}}r-   c                 T   [         R                  " 5       nSn[        XSSS9n[        S5      n[	        [        U5       Vs/ s H	  oQXT-  -   PM     snSUS9n[        R                  " X65        [        SUSS	S9n[        S
S5      nU H  nUR                  5       U:X  a  M   e   g s  snf )N2   F2D)rV   	normalizerW   r   r   r   z1/1/2000 08:15B      )	r   todayr   r   r   r   r   r   r   )	r9   snapr   r:   offsetir   the_timevals	            r+   test_date_range_normalize(TestDateRanges.test_date_range_normalize  s    ~~EE1 (-a11AJ1
 	c,)1CP2;C88:)))  2s    B%c                     [        SSSSSS5      n[        SSSSSS5      nSn[        R                  " [        US	9   [	        XS
SS9  S S S 5        g ! , (       d  f       g = f)N  r   r   rR   (   r   	   VOf the four parameters: start, end, periods, and freq, exactly three must be specifiedrr   
   r   rU   )r   rE   rx   r   r   r9   rl   r   r{   s       r+   #test_date_range_ambiguous_arguments2TestDateRanges.test_date_range_ambiguous_arguments-  s\    q!Q2.tQ1a,4 	 ]]:S1u2C8 211s   A
Ac           	         [        SSSUS9n[        / SQSU S3S S9n[        R                  " X#5        [        S	S
SSUS9n[        [	        SSS9[	        SSS9[	        SSS9/5      R                  U5      n[        R                  " X#5        g )Nz
2018-04-24z
2018-04-27rR   rV   r   )z2018-04-24 00:00:00z2018-04-25 12:00:00z2018-04-27 00:00:00M8[]r   z2018-04-01 01:00:00z2018-04-01 04:00:00zAustralia/Sydney)r6   rV   r   z2018-04-01 01:00:00+1100r5   z2018-04-01 02:00:00+1000z2018-04-01 04:00:00+1000)r   r   r   r   r   as_unitr9   r   resultr   s       r+   #test_date_range_convenience_periods2TestDateRanges.test_date_range_convenience_periods9  s    L,M QvQ-
 	f/ !!!
 !49KL49KL49KL
 '$- 	 	f/r-   c                    [        SSSS9n[        U5      R                  5       n[        R                  " UR                  5       /5      R                  n[        R                  " U/5      R                  n[        R                  " [        SS9   X:H    S S S 5        [        R                  " [        SS9   X!:H    S S S 5        [        / SQ5      nX$:H  n[        R                  " Xe5        [        / SQSS	9nUS   US S 2S4   :H  n[        R                  " Xe5        [        R                  " / S
Q/ SQ/ SQ/5      nX:H  n[        R                  " Xe5        g ! , (       d  f       N= f! , (       d  f       N= f)N
2011-01-01rR   r4   rV   r6   zUnable to coerce to Seriesrr   )TTTr   rm   )TFF)FTF)FFT)r   r   to_framenparrayto_listTrE   rx   r   r   r   assert_frame_equalassert_series_equalassert_numpy_array_equal)r9   r:   dfarrarr2r   resultss          r+    test_date_range_index_comparison/TestDateRanges.test_date_range_index_comparisonU  s!   q\BC[!!#hh'))xx  ]]:-IJI K ]]:-IJI K /0*
g0,15Q%41:%
w188!#79MN
 *
##G6) KJ KJs   E4E$
E!$
E2zstart,end,result_tz)2018010120180103r4   i  r   rR   r4   r  r  r5   Nc                 ^    [        XSUS9n[        SSSSS9n[        R                  " XE5        g )NrR   r  r  rT   r4   rV   rW   r6   r   r   r   )r9   rl   r   	result_tzr   r   s         r+   test_date_range_linspacing_tz,TestDateRanges.test_date_range_linspacing_tzq  s0    ( Ei@j!#,O
f/r-   c                 n    SnSn[        XSS9n[        X[        SS9S9n[        R                  " X45        g )N
2020-01-01z
2020-01-113Dr   rR   )days)r   r   r   r   )r9   rl   r   rng1rng2s        r+   test_date_range_timedelta(TestDateRanges.test_date_range_timedelta  s7    %40%9!+<=
d)r-   c                 Z   Sn[         R                  " [        US9   [        SS9  S S S 5        [         R                  " [        US9   [        SS9  S S S 5        [         R                  " [        US9   [        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        [         R                  " [        US9   [        5         S S S 5        g ! , (       d  f       GN= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       g = f)Nr   rr   rt   )rl   )r   r   r   r   )rl   rW   )r   rW   rU   r   rz   s     r+   test_range_misspecified&TestDateRanges.test_range_misspecified  s   4 	
 ]]:S1Z( 2 ]]:S1:& 2 ]]:S1r" 2 ]]:S1Zc2 2 ]]:S1:C0 2 ]]:S1r, 2 ]]:S1L 21% 21 21 21 21 21 21 21sS   
D5
E2
EE)	E:5F!F5
E
E
E&)
E7:
F
F
F*c                 N    [        [        S5      SSS9n[        U5      S:X  d   eg )Nz1960-04-01 00:00:00L   zQS-JANrU   )r   r   r   )r9   r   s     r+   test_compat_replace"TestDateRanges.test_compat_replace  s*     I&;<bxX6{b   r-   c           	          [         R                  " SS9nSn[        R                  " [        US9   [        [        SSS5      [        SSS5      US9  S S S 5        g ! , (       d  f       g = f)	Nr   )minutez4Offset <DateOffset: minute=5> did not increment daterr   r         r   )r   r	   rE   rx   r   r   r   )r9   r   r{   s      r+   test_catch_infinite_loop'TestDateRanges.test_catch_infinite_loop  sO    ##1-D]]:S1xb"-xb"/EFS 211s   "A
A)c                     [        S5      R                  SSS9n[        S5      R                  SSS9n[        SSS9UU/n[        USS	9R                  U5      n[	        S
SSSUS9n[
        R                  " Xe5        g )Nz2010-11-07 01:00:00
US/PacificT)	ambiguousFz2010-11-07 00:00:00r5   r   r   z	2010-11-7rR   )rl   rV   rW   r6   r   )r   tz_localizer   r   r   r   r   )r9   r   pre_dstpst_dstexpect_datar   r   s          r+   test_construct_over_dst&TestDateRanges.test_construct_over_dst  s    12>>D ? 
 12>>E ? 
 +=

 !37??Eqs|$
 	f/r-   c                     [        SSSUS9n[        [        S5      [        S5      [        S5      /SS9R                  U5      n[        R
                  " X#5        g )Nz2013-01-01 00:00:00+09:00z2013/01/01 02:00:00+09:00r   rW   r   z2013-01-01 01:00:00+09:00z2013-01-01 02:00:00+09:00r   )r   r   r   r   r   r   r   s       r+   5test_construct_with_different_start_end_string_formatDTestDateRanges.test_construct_with_different_start_end_string_format  sg    ''	
 !565656
 
 '$- 	 	f/r-   c                     Sn[         R                  " [        US9   [        SS[	        S5      S9  S S S 5        g ! , (       d  f       g = f)Nz.Offset <0 \* MonthEnds> did not increment daterr   rt   z1/1/2001r   r   )rE   rx   r   r   r
   rz   s     r+   test_error_with_zero_monthends-TestDateRanges.test_error_with_zero_monthends  s1    ?]]:S1z:HQK@ 211s	   :
Ac                     [        SS9n[        SSX!S9n[        SSS5      n[        [	        S5       Vs/ s H	  oTXR-  -   PM     snS	U S
3US9n[
        R                  " X65        g s  snf )NrR   )months2011-1-1z	2012-1-31r;  r   r   r   r   r   r   )r	   r   r   r   r   r   r   )r9   r   r   r   rl   r   r   s          r+   test_range_bugTestDateRanges.test_range_bug  sn    1%J&Lq!$ ).q2AQZ2CvQ-f
 	f/ 3s   A&c                 d   [         R                  " S5      nUR                  S5      nUR                  [	        SSS5      5      nUR                  [	        SSS5      5      n[        USS9nUR                  R                  UR                  :X  d   eUS   U:X  d   eUS   U:X  d   e[        USS	9nUR                  R                  UR                  :X  d   eUS   U:X  d   eUS   U:X  d   e[        X4S
9nUR                  R                  UR                  :X  d   eUS   U:X  d   eUS   U:X  d   eg )NrD   r4   r   r   rR   rl   rV   r   r   r   rV   rl   r   )rE   rF   rG   localizer   r   r6   zone)r9   rD   r6   rl   r   drs         r+   test_range_tz_pytz!TestDateRanges.test_range_tz_pytz  s   ""6*]]<(HT1a01kk(4A./eQ/uuzzRWW$$$!u~~!u||C+uuzzRWW$$$!u~~!u||e-uuzzRWW$$$!u~~!u||r-   z
start, endrQ      r.  i  r-  c                 l   [         R                  " S5      nUR                  S5      n[        XS9n[        X$S9n[	        XSS9nUS   U:X  d   eUS   U:X  d   e[
        R                  " UR                  S:H  5      (       d   e[	        XSUS9nUS   U:X  d   eUS   U:X  d   e[
        R                  " UR                  S:H  5      (       d   e[	        UR                  S S	9UR                  S S	9SUS9nUS   U:X  d   eUS   U:X  d   e[
        R                  " UR                  S:H  5      (       d   eg )
NrD   r4   r5   rT   r   r   r   rW   r6   tzinfo)	rE   rF   rG   r   r   r  allhourreplace)r9   rl   r   rD   r6   rL  s         r+   test_range_tz_dst_straddle_pytz.TestDateRanges.test_range_tz_dst_straddle_pytz  s5    ""6*]]<(%'#-!u~~"v}}vvbggl####4!u~~"v}}vvbggl####MMM&KKtK$	
 !u~~"v}}vvbggl####r-   c                   ^ SSK Jm  U4S jn[        SSSU" S5      S9n[        SSSU" S5      S9n[        USS	9nUR                  U" S5      :X  d   eUS   U:X  d   eUS
   U:X  d   e[        USS9nUR                  U" S5      :X  d   eUS   U:X  d   eUS
   U:X  d   e[        X#S9nUR                  U" S5      :X  d   eUS   U:X  d   eUS
   U:X  d   eg )Nr   )maybe_get_tzc                    > T" SU -   5      $ )Nz	dateutil/r#   )xrZ  s    r+   <lambda>7TestDateRanges.test_range_tz_dateutil.<locals>.<lambda>*  s    |K!O4r-   r   r   r4   rR  rR   rG  r   rH  rI  )rL   rZ  r   r   r6   )r9   r6   rl   r   rL  rZ  s        @r+   test_range_tz_dateutil%TestDateRanges.test_range_tz_dateutil$  s     	?4q!B|,<=tQ"\*:;eQ/uu<((((!u~~!u||C+uu<((((!u~~!u||e-uu<((((!u~~!u||r-   )1Dr  2ME7W3hrj   r6   c                     [        SUS9n[        SUS9n[        XEX1S9n[        XESUS9n[        XEXs5      n[        R                  " X5        g )N2011/1/1r5   2014/1/1)	inclusiverW   r"   r   r   r,   r   r   )	r9   rW   r6   inclusive_endpoints_fixturebeginr   result_ranger&   r*   s	            r+   test_range_closed TestDateRanges.test_range_closed>  s[    
 *,
r*!"=
  f4H
,

 	n;r-   c                     [        S5      n[        S5      n[        SSS9n[        SSS9n[        UUUUSS9n[        X4SUSS9n[        UUUU5      n	[        R                  " X5        g )Nrf  rg  r4   r5   )rh  rW   r6   r"   ri  )
r9   rW   rj  rk  r   begintzendtzrl  r&   r*   s
             r+   1test_range_with_tz_closed_with_tz_aware_start_end@TestDateRanges.test_range_with_tz_closed_with_tz_aware_start_endP  s     *%
#J<8*6!1
  &t

 -'	
 	n;r-   c                 z   [        SSSUS9n[        SSSUS9n[        SSSUS9n[        SSSUS9nUnUnUnUS:X  a  USS  nOUS	:X  a  US S
 nOUS:X  a
  USS  nUS S
 nUSS
 n	[        R                  " X&5        [        R                  " X75        [        R                  " XH5        [        R                  " XY5        g )Nz
2015-09-12z
2015-12-01zQS-MARrW   rh  z
2015-09-01z
2015-09-11r    r   r   r   r"   r  )
r9   rj  right_boundaryleft_boundaryboth_boundaryneither_boundaryexpected_rightexpected_leftexpected_bothexpected_neithers
             r+   test_range_closed_boundary)TestDateRanges.test_range_closed_boundaryl  s    #1	
 #1	
 #1	
 &1	
 '%%&'1)!"-M(F2*3B/N(F2*12.N)#2.M(2.
n=
m;
m;
.Ar-   c                 x   Un[        SSSUS9n[        SSSUS9n[        R                  " X45        [        SSSUS9n[        SS	SUS9n[        R                  " XV5        [        SS
SUS9n[        SSSUS9n[        R                  " Xx5        [        SS
SUS9n	[        SSSUS9n
[        R                  " X5        g )N20142015MErQ  z
2014-01-31
2014-12-31MS
2014-01-01
2015-01-012020rj   z
2019-12-31YSr  r  )r9   tz_naive_fixturer6   r   	expected1r!  	expected2rng3	expected3rng4	expected4s              r+   test_date_range_years_only)TestDateRanges.test_date_range_years_only  s    &&t;|\L	
d.&&t;|\L	
d.&&t;|\L	
d.&&t;|\L	
d.r-   c                     [        SSSS9n[        SSSS9n[        SS/S	SS S
9n[        SS/S	SS S
9n[        R                  " X5        [        R                  " X$5        g )Nz2005-01-12 10:00z2005-01-12 16:00345minr   z2005-01-13 10:00z2005-01-13 16:00z2005-01-12 10:00:00z2005-01-12 15:45:00datetime64[us]r   rW   r6   z2005-01-13 10:00:00z2005-01-13 15:45:00r   r   r   r   )r9   result_1result_2
expected_1
expected_2s        r+   test_freq_divides_end_in_nanos-TestDateRanges.test_freq_divides_end_in_nanos  sz    02D8T02D8T""$9:"	

 #"$9:"	

 	h3
h3r-   c                 x    [        SS[        SS9S9n[        U5      S:X  d   eUS   [        SSS	S
5      :X  d   eg )Nz2010-09-01 05:00:00r   rO  hoursrU   r   r   r   r   r   )r   r	   r   r   r   s     r+   test_cached_range_bug$TestDateRanges.test_cached_range_bug  sD    .RSATU3x2~~1v$1a0000r-   c                 P    [        SSS9n[        USSS9n[        U5      S:X  d   eg )N20130220 10:00r4   r5   r   r  )r   r   r   )r9   rl   r   s      r+   test_timezone_comparison_bug+TestDateRanges.test_timezone_comparison_bug  s/    *|<E1>6{ar-   c                     [        SSS9nSn[        R                  " [        US9   [	        USSS9  S S S 5        g ! , (       d  f       g = f)	Nr  r4   r5   z0Inferred time zone not equal to passed time zonerr   r   zEurope/Berlinr  )r   rE   rx   AssertionErrorr   )r9   rl   r{   s      r+   test_timezone_comparison_assert.TestDateRanges.test_timezone_comparison_assert  s:    *|<@]]>5uaO< 655s	   ;
A	c                 p    Un[        SSSUS9n[        SSSUS9S S S2   n[        R                  " X45        g )Nz
2011-06-01r  z-1MS)rl   r   rW   r6   1MS)r   rl   rW   r6   r   r  )r9   tz_aware_fixturer6   r   r   s        r+   1test_negative_non_tick_frequency_descending_dates@TestDateRanges.test_negative_non_tick_frequency_descending_dates  sE    ,LvRTU,lSUVbD
 	f/r-   c                     SnSn[        X#SUS9n[        X#SSS9nUS:X  a  USS nOUS;   a  US S  n[        R                  " UW5        g )	Nz
2021-09-02rT   )rl   r   rW   rh  r"   r!   r   r   )r   r    r"   r  )r9   rj  rl   r   r   r&   r   s          r+    test_range_where_start_equal_end/TestDateRanges.test_range_where_start_equal_end  sd    s6Q
  e3&Q
&)3!!B'H(,EE!!}H
fh/r-   c                 v    [        SSSS9n[        SSUSS9n[        / SQSS	9n[        R                  " X#5        g )
Nr   9   rR   )r  r  nanosecondsz1970-01-01 00:00:00a)r   rV   rW   rm   )
z1968-08-02T05:59:59.999999973z1968-09-28T15:59:59.999999976z1968-11-25T01:59:59.999999979z1969-01-21T11:59:59.999999982z1969-03-19T21:59:59.999999985z1969-05-16T07:59:59.999999988z1969-07-12T17:59:59.999999991z1969-09-08T03:59:59.999999994z1969-11-04T13:59:59.999999997z1970-01-01T00:00:00.000000000r  )r	   r   r   r   r   )r9   rW   r   r   s       r+   .test_freq_dateoffset_with_relateivedelta_nanos=TestDateRanges.test_freq_dateoffset_with_relateivedelta_nanos  sF    ; 5rSVW  
 	f/r-   )2T2L1l1U2N2nc                     SU 3n[         R                  " [        US9   [        SSUS9  S S S 5        g ! , (       d  f       g = fNr   rr   rt   r   rU   r   r   s      r+   !test_frequency_H_T_S_L_U_N_raises0TestDateRanges.test_frequency_H_T_S_L_U_N_raises  s4    #D6*]]:S1z148 211r   	freq_depr)mbmCBMSMBQzq-febzy-mayzY-MAYc                     SU 3n[         R                  " [        US9   [        SSUS9  S S S 5        g ! , (       d  f       g = fr  r   )r9   r  r{   s      r+   test_frequency_raises$TestDateRanges.test_frequency_raises  s6     $I;/]]:S1z19= 211r   c                     [        SSS5      n[        USSS9n[        U5      S:X  d   eUS   US[        R                  " 5       -  -   :X  d   eUR
                  S:X  d   eg )	N  r.     1Br   )rl   rW   rV   r   r   )r   r   r   r   r   rW   )r9   sdatern   s      r+   test_date_range_bday#TestDateRanges.test_date_range_bday  s`    r2&u4<3x2~~1vW\\^!33333xx3r-   200Az2A-MAYc                     [         R                  " SUSS9S   nSU 3n[        R                  " [        US9   [        SSUS9  S S S 5        g ! , (       d  f       g = f)	Nz[0-9]*r   )maxsplitr   rr   rt   r   rU   )resplitrE   rx   r   r   )r9   rW   freq_msgr{   s       r+   test_frequency_A_raises&TestDateRanges.test_frequency_A_raises  sK    88HdQ7:#H:.]]:S1z148 211s   A
Azfreq,freq_depr))2W2w)z2W-WEDz2w-wed)2B2b)r   2d)2C2cc                     SUSS   S3n[        SSUS9n[        R                  " [        US9   [        SSUS9nS S S 5        [        R                  " WU5        g ! , (       d  f       N&= f)N'r   z8' is deprecated and will be removed in a future version.rt   rS   rU   rr   )r   r   r   r   r   )r9   rW   r  depr_msgr   r   s         r+   (test_date_range_depr_lowercase_frequency7TestDateRanges.test_date_range_depr_lowercase_frequency  sj     	!"VW 	 j!$?''hG
AIFF H
fh/ HGs   A
A(zfreq_removed,freq))100AY)z2A-DECzY-DEC)100ASr  )z2AS-MAYzYS-MAYc                     SU 3n[         R                  " [        US9   [        SSUS9  S S S 5        g ! , (       d  f       g = f)NzDid you mean rr   rt   r   rU   r   )r9   rW   freq_removedr{   s       r+   9test_error_message_for_removed_year_yearbegin_frequenciesHTestDateRanges.test_error_message_for_removed_year_yearbegin_frequencies2  s6     dV$]]:S1z1<@ 211r   r#   ):r_   r`   ra   rb   ro   r|   r   rE   markparametrizer   r   r   r   r   r   r   r   slowr   r   r   r   r   r   r  r   r   r  r"  r%  r)  r/  r8  r<  r?  rD  rM  rW  r_  rm  rr  r~  r  r  r  r  r  r  r  r  r  r  r  r  r  r  re   r#   r-   r+   rg   rg      s   "B
1
 [[V%MN9 O9= [[V%MN"( O"(H@AG
 	S [[[[35QR- -N*$
90878 [[2dAq!8D!Q#7Fz"Ij$9<H*6*6 *6*6	
$0%$0*8!T0&0$A
	0, [[dAq!8D!R#89dB"HT2q$9:	
$$24 [[V%JK[[TD,#78< 9 L<  [[V%JK< L<6,B\/&4&1
 =00 0* [[V%IJ9 K9
 [[N>> [[Vfh%789 99 [[	
		0		0 [[	
AAr-   rg   c                      \ rS rSrSrS r\R                  R                  SSS/5      S 5       r	\R                  R                  SSS/5      S 5       r
S	 rS
 r\R                  R                  SSS/5      S 5       r\R                  R                  SSS/5      S 5       r\R                  R                  S/ SQ/ SQ/ SQ/ SQS\" SS9S//5      S 5       rSrg)TestDateRangeTZiC  z#Tests for date_range with timezonesc                 4    [        SSSSS9nUR                    g )Nz
2012-01-01z
2012-01-10rT   HongkongrQ  )r   rU  )r9   rL  s     r+   test_hongkong_tz_convert(TestDateRangeTZ.test_hongkong_tz_convertF  s    lL 	r-   tzstrr4   r@   c                     [        SSSSS9nUR                  S:H  R                  5       (       d   e[        SSUS	9nUR                  n[        R                  " S/S-  S
S9n[
        R                  " X45        g )Nz03/06/2012 00:00   zW-FRIr4   r  r   z
2012-11-02r   r  int32r   )r   rU  rT  r   Indexr   r   )r9   r  rL  r   r   s        r+   #test_date_range_span_dst_transition3TestDateRangeTZ.test_date_range_span_dst_transitionM  sm    
 *Cg,W1!!####bU;88QC"HG4
f/r-   c                     [         R                  " U5      n[        SSUS9n[        SSUS9n[        R                  " X45        g )Nrt   r   r  )r   rZ  r   r   r   )r9   r  r6   r   r   s        r+   %test_date_range_timezone_str_argument5TestDateRangeTZ.test_date_range_timezone_str_argument[  s<    ##E*Ju=j"<
f/r-   c           
      T   [        SS5      n[        SSSSSSUS9n[        SS	SSSSUS9n[        X#S
9nXR                  :X  d   e[        U[	        U5      US9n[
        R                  " XE5        [        SS5      nUR                  UR                  :H  R                  5       (       d   eg )Ni  z+07:00  rR   r-  r   r   rR  rO  rI  r  z3/11/2012 05:00:00+07:00z6/11/2012 05:00:00+07:00)	r   r   r   r6   r   r   r   valuesrT  )r9   offrl   r   r:   r!  r  s          r+   test_date_range_with_fixed_tz-TestDateRangeTZ.test_date_range_with_fixed_tzc  s    #x(q"aAc:tQAq!C8u.ff}}%Sc:
c(46PQ

dkk)..0000r-   c           
          [         n[        SSSSSSUS9n[        SSSSSSUS9n[        X#S9nXR                  :X  d   e[        R
                  " X#/5      nXR                  :X  d   eg )	Nr  rR   r-  r   r   rR  rO  rI  )r   r   r   r6   r   r  )r9   r  rl   r   r:   rn   s         r+   'test_date_range_with_fixedoffset_noname7TestDateRangeTZ.test_date_range_with_fixedoffset_nonamep  si    q"aAc:tQAq!C8u.ff}}hh|$ff}}r-   c                 h    [        SUS9nUR                  S:X  d   e[        SSSUS9nX#S   :X  d   eg )	Nz3/11/2012 05:00r5   r   z3/11/2012 04:00r   r   r  r   )r   rU  r   )r9   r  r;   r:   s       r+   test_date_range_with_tz'TestDateRangeTZ.test_date_range_with_tzz  s>    +6zzQ*BSUKAr-   r6   Europe/Londonzdateutil/Europe/Londonc                     [         R                  " [        SS9   [        SSSSS9  S S S 5        [        SSSUSS	9nUS
   [	        SUS9:X  d   eUS   [	        SUS9:X  d   eg ! , (       d  f       NB= f)NzCannot infer dst timerr   z2013-10-26 23:00z2013-10-27 01:00r  r   r6   rW   inferrW   r6   r3  r   r5   r   z2013-10-27 01:00:00+0000rE   rx   r   r   r   )r9   r6   timess      r+   "test_date_range_ambiguous_endpoint2TestDateRangeTZ.test_date_range_ambiguous_endpoint  s    
 ]]:-DE"$6?QT F
  2w
 Qx9%7B????RyI&@RHHHH FEs   A##
A1ztz, option, expected)r2  shift_forward2019-03-10 03:00)dateutil/US/Pacificr  r  )r2  shift_backward2019-03-10 01:00)r  r  r  r2  r   r  r  c                     [         R                  " [        SS9   [        SSSSS9  S S S 5        [        SSSXS9nUS	   [	        X1S
9:X  d   eg ! , (       d  f       N-= f)Nz2019-03-10 02:00:00rr   z2019-03-10 00:00z2019-03-10 02:00r2  r   r  )rW   r6   nonexistentr   r5   r  )r9   r6   optionr   r  s        r+   $test_date_range_nonexistent_endpoint4TestDateRangeTZ.test_date_range_nonexistent_endpoint  sd     ]]:-BC"$6<c D
  2
 RyIh6666 DCs   A
Ar#   N)r_   r`   ra   rb   __doc__r  rE   r  r  r  r   r  r	  r  r  r   r  re   r#   r-   r+   r  r  C  s   - [[W|5J&KL0 M0 [[W|5J&KL0 M01 [[W|5J&KL M [[TO5M#NOI PI [[?H@I91-/AB	
	7	7r-   r  c                   T   \ rS rSr\R
                  R                  SS\" 5       4S\" 5       4/5      S 5       r	S r
S rS rS	 rS
u  rrSu  rr\R
                  R                  S\" \\S9\" \5      4\" \5      \" \\S94\" \\S9\" \\S94\" \\S9\" \\S94/5      S 5       rSrg)TestGenRangeGenerationi  freqstr,offsetr   Cc           
          [        [        [        [        S USS95      n[        [        [        [        S USS95      nX4:X  d   eg )Nr   )rV   r   r   )listgenerate_rangeSTARTEND)r9   freqstrr   r   r!  s        r+   test_generate$TestGenRangeGeneration.test_generate  s>     N5#tFQUVWN5#tGRVWX||r-   c           
          [        [        [        SSS5      S S[        5       SS95      n[        SSS5      [        SSS5      /nX:X  d   eg )Nr   rR   r  r   r   rl   r   rV   r   r      r'  r(  r   r   r9   r:   r   s      r+   test_1TestGenRangeGeneration.test_1  sV    tQ+v
 T1b)8D!R+@Ar-   c           
          [        [        [        SSS5      [        SSS5      S [        5       SS95      n[        SSS5      [        SSS5      [        SSS5      /nX:X  d   eg )N  r   rR   r   r/  r   r1  r2  s      r+   test_2TestGenRangeGeneration.test_2  sk    tQ*T1a(v
 T1a((4A*>qRS@TUr-   c           
      ~    [        [        [        SSS5      [        SSS5      S [        5       SS95      n/ nX:X  d   eg )Nr6  r   r   rO  r   r/  r1  r2  s      r+   test_3TestGenRangeGeneration.test_3  sH    tQ*T1a(v
 r-   c                     [        SSSS9n[        SSSS9n/ SQn/ SQn[        US	S
S S9n[        US	SS S9n[        R                  " X5        [        R                  " X&5        g )Nz2015-04-15 00:00:03z2016-04-22 00:00:00QEr   z2015-06-22 00:00:04W)z2015-06-30 00:00:03z2015-09-30 00:00:03z2015-12-31 00:00:03z2016-03-31 00:00:03)
z2015-04-19 00:00:03z2015-04-26 00:00:03z2015-05-03 00:00:03z2015-05-10 00:00:03z2015-05-17 00:00:03z2015-05-24 00:00:03z2015-05-31 00:00:03z2015-06-07 00:00:03z2015-06-14 00:00:03z2015-06-21 00:00:03r  zQE-DECr  W-SUNr  )r9   result1result2expected1_listexpected2_listr  r  s          r+    test_precision_finer_than_offset7TestGenRangeGeneration.test_precision_finer_than_offset  s    '-B
 '-B


 ""2d
	 ""2T
	 	g1
g1r-   )
2017-01-01rF  )r4   r  z	start,endr5   c                    Sn[         R                  " [        US9   [        X5        S S S 5        [         R                  " [        US9   [        X[	        5       S9  S S S 5        g ! , (       d  f       NC= f! , (       d  f       g = f)Nz>Start and end cannot both be tz-aware with different timezonesrr   r   )rE   rx   ry   r   r   r   s       r+   test_mismatching_tz_raises_err5TestGenRangeGeneration.test_mismatching_tz_raises_err  sW     O]]9C0u" 1]]9C0u/ 10 1000s   A%	A6%
A36
Br#   N)r_   r`   ra   rb   rE   r  r  r   r   r,  r3  r7  r:  rD  dt1dt2tz1tz2r   rH  re   r#   r-   r+   r#  r#    s    [[$&M$&M	

!2F *HC,HC[[ss#Ys^4s^Yss34ss#Yss%;<ss#Yss%;<		
00r-   r#  c                   >    \ rS rSrS rS rS rS rS rS r	S r
S	rg
)TestBusinessDateRangei  c                 ,   [        [        [        [        5       S9  [        [        S[        5       S9  [        [        S[        5       S9  Sn[        R
                  " [        US9   [        SSS	5        S S S 5        [        R
                  " [        US9   [        SSS	5        S S S 5        S
n[        R
                  " [        US9   [        [        [        SS S9  S S S 5        g ! , (       d  f       Nv= f! , (       d  f       NX= f! , (       d  f       g = f)Nr   r   rU   r   z!periods must be an integer, got Brr   rC  2012-1-1r   z>freq must be specified for bdate_range; use date_range insteadr   )r   r)  r*  r   rE   rx   ry   r   rz   s     r+   test_constructor&TestBusinessDateRange.test_constructor  s    E3TV,E2DF3r71]]9C0z:s3 1 ]]9C0
J4 1 O]]9C0sBT: 10 10 10 10s$   %C#C4D#
C14
D
Dc                     [        SSS5      n[        USS9nUS[        5       -  -
  n[        U5      S:X  d   eUS   U:X  d   eUS   U:X  d   eg )	Nr   r      r   rH     r   r   )r   r   r   r   r9   r   rL  	firstDates       r+   	test_miscTestBusinessDateRange.test_misc(  s^    tQ#S"-"tv+%	2w"}}!u	!!!"v}}r-   c                    S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        [         R                  " [        US9   [	        USS9  S S S 5        [         R                  " [        US9   [	        X5        S S S 5        g ! , (       d  f       N= f! , (       d  f       Ny= f! , (       d  f       N^= f! , (       d  f       g = f)Nz
2007/100/1z;Unknown datetime string format, unable to parse: 2007/100/1rr   r   rG  rH  )rE   rx   r   r   r   )r9   badly_formed_dater{   s      r+   test_date_parse_failure-TestBusinessDateRange.test_date_parse_failure1  s    (K]]:S1'( 2 ]]:S1/< 2 ]]:S1-r: 2 ]]:S1)= 21 21 21 21 21s/   B8C	7C#C+8
C	
C
C(+
C9c                     [        SS5      n[        SS5      nUR                  R                  [        5       :X  d   eUR	                  U5      n[        U[        5      (       d   eg )N	12/5/2011	12/2/2011)r   _datarW   r   union
isinstancer   r9   r   r!  r   s       r+   test_daterange_bug_456,TestBusinessDateRange.test_daterange_bug_456A  sS    ;4;4zz$&(((D!&-0000r-   c                 j    SnSn[        X#SUS9nSnSn[        XVSS9n[        R                  " XG5        g )	Nz
2018-07-21z
2018-07-29r   ru  z
2018-07-23z
2018-07-27rT   r   r  )r9   rj  rl   r   r   
bday_startbday_endr   s           r+   test_bdays_and_open_boundaries4TestBusinessDateRange.test_bdays_and_open_boundariesJ  s?    ES<WX!
j=
f/r-   c                     [         R                  R                  S5      R                  5       n[	        US SSS9n[        U/SS9n[        R                  " X#5        g )NrT   r   r   r   r   )r   maxfloorto_pydatetimer   r   r   r   )r9   rl   r:   r   s       r+   test_bday_near_overflow-TestBusinessDateRange.test_bday_near_overflowV  sK    ##C(668D!#> %s3
c,r-   c                     Sn[         R                  R                  S5      R                  5       n[        R
                  " [        US9   [        USSSS9  S S S 5        g ! , (       d  f       g = f)Nz"Out of bounds nanosecond timestamprT   rr   r   r   r   r   )r   rn  ro  rp  rE   rx   r   r   )r9   r{   rl   s      r+   test_bday_overflow_error.TestBusinessDateRange.test_bday_overflow_error]  sM    2##C(668]].c:uac= ;::s   	A
A-r#   N)r_   r`   ra   rb   rR  rY  r]  rf  rk  rq  rt  re   r#   r-   r+   rO  rO    s%    ; > 1	0->r-   rO  c            
          \ rS rSrS rS rS rS rS rS r	S r
S	 r\R                  R                  S
\ V Vs/ s H*  oR!                  5       R#                  S5      (       d  M(  UPM,     snn 5      S 5       r\R                  R                  S/ SQ5      S 5       r\R                  R                  SSSS/4SSS/4SSSS/4/5      S 5       rS rS rS rSrgs  snn f )TestCustomDateRangeie  c                    [        [        [        [        5       S9  [        [        S[        5       S9  [        [        S[        5       S9  Sn[        R
                  " [        US9   [        SSS	5        S S S 5        [        R
                  " [        US9   [        SSS	5        S S S 5        g ! , (       d  f       N>= f! , (       d  f       g = f)
Nr   r   rU   r   z!periods must be an integer, got Crr   rC  rQ  r%  )r   r)  r*  r   rE   rx   ry   r   rz   s     r+   rR  $TestCustomDateRange.test_constructorf  s    E3TV,E2DF3r71]]9C0z:s3 1 ]]9C0
J4 10 10 10s   %B+B<+
B9<
C
c                     [        SSS5      n[        USSS9nUS[        5       -  -
  n[        U5      S:X  d   eUS   U:X  d   eUS	   U:X  d   eg )
Nr   r   rU  r   r%  r   rV  r   r   )r   r   r   r   rW  s       r+   rY  TestCustomDateRange.test_miscr  s`    tQ#S"37"tv+%	2w"}}!u	!!!"v}}r-   c                     [        SSSS9n[        SSSS9nUR                  R                  [        5       :X  d   eUR	                  U5      n[        U[        5      (       d   eg )Nr`  r%  r   ra  )r   rb  rW   r   rc  rd  r   re  s       r+   rf  *TestCustomDateRange.test_daterange_bug_456{  sW    ;#>;#>zz$&(((D!&-0000r-   c                     [        SSSUS9n[        / SQSU S3SS9n[        R                  " X#5        UR                  UR                  :X  d   eg )	N
2013-05-01rR   r%  r   )r  
2013-05-02
2013-05-03r   r   r   )r   r   r   r   rW   r   s       r+   test_cdaterange#TestCustomDateRange.test_cdaterange  sR    \13TJ 6D6mRU
 	f/{{hmm+++r-   c                 8   [        SSSSUS9n[        / SQSU S3UR                  S	9n[        R                  " X#5        UR                  UR                  :X  d   eS
n[
        R                  " [        US9   [        SSSS9  S S S 5        g ! , (       d  f       g = f)Nr  rR   r%  Sun Mon Tue Wed Thu)rV   rW   weekmaskr   )r  r  
2013-05-05r   r   r   [a custom frequency string is required when holidays or weekmask are passed, got frequency Brr   )rV   r  r   r   rW   r   r   rE   rx   r   r9   r   r   r   r{   s        r+   test_cdaterange_weekmask,TestCustomDateRange.test_cdaterange_weekmask  s    !#8MTX
 !6vQ-

 	f/{{hmm+++3 	 ]]:S1a:OP 211s   6B
Bc                 <   [        SSSS/US9n[        / SQSU S3UR                  S9n[        R                  " X#5        UR                  UR                  :X  d   eS	n[
        R                  " [        US
9   [        SSS/S9  S S S 5        g ! , (       d  f       g = f)Nr  rR   r%  )rV   rW   holidaysr   )r  r  
2013-05-06r   r   r   r  rr   )rV   r  r  r  s        r+   test_cdaterange_holidays,TestCustomDateRange.test_cdaterange_holidays  s    !#T
 !6vQ-

 	f/{{hmm+++3 	 ]]:S1a<.I 211s   7B
Bc           	          [        SSSSS/US9n[        / SQSU S3UR                  S	9n[        R                  " X#5        UR                  UR                  :X  d   eg )
Nr  rR   r%  r  )rV   rW   r  r  r   )r  r  r  r   r   r   )r   r   rW   r   r   r   s       r+   %test_cdaterange_weekmask_and_holidays9TestCustomDateRange.test_cdaterange_weekmask_and_holidays  sg    *"^
 !6vQ-

 	f/{{hmm+++r-   c                     Sn[         R                  " [        US9   [        SSSS/S9  S S S 5        g ! , (       d  f       g = f)Nr  rr   r  rR   r  )rV   r  r  )rE   rx   r   r   rz   s     r+   2test_cdaterange_holidays_weekmask_requires_freqstrFTestCustomDateRange.test_cdaterange_holidays_weekmask_requires_freqstr  s>    3 	 ]]:S1.&	 211s	   3
ArW   r%  c                     [        [        [        USS/S9  US-   nSU 3n[        R                  " [
        US9   [        [        [        US9  S S S 5        g ! , (       d  f       g = f)NMon Wed Fri
2009-03-14rW   r  r  FOOz!invalid custom frequency string: rr   r   )r   r)  r*  rE   rx   r   )r9   rW   bad_freqr{   s       r+   test_all_custom_freq(TestCustomDateRange.test_all_custom_freq  sV    
 	3TM\N	
 %<1(<]]:S1s2 211s   A
A%	start_end))z2018-01-01T00:00:01.000Zz2018-01-03T00:00:01.000Z)z2018-01-01T00:00:00.010Zz2018-01-03T00:00:00.010Z)z2001-01-01T00:00:00.010Zz2001-01-03T00:00:00.010Zc                 d    Uu  p#[        X#SSS9n[        U/SS9n[        R                  " XE5        g )Nr   r   )rl   r   rV   rh  zM8[us, UTC]r  r  )r9   r  rl   r   r   r   s         r+   &test_range_with_millisecond_resolution:TestCustomDateRange.test_range_with_millisecond_resolution  s5     
%!vN %>
f/r-   zstart,period,expectedz2022-07-23 00:00:00+02:00r   z2022-07-25 00:00:00+02:00z2022-07-22 00:00:00+02:00r   c                 x    [        XSS9n[        U5      R                  S5      n[        R                  " XC5        g )Nr%  rv   r   )r   r   r   r   r   )r9   rl   periodr   r   s        r+   .test_range_with_timezone_and_custombusinessdayBTestCustomDateRange.test_range_with_timezone_and_custombusinessday  s3     %cB *2248
f/r-   c                     [         R                  " SS9n[        SSSS5      n[        SSSS5      n[        X4X!S9n[	        / S	QS
U S3S9n[
        R                  " XV5        g )NzSun Mon Tue)r  i  r   rO        r;  )z2024-02-06 23:00:00z2024-02-11 23:00:00z2024-02-12 23:00:00z2024-02-13 23:00:00r   r   r  )r   CustomBusinessDayr   r   r   r   r   )r9   r   r   rl   r   r   r   s          r+   .test_data_range_custombusinessday_partial_timeBTestCustomDateRange.test_data_range_custombusinessday_partial_time  sj    **MBq!R(tQB'EV?  vQ-
 	f/r-   c                 f    [        SSSSS/S9n[        / SQSSS	9n[        R                  " X5        g )
Nz
2009-03-13z
2009-03-15cbhr  r  r  )z2009-03-13 09:00:00z2009-03-13 10:00:00z2009-03-13 11:00:00z2009-03-13 12:00:00z2009-03-13 13:00:00z2009-03-13 14:00:00z2009-03-13 15:00:00z2009-03-13 16:00:00r  r   )r   r   r   r   )r9   r   r   s      r+   test_cdaterange_cbh'TestCustomDateRange.test_cdaterange_cbh  sF    ""^
 !	 #
 	f/r-   c           	          Sn[         R                  " [        US9   [        [        [
        SSS/S9  S S S 5        g ! , (       d  f       g = f)Nz7invalid custom frequency string: CBH, did you mean cbh?rr   CBHr  r  r  )rE   rx   r   r   r)  r*  rz   s     r+   $test_cdaterange_deprecated_error_CBH8TestCustomDateRange.test_cdaterange_deprecated_error_CBH-  s6    G]]:S1s, 211s	   <
A
r#   N)r_   r`   ra   rb   rR  rY  rf  r  r  r  r  r  rE   r  r  r   upper
startswithr  r  r  r  r  r  re   ).0rW   s   00r+   rw  rw  e  s   
51,Q(J(," [[.Q.$JJL4K4KC4P.Q	3	3 [[	
00 [[(!.I-JK(!.I-JK+,.IJ	
000$02s Rs   'C%Crw  c                   2    \ rS rSrS rS rS rS rS rSr	g)	TestDateRangeNonNanoi6  c                     Sn[         R                  " [        US9   [        SSSSS9  S S S 5        g ! , (       d  f       g = f)Nz+'unit' must be one of 's', 'ms', 'us', 'ns'rr   r   z
2016-03-04rR   r   r   r   rz   s     r+   test_date_range_reso_validation4TestDateRangeNonNano.test_date_range_reso_validation7  s/    ;]]:S1|\13G 211	   2
A c                     Sn[         R                  " [        US9   [        SSSSS9  S S S 5        g ! , (       d  f       g = f)Nz)Use a lower freq or a higher unit insteadrr   r   z
2016-01-02r   r   r;  r   rz   s     r+   %test_date_range_freq_higher_than_reso:TestDateRangeNonNano.test_date_range_freq_higher_than_reso<  s/    9]]:S1|\4H 211r  c                 >   [        SSSSS9n[        R                  " SS[        R                  S9n[	        UR                  S5      SS	9n[        R                  " X5        [        SSS
S
S9n[        R                  " SS[        R                  S9n[	        UR                  S5      S
S	9n[        R                  " X5        [        SSSSS9n[        R                  " SS[        R                  S9n[	        UR                  S5      SS	9n[        R                  " X5        g )Nr   z2016-01-01 00:00:01r   r;  l    \tGl   _tGr  zM8[ms]r   r   l    `g ) l   A"g ) r   z2016-01-01 00:00:00.001r   l     ^cQ)! l   AB|cQ)! r   )r   r  arangeint64r   viewr   r   )r9   r   r:   r   s       r+   !test_date_range_freq_matches_reso6TestDateRangeNonNano.test_date_range_freq_matches_resoC  s    '<4dSii)+<BHHM (!3$?
c,'<4dSii-/DBHHU (!3$?
c,'@tRVWii%'@
 !(!3$?
c,r-   c                    [        S5      n[        S5      n[        R                  " [        SS9   [	        XSSS9  S S S 5        [	        XSS	S9n[
        R                  " UR                  S	5      R                  UR                  S	5      R                  /[
        R                  S
9n[        UR                  S5      5      n[        R                  " X55        g ! , (       d  f       N= f)Nz2022-10-19 11:50:44.719781z2022-10-19 11:50:47.066458zCannot losslessly convert unitsrr   rR   r   r   r   r   r  r   )r   rE   rx   r   r   r  r  r   _valuer  r   r  r   r   )r9   rl   r   r   r:   r   s         r+   )test_date_range_freq_lower_than_endpoints>TestDateRangeNonNano.test_date_range_freq_lower_than_endpointsV  s    6745 ]]:-NOu137 P QT:hh]]4 ''T):)A)AB"((
 !(!34
c, POs   C
C%c                    [         R                  " S5      n[         R                  " S5      n[        XSSS9nUR                  S:X  d   eUR                  S:X  d   e[         R
                  " UR                  S5      R                  S5      US-   R                  S5      R                  S5      S	5      R                  S5      n[        R                  " UR                  5       U5        g )
Nz
1066-10-14z
2305-07-13rT   r   r;  zM8[s]i8r   iQ )r  
datetime64r   rW   r   r  astyper  r   r  to_numpy)r9   rl   r   r   r   s        r+   test_date_range_non_nano-TestDateRangeNonNano.test_date_range_non_nanog  s    l+mmL)#C8xx3yyG###iiLL!&&t,1WW%**40
 $w-	 	 	##CLLNC8r-   r#   N)
r_   r`   ra   rb   r  r  r  r  r  re   r#   r-   r+   r  r  6  s    H
I-&-"9r-   r  c            
       <   \ 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S rS rS rS rS r\R,                  R/                  SS\R2                  " SS94S\R4                  " SS94S\R6                  " SS94/5      S 5       rS rS rS rS  r S!r!g")#TestDateRangeNonTickFreqix  c                    ^ [        5       n[        R                  " US9m[        SSTUS9n[	        U4S jU 5       5      (       d   e[        / SQSU S3TS	9n[        R                  " X45        g )
Ncalendar2012010120130101rl   r   rW   r   c              3   F   >#    U  H  nTR                  U5      v   M     g 7fNis_on_offsetr  r\  rW   s     r+   	<genexpr>WTestDateRangeNonTickFreq.test_date_range_custom_business_month_begin.<locals>.<genexpr>       5A4$$Q''   !)z
2012-01-03z
2012-02-01z
2012-03-01z
2012-04-02z
2012-05-01z
2012-06-01z
2012-07-02z
2012-08-01z
2012-09-04z
2012-10-01z
2012-11-01z
2012-12-03r   r   r   )r   r   CBMonthBeginr   rT  r   r   r   r9   r   hcalr   r   rW   s        @r+   +test_date_range_custom_business_month_beginDTestDateRangeNonTickFreq.test_date_range_custom_business_month_begin{  sq    ')##T2zz4P555555  vQ-!
$ 	c,r-   c                    ^ [        5       n[        R                  " US9m[        SSTUS9n[	        U4S jU 5       5      (       d   e[        / SQSU S3TS	9n[        R                  " X45        g )
Nr  r  r  r  c              3   F   >#    U  H  nTR                  U5      v   M     g 7fr  r  r  s     r+   r  UTestDateRangeNonTickFreq.test_date_range_custom_business_month_end.<locals>.<genexpr>  r  r  )z
2012-01-31z
2012-02-29z
2012-03-30z
2012-04-30z
2012-05-31z
2012-06-29z
2012-07-31z
2012-08-31z
2012-09-28z
2012-10-31z
2012-11-30z
2012-12-31r   r   r   )r   r   
CBMonthEndr   rT  r   r   r   r  s        @r+   )test_date_range_custom_business_month_endBTestDateRangeNonTickFreq.test_date_range_custom_business_month_end  sq    ')!!40zz4P555555  vQ-!
$ 	c,r-   c                     [         R                  " SS/S9n[        SSX!S9n[        / SQSU S	3US
9n[        R
                  " X45        g )Nz15:00z
2020-11-26)rl   r  z2020-11-25 15:00rS   r   )z2020-11-25 15:00:00z2020-11-25 16:00:00z2020-11-27 15:00:00z2020-11-27 16:00:00r   r   r   )r   CustomBusinessHourr   r   r   r   )r9   r   rW   r   r   s        r+   $test_date_range_with_custom_holidays=TestDateRangeNonTickFreq.test_date_range_with_custom_holidays  sT    ))<.Q"4adV  vQ-	
 	f/r-   c                 6   [        / SQSU S3SS9n[        SSSUS9n[        R                  " X#5        [        SS	/SU S3SS9n[        SS	SUS9n[        R                  " X#5        [        / S
QSU S3SS9n[        SSSUS9n[        R                  " X#5        g )N)2014-07-04 09:002014-07-04 10:002014-07-04 11:002014-07-04 12:002014-07-04 13:002014-07-04 14:002014-07-04 15:002014-07-04 16:00r   r   bhr   r  r  r;  2014-07-07 09:00)r  r  r  r  r  r  r  r  r  2014-07-07 10:002014-07-07 11:002014-07-07 12:002014-07-07 13:002014-07-07 14:002014-07-07 15:002014-07-07 16:002014-07-08 09:002014-07-08 10:00z2014-07-08 11:00z2014-07-08 12:00z2014-07-08 13:00z2014-07-08 14:00z2014-07-08 15:002014-07-08 16:00r  )r   r   r   r   )r9   r   rn   r:   s       r+   test_date_range_businesshour5TestDateRangeNonTickFreq.test_date_range_businesshour  s    	 vQ-
 +-?dQUV
c'!34c$qMPT
 +-?dQUV
c'4 vQ-9
< +-?dQUV
c'r-   c                    [        SSSUS9n[        SSSUS9n[        SSSUS9n[        / SQS	U S
3SS9n[        R                  " X%5        [        R                  " X55        [        R                  " XE5        [        SSSUS9n[        SSSUS9n[        SSSUS9nU[	        SS9R                  U5      -   n	SU	l        [        R                  " Xi5        [        R                  " Xy5        [        R                  " X5        g )Nr  r  r  r  r.  r   r   )r  r  r  r  r  r   r  r  r  r  r  r  r   r   r   z2014-07-04 15:45z2014-07-08 10:45-   )minutes)r   r   r   r   r   r   rW   )
r9   r   idx1idx2idx3r   idx4idx5idx6r  s
             r+   test_date_range_business_hour27TestDateRangeNonTickFreq.test_date_range_business_hour2  s
   $*<4d
  2BTPTU0"4dS  vQ-!
$ 	d-
d-
d-$*<4d
  2BTPTU0"4dSy4<<TBB		
d.
d.
d.r-   c                 h    [        SSSUS9n[        S/SU S3SS9n[        R                  " X#5        g )Nz2014-07-01 10:00r  r   )rl   rW   rV   r   r   r   r   r  )r9   r   r  r  s       r+   #test_date_range_business_hour_short<TestDateRangeNonTickFreq.test_date_range_business_hour_short   s<     2qtT!#5"6D6mRVW	
d.r-   c                 j    [        SSSUS9n[        / SQSU S3SS9n[        R                  " X#5        g )	N1/1/20137/1/2017r  r;  )
2013-01-01r  r  r   rF  r   r   r   r  r9   r   r:   r   s       r+   test_date_range_year_start3TestDateRangeNonTickFreq.test_date_range_year_start&  s=    ZdFRvQ-

 	c'r-   c                 j    [        SSSUS9n[        / SQSU S3SS9n[        R                  " X#5        g )	Nr  r  rj   r;  )
2013-12-31r  
2015-12-31z
2016-12-31r   r   r   r  r  s       r+   test_date_range_year_end1TestDateRangeNonTickFreq.test_date_range_year_end0  s=    ZdFDvQ-

 	c'r-   c                     [        SSSUS9n[        / SQSU S3SS9n[        R                  " X#5        UR                  S:X  d   eg )	N
2011-12-31z-2YErR   rW   rV   r   )r%  z
2009-12-31z
2007-12-31r   r   r   r   r   r   r   rW   r  s       r+   &test_date_range_negative_freq_year_end?TestDateRangeNonTickFreq.test_date_range_negative_freq_year_end:  N    FADI6D6mRX
 	c'xx6!!!r-   c                 j    [        SSSUS9n[        / SQSU S3SS9n[        R                  " X#5        g )	Nr  r  BYEr;  )r   r  r!  z
2016-12-30r   r   r   r  r  s       r+   &test_date_range_business_year_end_year?TestDateRangeNonTickFreq.test_date_range_business_year_end_yearC  s=    Ze$GDvQ-

 	c'r-   c                 j    [        SSSUS9n[        / SQSU S3SS9n[        R                  " X#5        g )	Nrt   r   BMSr   )
z
2000-01-03z
2000-02-01z
2000-03-01z
2000-04-03z
2000-05-01z
2000-06-01z
2000-07-03z
2000-08-01z
2000-09-01z
2000-10-02r   r   r   r  r   s       r+   test_date_range_bms,TestDateRangeNonTickFreq.test_date_range_bmsM  sA    JTJ  vQ-
  	f/r-   c                    [        SSS5      [        SSS5      [        SSS5      [        SSS5      [        SSS5      [        SSS5      [        SSS5      [        SSS5      [        SSS5      [        SS	S5      [        SS	S5      [        SS
S5      [        SS
S5      [        SSS5      [        SSS5      [        SSS5      [        SSS5      [        SSS5      [        SSS5      [        SSS5      [        SSS5      [        SSS5      [        SSS5      [        SSS5      [        SSS5      /n[        US   US   SUS9n[        USU S3SS9n[        R                  " X45        g )N  r.  r   r6  r   r   rR   rS   r   rO     r   r   r   r-  r   r   SMSr  r   r   r   r   r   r   r   r   r9   r   datesr   r   s        r+    test_date_range_semi_month_begin9TestDateRangeNonTickFreq.test_date_range_semi_month_beginc  ss   T2r"T1a T1b!T1a T1b!T1a T1b!T1a T1b!T1a T1b!T1a T1b!T1a T1b!T1a T1b!T1a T1b!T2q!T2r"T2q!T2r"T2q!T2r"3
8 %(b	DQE3tfAUC
f*r-   c                    [        SSS5      [        SSS5      [        SSS5      [        SSS5      [        SSS5      [        SS	S5      [        SS	S5      [        SS
S5      [        SS
S5      [        SSS5      [        SSS5      [        SSS5      [        SSS5      [        SSS5      [        SSS5      [        SSS5      [        SSS5      [        SSS5      [        SSS5      [        SSS5      [        SSS5      [        SSS5      [        SSS5      [        SSS5      [        SSS5      /n[        US   US   SUS9n[        USU S3SS9n[        R                  " X45        g )Nr4  r.     r6  r   r   r      rR   rS      r   rO  r5  r   r   r   r-  r   r   SMEr  r   r   r   r7  r8  s        r+   test_date_range_semi_month_end7TestDateRangeNonTickFreq.test_date_range_semi_month_end  ss   T2r"T1b!T1b!T1b!T1b!T1b!T1b!T1b!T1b!T1b!T1b!T1b!T1b!T1b!T1b!T1b!T1b!T1b!T1b!T2r"T2r"T2r"T2r"T2r"T2r"3
8 %(b	DQE3tfAUC
f*r-   c                     [        SSSUS9n[        S/SU S3SS9n[        R                  " X#5        [        SS	SUS9n[        SS
/SU S3SS9n[        R                  " XE5        g )N20110101r   zWOM-1MONr   z
2011-01-03r   r   r   r   z
2011-02-07r  )r9   r   r   r   rA  r  s         r+   test_date_range_week_of_month6TestDateRangeNonTickFreq.test_date_range_week_of_month  sy     *ajtT ,TF!}:V
f/:qzPTU!<(#dV1J
	 	g1r-   c                 j    [        SSSUS9n[        / SQSU S3SS9n[        R                  " X#5        g )	Nz2013-1-1rS   zWOM-1SATr   )z
2013-01-05z
2013-02-02z
2013-03-02z
2013-04-06r   r   r   r  r   s       r+   test_date_range_week_of_month27TestDateRangeNonTickFreq.test_date_range_week_of_month2  s=    J
N DvQ-

 	f/r-   c                     [        SSSUS9n[        / SQSU S3SS9n[        R                  " X#5        UR                  S:X  d   eg )	N
2011-01-31z-2MErR   r&  )rK  z
2010-11-30z
2010-09-30r   r   r   r'  r  s       r+   'test_date_range_negative_freq_month_end@TestDateRangeNonTickFreq.test_date_range_negative_freq_month_end  r*  r-   c                     [         R                  " SSSS9n[        SSUUS9n[        SS	/S
U S3US9n[        R
                  " X45        g )Nr   rR   nearest)startingMonthweekday	variationr  r   r   z
2013-01-31z
2014-01-30r   r   r   )r   FY5253r   r   r   r   )r9   r   rW   r   r   s        r+   test_date_range_fy5253/TestDateRangeNonTickFreq.test_date_range_fy5253  sZ    ~~AqIN	
 !<(#dV1D
 	c,r-   r$  QSr   )rP  BQEr.  r?  rO  )rQ  c                     [        SSS5      n[        SSS5      n[        X4US9n[        X4US9n[        U5      [        U5      :X  d   eUR                  UR                  :X  d   eg )Nr  r.  r  r   r   r   )r   r   r   rW   )r9   r+  r   r  r   r  r  s          r+   &test_date_range_freqstr_matches_offset?TestDateRangeNonTickFreq.test_date_range_freqstr_matches_offset  sd     r2&q!$w?v>4yCI%%%yyDII%%%r-   c                 j    [        SSSUS9n[        SS/SU S3SS9n[        R                  " X#5        g )	Nz2021-12-31 00:00:012023-10-31 00:00:00rj   r  z2022-12-31 00:00:01r   r   r   r  r  s       r+   $test_date_range_partial_day_year_end=TestDateRangeNonTickFreq.test_date_range_partial_day_year_end  sK    '%	
 "$9:vQ-

 	c'r-   c                 j    [        SSSUS9n[        SS/SU S3SS	9n[        R                  " X#5        g )
Nr\  z2021-10-31 00:00:00z-1YEr  z2022-12-31 00:00:00z2021-12-31 00:00:00r   r   r   r  r  s       r+   /test_date_range_negative_freq_year_end_inboundsHTestDateRangeNonTickFreq.test_date_range_negative_freq_year_end_inbounds  sK    '%	
 "$9:vQ-

 	c'r-   c                     [        SSS9n[        SSS9n[        XSSS9n[        SSSSSS9n[        R                  " X45        g )	Nz
1916-08-01zEurope/Oslor5   z
1916-12-01r  T)rW   r3  r  )r   r   r   r   )r9   rl   r   resr   s        r+   2test_date_range_tzaware_endpoints_accept_ambiguousKTestDateRangeNonTickFreq.test_date_range_tzaware_endpoints_accept_ambiguous  sM    ,=97$$?,Tmt
 	c'r-   c                     Sn[        SUS9n[        SUS9n[        X#SSS9n[        SSSS9R                  USS	9n[        R                  " XE5        g )
Nr  z2015-03-28 01:30r5   z2015-03-30 01:30rT   r  )rW   r  r   )r  )r   r   r4  r   r   )r9   r6   rl   r   r   r   s         r+   4test_date_range_tzaware_endpoints_accept_nonexistentMTestDateRangeNonTickFreq.test_date_range_tzaware_endpoints_accept_nonexistent  sd    ,4*r2ESoN  2

+bo+
6 	 	f/r-   r#   N)"r_   r`   ra   rb   r  r  r  r  r  r  r  r"  r(  r-  r1  r:  rA  rE  rH  rL  rT  rE   r  r  r   QuarterBeginBQuarterEndWeekrY  r]  r`  rd  rg  re   r#   r-   r+   r  r  x  s    -4-40 7(r&/P/(("(0,+B+B20"- [[7''a89G''b9:gll1-.	
&&(((0r-   r  c                   ,    \ rS rSrS rS rS rS rSrg)TestDateRangeUnitInferencei  c                     [        S5      R                  U5      n[        S5      R                  U5      n[        X#SS9nUR                  U:X  d   eg )N
2025-11-25
2025-11-26rT   r   r   r   r   r   r9   r   rl   r   r   s        r+   ,test_date_range_unit_inference_matching_unitGTestDateRangeUnitInference.test_date_range_unit_inference_matching_unit  sJ    ,'//5%--d3#.xx4r-   c                     [        S5      R                  U5      n[        S5      R                  S5      n[        X#SS9nUR                  U:X  d   e[        X#R                  S5      SS9nUR                  S:X  d   eg )Nro  rp  r   rT   r   r   rq  rr  s        r+   .test_date_range_unit_inference_mismatched_unitITestDateRangeUnitInference.test_date_range_unit_inference_mismatched_unit$  sq    ,'//5%--c2#.xx4D 1<xx4r-   c                     [        S5      R                  S5      n[        S5      R                  S5      n[        XSS9nUR                  S:X  d   e[        XR                  S5      SS9nUR                  S:X  d   eg )	Nro  r   rp  r   	2000000usr   r   r   rq  )r9   rl   r   r   s       r+   #test_date_range_unit_inference_tick>TestDateRangeUnitInference.test_date_range_unit_inference_tick.  sq    ,'//5%--c2+6xx4D 1Dxx4r-   c                    [        S5      R                  S5      n[        S5      R                  S5      n[        SS9n[        XUS9nUR                  S:X  d   e[        SS	9n[        XUS9nUR                  S
:X  d   eU[        SS9R                  S5      -   n[        SS9n[        XUS9nUR                  S:X  d   eg )Nz2025-11-25 09:00:00r   z2025-11-25 09:00:02i )microsecondsr   r   r   )millisecondsr   )r  r   )r   r   r	   r   r   r   )r9   rl   r   r  r   end2s         r+   .test_date_range_unit_inference_dateoffset_freqITestDateRangeUnitInference.test_date_range_unit_inference_dateoffset_freq8  s    /088=-.66s;i0#.xx4a(#.xx4ya088>>Q'3/xx4r-   r#   N)	r_   r`   ra   rb   rs  rv  rz  r  re   r#   r-   r+   rm  rm    s        r-   rm  )8r!  r   r   r   r  numpyr  rE   pandas._libs.tslibsr   pandas._libs.tslibs.offsetsr   r   r	   r
   r   pandas.errorsr   r   pandas.util._test_decoratorsutil_test_decoratorsrc   pandasr   r   r   r   r   r   r   r   r   pandas._testing_testingr   pandas.core.arrays.datetimesr   r(  -pandas.tests.indexes.datetimes.test_timezonesr   r   pandas.tseries.holidayr   r)  r*  r,   r/   rg   r  r#  rO  rw  r  r  rm  r#   r-   r+   <module>r     s    
 
   )  * ) 	 	 	  J
 <dAq!8D!Q#7
s83( 3(lz
A z
Aze7 e7Pi0 i0XK> K>\N Nb?9 ?9Da0 a0H+  + r-   