
    Eg                         d Z ddlmZmZmZ ddlZddlZddlZddlZddlm	Z	 ddl
mZ ddlmZmZmZmZmZ ddlmZ ddlmc mZ ddlZddlmZmZmZmZmZmZm Z m!Z! ddl"m#Z$ dd	l%m&Z' dd
l(m)Z)m*Z* ddl+m,Z,  eddd           eddd          cZ-Z.d Z/ G d d          Z0 G d d          Z1 G d d          Z2 G d d          Z3 G d d          Z4 G d d          Z5 G d d          Z6 G d d          Z7dS ) zP
test date_range, bdate_range construction from the convenience range functions
    )datetimetime	timedeltaN)timezone)	timezones)BDayCDay
DateOffsetMonthEndprefix_mapping)OutOfBoundsDatetime)	DataFrameDatetimeIndexSeries	Timedelta	Timestampbdate_range
date_rangeoffsets)_generate_range)FixedOffsetfixed_off_no_name)USFederalHolidayCalendar       c                 .   | |d         k    }||d         k    }|dk    r|r|dd         }ni|dk    r|r|dd         }nV|dk    r|r|r|dd         }nA|dk    r|r|dd         }n.|dk    r|r|dd         }n|dk    r|dd         }n
|dd         }|S )	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          c/var/www/sysmax/venv/lib/python3.11/site-packages/pandas/tests/indexes/datetimes/test_date_range.py_get_expected_ranger,   3   s      :a=0J*R.0Kf$$$#CRC		'	'J	'#ABB			)	)j	)[	)#AbD)			)	)k	)#CRC			)	)j	)#ABB		&	&#AAA#AAA    c                   L    e Zd Zd Zd Zd Zej        d             Zd Z	d Z
dS )TestTimestampEquivDateRangec                 l    t          ddd          }|d         }t          dd          }||k    sJ d S N2009041520090519
US/Easterntzr   r   r   selfrngstamptss       r+   test_date_range_timestamp_equivz;TestTimestampEquivDateRange.test_date_range_timestamp_equivU   sB    ZLAAAAzl333U{{{{{{r-   c                 l    t          ddd          }|d         }t          dd          }||k    sJ d S )Nr2   r3   dateutil/US/Easternr5   r   r7   r8   s       r+   (test_date_range_timestamp_equiv_dateutilzDTestTimestampEquivDateRange.test_date_range_timestamp_equiv_dateutil\   sD    Z4IJJJAz&;<<<U{{{{{{r-   c                     t          ddt          j        d                    }|d         }t          dt          j        d                    }||k    sJ d S r1   )r   pytzr   r   r8   s       r+   -test_date_range_timestamp_equiv_explicit_pytzzITestTimestampEquivDateRange.test_date_range_timestamp_equiv_explicit_pytzc   sV    ZDM,4O4OPPPAzdmL&A&ABBBU{{{{{{r-   c                     ddl m} t          dd |d                    }|d         }t          d |d                    }||k    sJ d S )Nr   )dateutil_gettzr2   r3   r4   r5   )pandas._libs.tslibs.timezonesrE   r   r   )r9   gettzr:   r;   r<   s        r+   1test_date_range_timestamp_equiv_explicit_dateutilzMTestTimestampEquivDateRange.test_date_range_timestamp_equiv_explicit_dateutilj   sh    IIIIIIZEE,4G4GHHHAzeeL&9&9:::U{{{{{{r-   c                     t          ddd          }t          |dd          d         }t          |          }||k    sJ d S )N        r   Dperiodsfreqr   )r   r   r   )r9   datetime_instancetimestamp_instancer<   s       r+   6test_date_range_timestamp_equiv_from_datetime_instancezRTestTimestampEquivDateRange.test_date_range_timestamp_equiv_from_datetime_instancet   sX    $T1a00 ((913OOOPQR())'''''''r-   c                 d    t          ddd          d         }t          d          }||k    sJ d S )Nz
2014-03-05r   rM   rN   r   r7   )r9   rR   r<   s      r+   2test_date_range_timestamp_equiv_preserve_frequencyzNTestTimestampEquivDateRange.test_date_range_timestamp_equiv_preserve_frequency}   s@    'acJJJ1M|$$!R''''''r-   N)__name__
__module____qualname__r=   r@   rC   tdskip_if_windowsrH   rS   rU   r#   r-   r+   r/   r/   O   s~                 ( ( (( ( ( ( (r-   r/   c                      e Zd Zd Zd Zd Zej                            dg d          d             Z	d Z
ej                            dg d	          d
             Zd Zd Zd Zd Zd Zej        j        ej                            dddg          d                         Zd Zd Zd Zd Zd Zd Zej                            dg d eddd           eddd          dg ed            ed!          dg ed d"           ed!d"          dg ed d"           ed!d"          d#gg          d$             Zd% Zd& Zd' Zd( Zd) Z d* Z!d+ Z"d, Z#d- Z$ej                            d. e ed/dd0          d"           e ed/dd1          d"          g e ed2d3d          d"           e ed2d3d0          d"          gg          d4             Z%d5 Z&ej                            dg d6          ej                            d7d#dg          d8                         Z'ej                            dg d6          d9             Z(d: Z)d; Z*d< Z+d= Z,d> Z-d? Z.d@ Z/dA Z0dB Z1ej                            dg dC          dD             Z2ej                            dg dE          dF             Z3dJdHZ4dI Z5d#S )KTestDateRangesc                 F    t          dddd          }|j        dk    sJ d S )Nz
2000-01-01r   YETEST)startrO   rP   name)r   ra   )r9   idxs     r+   test_date_range_namez#TestDateRanges.test_date_range_name   s1    |QTOOOx6!!!!!!r-   c                     d}t          j        t          |          5  t          ddd           d d d            d S # 1 swxY w Y   d S )Nz!periods must be a number, got foomatch1/1/2000foorM   r`   rO   rP   )pytestraises	TypeErrorr   r9   msgs     r+   test_date_range_invalid_periodsz.TestDateRanges.test_date_range_invalid_periods   s    1]9C000 	B 	BZSAAAA	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	Bs   >AAc                     d}t          j        t          |          5  t          dd          }d d d            n# 1 swxY w Y   t          dd          }t          j        ||           d S )Nz:Non-integer 'periods' in pd.date_range, pd.timedelta_rangere   rg   g      %@rO   
   )tmassert_produces_warningFutureWarningr   assert_index_equal)r9   rn   r:   exps       r+   !test_date_range_fractional_periodz0TestDateRanges.test_date_range_fractional_period   s    J'SAAA 	7 	7Z666C	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7R000
c3'''''s   <A A zfreq,freq_depr))2ME2M)2SME2SM)2BQE2BQ)2BYE2BYc                    d|dd           d}d|dd           d t          dd|          }t          j        t          |	          5  t          dd|          }d d d            n# 1 swxY w Y   t          j        ||           d S )
N'r   $' is deprecated and will be removed !in a future version, please use '
' instead.rg   rL   rN   re   )r   rs   rt   ru   rv   )r9   rP   	freq_deprdepr_msgexpectedresults         r+   /test_date_range_frequency_M_SM_BQ_BY_deprecatedz>TestDateRanges.test_date_range_frequency_M_SM_BQ_BY_deprecated   s     Ky}JJJ@DH@@@@j!$???'XFFF 	G 	G
AIFFFF	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G
fh/////s   
A))A-0A-c                     t          ddd          }t          j        t          d          5  t	          |dd           d d d            d S # 1 swxY w Y   d S )N  r   zpass as a string insteadre   )rM         )endrP   rO   )r   rj   rk   rl   r   )r9   edates     r+   !test_date_range_tuple_freq_raisesz0TestDateRanges.test_date_range_tuple_freq_raises   s    q!$$]9,FGGG 	= 	=5x<<<<	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	=s   AAArP   )nsusmsminshrM   c                    t          d|           t          d          t          z   dz  z   |          }t          fdt	          dd          D             d|	          }t          j        ||           t          dz  z   z   |          }t          g d|	          }t          j        ||           t          z   z   |          }t          z   gd|	          }t          j        ||           d S )
N1z
1970-01-01rL   r`   r   rP   c                      g | ]
}|z  z   S r#   r#   ).0nrY   r<   s     r+   
<listcomp>z8TestDateRanges.test_date_range_edges.<locals>.<listcomp>   s!    ...QR!b&[...r-   r   r   M8[ns]dtyperP   )r   r   r   r   rangers   rv   )r9   rP   rb   rw   rY   r<   s       @@r+   test_date_range_edgesz$TestDateRanges.test_date_range_edges   sR    z4zz""|$$r'QV
 
 

 .....%1++...
 
 

 	c3''' q2v+R
 
 

 BhT:::
c3''' r'R
 
 

 R"WIXDAAA
c3'''''r-   c                     t          d          }t          j        t          d          5  t	          t
          j        d|           d d d            d S # 1 swxY w Y   d S )Nr   Cannot generate range withre      r   rO   rP   )r   rj   rk   r   r   r   r   )r9   rP   s     r+   )test_date_range_near_implementation_boundz8TestDateRanges.test_date_range_near_implementation_bound   s    ||].6RSSS 	@ 	@9=!$????	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@s   AAAc                 H   d}t          j        t          |          5  t          dt          j        d           d d d            n# 1 swxY w Y   t          j        t          |          5  t          t          j        dd           d d d            d S # 1 swxY w Y   d S )Nz$Neither `start` nor `end` can be NaTre   
2016-01-01rM   r   )rj   rk   
ValueErrorr   pdNaTrm   s     r+   test_date_range_natz"TestDateRanges.test_date_range_nat   s=   4]:S111 	A 	A\rvC@@@@	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A]:S111 	A 	ARVC@@@@	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	As#   AAA-BBBc                 r   t          j        d           5  t          ddd          }d d d            n# 1 swxY w Y   |d         t          d          k    sJ t	          |          dk    sJ d}t          j        t          |          5  t          dd	d
           d d d            d S # 1 swxY w Y   d S )N
1677-09-22iA rM   ri   r   r   re   z
1969-05-04i 30000DrN   )rs   rt   r   r   lenrj   rk   r   )r9   dtirn   s      r+   'test_date_range_multiplication_overflowz6TestDateRanges.test_date_range_multiplication_overflow   sm    '-- 	K 	K<cJJJC	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 1v<0000003xx6!!!!*].c::: 	G 	G|YXFFFF	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	Gs   488B,,B03B0c                    t          ddd          }t          |d         t          |          d          }|                    |          sJ t          |d         t          |          d          }|                    |          sJ d S )	Nr   z
2262-04-11rM   r   r   ri   r   r   )r   r   equals)r9   r   dti2dti3s       r+   *test_date_range_unsigned_overflow_handlingz9TestDateRanges.test_date_range_unsigned_overflow_handling   s     |CHHHACsCCC{{3c"gs3xxcBBB{{3r-   c                     d}t          j        t          |          5  t          ddd           d d d            n# 1 swxY w Y   t          j        t          |          5  t          ddd           d d d            d S # 1 swxY w Y   d S )	Nr   re   
1970-02-01i ' r   ri   
1969-11-14r   rj   rk   r   r   rm   s     r+   .test_date_range_int64_overflow_non_recoverablez=TestDateRanges.test_date_range_int64_overflow_non_recoverable   s?    +].c::: 	J 	J\;SIIII	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J ].c::: 	H 	H<3GGGG	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H!   =AA#BB
Bz
s_ts, e_ts)z
2262-02-23r   )r   z
1677-10-22c                    t          |          }t          |          }t          ||d          }|d         |k    sJ |d         |k    sJ t          |t          |          d          }t          j        ||           d S )Nz-1hr   r   r   r   )r   r   r   rs   rv   )r9   s_tse_tsr`   r   r   r   s          r+   >test_date_range_int64_overflow_stride_endpoint_different_signszMTestDateRanges.test_date_range_int64_overflow_stride_endpoint_different_signs  s     $ooEs???{e####|s""""S#h--eDDD
c8,,,,,r-   c                     d}t          j        t          |          5  t          ddd           d d d            n# 1 swxY w Y   t          j        t          |          5  t          ddd           d d d            d S # 1 swxY w Y   d S )	NzCannot generate rangere   r   i rM   rN   z
1763-10-12r   r   rm   s     r+   test_date_range_out_of_boundsz,TestDateRanges.test_date_range_out_of_bounds  s*   %].c::: 	? 	?|V#>>>>	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	?].c::: 	C 	C<cBBBB	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	Cr   c                 T    t          ddd          }t          |          dk    sJ d S )Nz1/1/2000 00:00z1/1/2000 00:185minrP   rL   )r   r   r9   r:   s     r+   test_date_range_gen_errorz(TestDateRanges.test_date_range_gen_error"  s/    )+;&III3xx1}}}}}}r-   c                 ~   t          j                    d}t          |dd          }t          d          t	          fdt          |          D             d          }t          j        ||           t          d	|dd
          }t          dd          }|D ]}|                                |k    sJ d S )N2   F2D)rO   	normalizerP   r   c                      g | ]
}|z  z   S r#   r#   )r   ioffsetsnaps     r+   r   z<TestDateRanges.test_date_range_normalize.<locals>.<listcomp>.  s"    1111TAJ111r-   r   r   z1/1/2000 08:15B      )	r   todayr   r   r   r   rs   rv   r   )r9   r   r:   r   the_timevalr   r   s         @@r+   test_date_range_normalizez(TestDateRanges.test_date_range_normalize&  s    ~qEEEE1 11111a111
 
 
 	c8,,,)1CPPP2;; 	* 	*C88::)))))	* 	*r-   c                     t          dddddd          }t          dddddd          }d}t          j        t          |	          5  t	          ||d
d           d d d            d S # 1 swxY w Y   d S )N  r   r   rK   (   r   	   VOf the four parameters: start, end, periods, and freq, exactly three must be specifiedre   rr   r   rN   )r   rj   rk   r   r   r9   r`   r   rn   s       r+   #test_date_range_ambiguous_argumentsz2TestDateRanges.test_date_range_ambiguous_arguments8  s    q!Q2..tQ1a,,4 	 ]:S111 	9 	9uc2C8888	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9s   A''A+.A+c                 |   t          ddd|          }t          g dd| dd           }t          j        ||           t          d	d
dd|          }t          t	          dd          t	          dd          t	          dd          g                              |          }t          j        ||           d S )Nz
2018-04-24z
2018-04-27rK   rO   unit)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   rO   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   rs   rv   r   as_unitr9   r   r   r   s       r+   #test_date_range_convenience_periodsz2TestDateRanges.test_date_range_convenience_periodsD  s    L,MMM QQQ---
 
 
 	fh/// !!!
 
 
 !49KLLL49KLLL49KLLL
 
 '$-- 	 	fh/////r-   c                     t          ddd          }t          |                                          }t          j        |                                g          j        }t          j        |g          j        }t          j        t          d          5  ||k     d d d            n# 1 swxY w Y   t          j        t          d          5  ||k     d d d            n# 1 swxY w Y   t          g d          }||k    }t          j        ||           t          g dd	          }|d         |d d df         k    }t          j        ||           t          j        g d
g dg dg          }||k    }t          j        ||           d S )N
2011-01-01rK   r4   rO   r6   zUnable to coerce to Seriesre   )TTTr   ra   )TFF)FTF)FFT)r   r   to_framenparrayto_listTrj   rk   r   r   rs   assert_frame_equalassert_series_equalassert_numpy_array_equal)r9   r:   dfarrarr2r   resultss          r+    test_date_range_index_comparisonz/TestDateRanges.test_date_range_index_comparison`  s   q\BBBC[[!!##h'')x ]:-IJJJ 	 	2II	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ]:-IJJJ 	 	#II	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ///00*
gx000,,,1555Q%41:%
w1118!!!#7#7#79M9M9MN
 
 *
#GX66666s$   B((B,/B,C!!C%(C%zstart,end,result_tz)2018010120180103r4   i  r   rK   r4   r   r   r5   Nc                 |    t          ||d|          }t          dddd          }t          j        ||           d S )NrK   r   r   rM   r4   rO   rP   r6   r   rs   rv   )r9   r`   r   	result_tzr   r   s         r+   test_date_range_linspacing_tzz,TestDateRanges.test_date_range_linspacing_tz|  sI    ( E3i@@@j!#,OOO
fh/////r-   c                     d}d}t          ||d          }t          ||t          d                    }t          j        ||           d S )N
2020-01-01z
2020-01-113Dr   rK   )days)r   r   rs   rv   )r9   r`   r   rng1rng2s        r+   test_date_range_timedeltaz(TestDateRanges.test_date_range_timedelta  sX    %4000%9!+<+<+<===
dD)))))r-   c                    d}t          j        t          |          5  t          d           d d d            n# 1 swxY w Y   t          j        t          |          5  t          d           d d d            n# 1 swxY w Y   t          j        t          |          5  t          d           d d d            n# 1 swxY w Y   t          j        t          |          5  t          dd	           d d d            n# 1 swxY w Y   t          j        t          |          5  t          dd
           d d d            n# 1 swxY w Y   t          j        t          |          5  t          dd           d d d            n# 1 swxY w Y   t          j        t          |          5  t                       d d d            d S # 1 swxY w Y   d S )Nr   re   rg   )r`   )r   rr   rq   r   )r`   rP   )r   rP   rN   rj   rk   r   r   rm   s     r+   test_range_misspecifiedz&TestDateRanges.test_range_misspecified  s   4 	
 ]:S111 	) 	)Z((((	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) ]:S111 	' 	':&&&&	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' ]:S111 	# 	#r""""	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# ]:S111 	3 	3Zc2222	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 ]:S111 	1 	1:C0000	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 ]:S111 	- 	-r,,,,	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- ]:S111 	 	LLL	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	sy   ;??!A>>BB$CCC'DD	D	+E		EE/FFF3GGGc                 n    t          t          d          dd          }t          |          dk    sJ d S )Nz1960-04-01 00:00:00L   zQS-JANrN   )r   r   r   )r9   r   s     r+   test_compat_replacez"TestDateRanges.test_compat_replace  s>     I&;<<bxXXX6{{b      r-   c           	          t          j        d          }d}t          j        t          |          5  t          t          ddd          t          ddd          |           d d d            d S # 1 swxY w Y   d S )	Nr   )minutez4Offset <DateOffset: minute=5> did not increment datere   r         r   )r   r
   rj   rk   r   r   r   )r9   r   rn   s      r+   test_catch_infinite_loopz'TestDateRanges.test_catch_infinite_loop  s    #1---D]:S111 	T 	Txb"--xb"/E/EFSSSS	T 	T 	T 	T 	T 	T 	T 	T 	T 	T 	T 	T 	T 	T 	T 	T 	T 	Ts   1A11A58A5c                 X   t          d                              dd          }t          d                              dd          }t          dd          ||g}t          |d	                              |          }t	          d
ddd|          }t          j        ||           d S )Nz2010-11-07 01:00:00
US/PacificT)	ambiguousFz2010-11-07 00:00:00r5   r   r   z	2010-11-7rK   )r`   rO   rP   r6   r   )r   tz_localizer   r   r   rs   rv   )r9   r   pre_dstpst_dstexpect_datar   r   s          r+   test_construct_over_dstz&TestDateRanges.test_construct_over_dst  s    122>>D ? 
 
 122>>E ? 
 
 +===

 !3777??EEqs|$
 
 
 	fh/////r-   c                     t          ddd|          }t          t          d          t          d          t          d          gd                              |          }t	          j        ||           d S )Nz2013-01-01 00:00:00+09:00z2013/01/01 02:00:00+09:00r   rP   r   z2013-01-01 01:00:00+09:00z2013-01-01 02:00:00+09:00r   )r   r   r   r   rs   rv   r   s       r+   5test_construct_with_different_start_end_string_formatzDTestDateRanges.test_construct_with_different_start_end_string_format  s    ''	
 
 
 !566566566
 
 
 
 '$-- 	 	fh/////r-   c                     d}t          j        t          |          5  t          ddt	          d                     d d d            d S # 1 swxY w Y   d S )Nz.Offset <0 \* MonthEnds> did not increment datere   rg   z1/1/2001r   r   )rj   rk   r   r   r   rm   s     r+   test_error_with_zero_monthendsz-TestDateRanges.test_error_with_zero_monthends  s    ?]:S111 	A 	Az:HQKK@@@@	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	As    AAAc                     t          d          t          dd|          }t          ddd          t          fdt	          d	          D             d
| d          }t          j        ||           d S )NrK   )months2011-1-1z	2012-1-31r  r   r   c                      g | ]
}|z  z   S r#   r#   )r   r   r   r`   s     r+   r   z1TestDateRanges.test_range_bug.<locals>.<listcomp>  s"    222AUQZ222r-   r   r   r   r   )r
   r   r   r   r   rs   rv   )r9   r   r   r   r   r`   s       @@r+   test_range_bugzTestDateRanges.test_range_bug  s    1%%%J&tLLLq!$$ 22222q222----f
 
 
 	fh/////r-   c                 L   t          d          }|                    t          ddd                    }|                    t          ddd                    }t          |d          }|j        j        |j        k    sJ |d         |k    sJ |d         |k    sJ t          |d          }|j        j        |j        k    sJ |d         |k    sJ |d         |k    sJ t          ||	          }|j        j        |j        k    sJ |d         |k    sJ |d         |k    sJ d S )
Nr4   r   r   rK   r`   rO   r   r   r   rO   r`   r   )r   localizer   r   r6   zone)r9   r6   r`   r   drs        r+   test_range_tz_pytzz!TestDateRanges.test_range_tz_pytz  s.   l##HT1a0011kk(4A..//eQ///uzRW$$$$!u~~~~!u||||C+++uzRW$$$$!u~~~~!u||||e---uzRW$$$$!u~~~~!u||||||r-   z
start, endrJ      r  i  r  c                 (   t          ||d          }|d         |k    sJ |d         |k    sJ t          j        |j        dk              sJ t          ||dd          }|d         |k    sJ |d         |k    sJ t          j        |j        dk              sJ t          |                    d           |                    d           dd          }|d         |k    sJ |d         |k    sJ t          j        |j        dk              sJ d S )NrM   r   r   r   r4   rP   r6   tzinfo)r   r   allhourreplace)r9   r`   r   r+  s       r+   test_range_tz_dst_straddle_pytzz.TestDateRanges.test_range_tz_dst_straddle_pytz  s,    s---!u~~~~"v}}}}vbgl#####s>>>!u~~~~"v}}}}vbgl#####MMM&&KKtK$$	
 
 
 !u~~~~"v}}}}vbgl#######r-   c                     ddl m fd}t          ddd |d                    }t          ddd |d                    }t          |d	          }|j         |d          k    sJ |d         |k    sJ |d
         |k    sJ t          |d          }|j         |d          k    sJ |d         |k    sJ |d
         |k    sJ t          ||          }|j         |d          k    sJ |d         |k    sJ |d
         |k    sJ d S )Nr   )maybe_get_tzc                       d| z             S )Nz	dateutil/r#   )xr7  s    r+   <lambda>z7TestDateRanges.test_range_tz_dateutil.<locals>.<lambda>6  s    ||K!O44 r-   r   r   r4   r0  rK   r&  r   r'  r(  )rF   r7  r   r   r6   )r9   r6   r`   r   r+  r7  s        @r+   test_range_tz_dateutilz%TestDateRanges.test_range_tz_dateutil0  s\    	?>>>>>4444q!BB|,<,<===tQ""\*:*:;;;eQ///u<((((((!u~~~~!u||||C+++u<((((((!u~~~~!u||||e---u<((((((!u~~~~!u||||||r-   )1Dr  ry   7W3hr^   r6   c                     t          d|          }t          d|          }t          ||||          }t          ||d|          }t          ||||          }t          j        ||           d S )N2011/1/1r5   2014/1/1)	inclusiverP   r"   r   r   r,   rs   rv   )	r9   rP   r6   inclusive_endpoints_fixturebeginr   result_ranger&   r*   s	            r+   test_range_closedz TestDateRanges.test_range_closedJ  s    
 *,,,
r***!3"=D
 
 
  sf4HHH
,3
$?
 
 	nl;;;;;r-   c                 $   t          d          }t          d          }t          dd          }t          dd          }t          ||||d          }t          ||d|d          }t          ||||          }	t          j        |	|           d S )Nr@  rA  r4   r5   )rB  rP   r6   r"   rC  )
r9   rP   rD  rE  r   begintzendtzrF  r&   r*   s
             r+   1test_range_with_tz_closed_with_tz_aware_start_endz@TestDateRanges.test_range_with_tz_closed_with_tz_aware_start_end\  s     *%%
##J<888*666!1
 
 
  3&t
 
 

 -'	
 
 	nl;;;;;r-   c                    t          ddd|          }t          ddd|          }t          ddd|          }t          ddd|          }|}|}|}|dk    r|dd          }n+|d	k    r|d d
         }n|dk    r|dd          }|d d
         }|dd
         }	t          j        ||           t          j        ||           t          j        ||           t          j        ||	           d S )Nz
2015-09-12z
2015-12-01zQS-MARrP   rB  z
2015-09-01z
2015-09-11r    r   r   r   r"   r   )
r9   rD  right_boundaryleft_boundaryboth_boundaryneither_boundaryexpected_rightexpected_leftexpected_bothexpected_neithers
             r+   test_range_closed_boundaryz)TestDateRanges.test_range_closed_boundaryx  sZ   #1	
 
 
 #1	
 
 
 #1	
 
 
 &1	
 
 
 '%%&'11)!""-MM(F22*3B3/NN(F22*122.N)#2#.M(2.
nn===
m];;;
m];;;
.0@AAAAAr-   c                    |}t          ddd|          }t          ddd|          }t          j        ||           t          ddd|          }t          dd	d|          }t          j        ||           t          dd
d|          }t          ddd|          }t          j        ||           t          dd
d|          }	t          ddd|          }
t          j        |	|
           d S )N20142015MEr/  z
2014-01-31
2014-12-31MS
2014-01-01
2015-01-012020r^   z
2019-12-31YSr  r   )r9   tz_naive_fixturer6   r  	expected1r  	expected2rng3	expected3rng4	expected4s              r+   test_date_range_years_onlyz)TestDateRanges.test_date_range_years_only  s	   &&t;;;|\LLL	
dI...&&t;;;|\LLL	
dI...&&t;;;|\LLL	
dI...&&t;;;|\LLL	
dI.....r-   c                     t          ddd          }t          ddd          }t          ddgd	dd 
          }t          ddgd	dd 
          }t          j        ||           t          j        ||           d S )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[ns]r   rP   r6   z2005-01-13 10:00:00z2005-01-13 15:45:00r   r   rs   rv   )r9   result_1result_2
expected_1
expected_2s        r+   test_freq_divides_end_in_nanosz-TestDateRanges.test_freq_divides_end_in_nanos  s    02D8TTT02D8TTT""$9:"	
 
 

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

 	h
333
h
33333r-   c                     t          ddt          d                    }t          |          dk    sJ |d         t          ddd	d
          k    sJ d S )Nz2010-09-01 05:00:00r   r-  hoursrN   r   r   r   r   r   )r   r
   r   r   r   s     r+   test_cached_range_bugz$TestDateRanges.test_cached_range_bug  s_    .RSATATATUUU3xx2~~~~1v$1a00000000r-   c                 v    t          dd          }t          |dd          }t          |          dk    sJ d S )N20130220 10:00r4   r5   r   r   )r   r   r   )r9   r`   r   s      r+   test_timezone_comparison_bugz+TestDateRanges.test_timezone_comparison_bug  sF    *|<<<E1>>>6{{ar-   c                     t          dd          }d}t          j        t          |          5  t	          |dd           d d d            d S # 1 swxY w Y   d S )	Nrx  r4   r5   z0Inferred time zone not equal to passed time zonere   r   zEurope/Berlinr   )r   rj   rk   AssertionErrorr   )r9   r`   rn   s      r+   test_timezone_comparison_assertz.TestDateRanges.test_timezone_comparison_assert  s    *|<<<@]>555 	= 	=uaO<<<<	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	=s   AAAc                     |}t          ddd|          }t          ddd|          d d d         }t          j        ||           d S )Nz
2011-06-01r   z-1MS)r`   r   rP   r6   1MS)r   r`   rP   r6   r   r   )r9   tz_aware_fixturer6   r   r   s        r+   1test_negative_non_tick_frequency_descending_datesz@TestDateRanges.test_negative_non_tick_frequency_descending_dates  s^    ,LvRTUUU,lSUVVVDbD
 	fh/////r-   c                     d}d}t          ||d|          }t          ||dd          }|dk    r|dd         }n|dv r
|d d          }t          j        ||           d S )	Nz
2021-09-02rM   )r`   r   rP   rB  r"   r!   r   r   )r   r    r"   r   )r9   rD  r`   r   r   r&   r   s          r+    test_range_where_start_equal_endz/TestDateRanges.test_range_where_start_equal_end  s    Ss6Q
 
 
  e3&QQQ
&)33!!B$'HH(,EEE!!!!}H
fh/////r-   c                     t          ddd          }t          dd|d          }t          g dd	          }t          j        ||           d S )
Nrr   9   rK   )ru  r  nanosecondsz1970-01-01 00:00:00a)r   rO   rP   ra   )
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   rs   rv   )r9   rP   r   r   s       r+   .test_freq_dateoffset_with_relateivedelta_nanosz=TestDateRanges.test_freq_dateoffset_with_relateivedelta_nanos  sq    ;;; 5rSVWWW    
 
 
 	fh/////r-   ))r   H)2min2T)1s1S)2ms2L)1us1U)2ns2Nc                 j   t          j        d|d          d         }t          j        d|d          d         }d| d}d| d t          dd	|
          }t          j        t
          |          5  t          dd	|
          }d d d            n# 1 swxY w Y   t          j        ||           d S )N[0-9]*r   maxsplitr   z9' is deprecated and will be removed in a future version, zplease use 'z	' insteadrg   r   rN   re   resplitr   rs   rt   ru   rv   r9   rP   r   freq_msgfreq_depr_msgrn   r   r   s           r+   'test_frequencies_H_T_S_L_U_N_deprecatedz6TestDateRanges.test_frequencies_H_T_S_L_U_N_deprecated  s    8HdQ777:9qAAA!DXXXX 	 	+x****j!$???'SAAA 	G 	G
AIFFFF	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G
fh/////   4BBB))200YE200A)r^   Y)z2YE-MAYz2A-MAY)zYE-MAYzY-MAYc                 j   t          j        d|d          d         }t          j        d|d          d         }d| d}d| d t          dd	|
          }t          j        t
          |          5  t          dd	|
          }d d d            n# 1 swxY w Y   t          j        ||           d S )Nr  r   r  r   r   r   r   rg   r   rN   re   r  r  s           r+   'test_frequencies_A_deprecated_Y_renamedz6TestDateRanges.test_frequencies_A_deprecated_Y_renamed$  s    8HdQ777:9qAAA!DE-EEE@H@@@@j!$???'SAAA 	G 	G
AIFFFF	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G
fh/////r  returnc                     d}t          j        t          |          5  t          ddd          }d d d            n# 1 swxY w Y   t	          ddgd	
          }t          j        ||           d S )NzS'm' is deprecated and will be removed in a future version, please use 'ME' instead.re   z
2010-01-01r   mrN   z
2010-01-31z
2010-02-28rZ  r   )rs   rt   ru   r   r   rv   )r9   rn   r   r   s       r+   -test_to_offset_with_lowercase_deprecated_freqz<TestDateRanges.test_to_offset_with_lowercase_deprecated_freq9  s     	 'SAAA 	C 	CacBBBF	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C ,!=DIII
fh/////s   =AAc                     t          ddd          }t          |dd          }t          |          dk    sJ |d         |dt          j                    z  z   k    sJ |j        dk    sJ d S )	N  r     1Br   )r`   rP   rO   r   r   )r   r   r   r   r   rP   )r9   sdaterb   s      r+   test_date_range_bdayz#TestDateRanges.test_date_range_bdayD  sr    r2&&u4<<<3xx2~~~~1vW\^^!333333x3r-   )r  N)6rV   rW   rX   rc   ro   rx   rj   markparametrizer   r   r   r   r   r   r   r   slowr   r   r   r   r   r   r   r   r   r   r  r
  r  r  r  r  r  r$  r,  r5  r;  rG  rK  rV  rh  rr  rv  ry  r|  r  r  r  r  r  r  r  r#   r-   r+   r\   r\      s       " " "B B B
( ( ( [	
 	
 	
 0 0 0= = = [V%M%M%MNN!( !( ON!(F@ @ @A A AG G G
  
  
 	H 	H 	H [[35QR - -  -C C C  * * *$
9 
9 
90 0 087 7 78 [222XdAq!!88D!Q#7#7FYz""IIj$9$9<H	*666	*666 	*666	*666	
 $0 0% $0* * *  8! ! !T T T0 0 0&0 0 0$A A A
	0 	0 	0  * [ 	((4A..<@@@	((4B//LAAA
 	((4Q//LAAA	((4Q//LAAA		
 $ $ $*  4 [V%J%J%JKK[TD,#788< < 98 LK<  [V%J%J%JKK< < LK<6,B ,B ,B\/ / /&4 4 4&1 1 1
     = = =0 0 00 0 0 0 0 0* [	
 	
 	

 
0 0
 
0 [	
 	
 	
 
0 
0 
0	0 	0 	0 	0    r-   r\   c                      e Zd ZdZd Zej                            dddg          d             Zej                            dddg          d             Z	d Z
d	 Zej                            dddg          d
             Zej                            dddg          d             Zej                            dg dg dg dg dd ed          dgg          d             ZdS )TestDateRangeTZz#Tests for date_range with timezonesc                 :    t          dddd          }|j         d S )Nz
2012-01-01z
2012-01-10rM   Hongkongr/  )r   r3  )r9   r+  s     r+   test_hongkong_tz_convertz(TestDateRangeTZ.test_hongkong_tz_convertO  s%    lLLL 	r-   tzstrr4   r?   c                     t          dddd          }|j        dk                                    sJ t          dd|	          }|j        }t          j        dgdz  d
          }t          j        ||           d S )Nz03/06/2012 00:00   zW-FRIr4   r   r   z
2012-11-02rr   r   int32r   )r   r3  r2  r   Indexrs   rv   )r9   r  r+  r   r   s        r+   #test_date_range_span_dst_transitionz3TestDateRangeTZ.test_date_range_span_dst_transitionV  s    
 *Cg,WWW1!!#####bU;;;8QC"HG444
fh/////r-   c                     t          j        |          }t          dd|          }t          dd|          }t          j        ||           d S )Nrg   rr   r   )r   r7  r   rs   rv   )r9   r  r6   r   r   s        r+   %test_date_range_timezone_str_argumentz5TestDateRangeTZ.test_date_range_timezone_str_argumentd  sS    #E**Ju===j"<<<
fh/////r-   c           	         t          dd          }t          dddddd|          }t          dd	dddd|          }t          ||
          }||j        k    sJ t          |t	          |          |          }t          j        ||           t          dd          }|j        |j        k                                    sJ d S )Ni  z+07:00  rK   r  r   r   r0  r-  r(  r   z3/11/2012 05:00:00+07:00z6/11/2012 05:00:00+07:00)	r   r   r   r6   r   rs   rv   valuesr2  )r9   offr`   r   r:   r  rd  s          r+   test_date_range_with_fixed_tzz-TestDateRangeTZ.test_date_range_with_fixed_tzl  s    #x((q"aAc:::tQAq!C888u#...cf}}}}%Sc:::
c4(((46PQQ
dk)..0000000r-   c           	          t           }t          dddddd|          }t          dddddd|          }t          ||          }||j        k    sJ t	          j        ||g          }||j        k    sJ d S )	Nr  rK   r  r   r   r0  r-  r(  )r   r   r   r6   r   r  )r9   r  r`   r   r:   rb   s         r+   'test_date_range_with_fixedoffset_nonamez7TestDateRangeTZ.test_date_range_with_fixedoffset_nonamey  s    q"aAc:::tQAq!C888u#...cf}}}}hs|$$cf}}}}}}r-   c                     t          d|          }|j        dk    sJ t          ddd|          }||d         k    sJ d S )	Nz3/11/2012 05:00r5   r   z3/11/2012 04:00rr   r   r   r   )r   r3  r   )r9   r  r;   r:   s       r+   test_date_range_with_tzz'TestDateRangeTZ.test_date_range_with_tz  sP    +666zQ*BSUKKKAr-   r6   Europe/Londonzdateutil/Europe/Londonc                 8   t          j        t          j        d          5  t	          dddd           d d d            n# 1 swxY w Y   t	          ddd|d	          }|d
         t          d|          k    sJ |d         t          d|          k    sJ d S )NzCannot infer dst timere   z2013-10-26 23:00z2013-10-27 01:00r  r   r6   rP   infer)rP   r6   r  r   r5   r   z2013-10-27 01:00:00+0000)rj   rk   rB   AmbiguousTimeErrorr   r   )r9   r6   timess      r+   "test_date_range_ambiguous_endpointz2TestDateRangeTZ.test_date_range_ambiguous_endpoint  s   
 ]42:QRRR 	 	"$6?QT   	 	 	 	 	 	 	 	 	 	 	 	 	 	 	
  2w
 
 
 Qx9%7B???????RyI&@RHHHHHHHHH   AAAztz, option, expected)r  shift_forward2019-03-10 03:00)dateutil/US/Pacificr  r  )r  shift_backward2019-03-10 01:00)r  r  r  r  r   rt  r  c                     t          j        t          j        d          5  t	          dddd           d d d            n# 1 swxY w Y   t	          ddd||          }|d	         t          ||
          k    sJ d S )Nz2019-03-10 02:00:00re   z2019-03-10 00:00z2019-03-10 02:00r  r   r  )rP   r6   nonexistentr   r5   )rj   rk   rB   NonExistentTimeErrorr   r   )r9   r6   optionr   r  s        r+   $test_date_range_nonexistent_endpointz4TestDateRangeTZ.test_date_range_nonexistent_endpoint  s     ]44<QRRR 	 	"$6<c   	 	 	 	 	 	 	 	 	 	 	 	 	 	 	
  2QW
 
 
 RyIh2666666666r  N)rV   rW   rX   __doc__r  rj   r  r  r  r  r  r  r  r  r   r  r#   r-   r+   r  r  L  s       --   [W|5J&KLL0 0 ML0 [W|5J&KLL0 0 ML01 1 1   [W|5J&KLL  ML [TO5M#NOOI I POI [???HHH@@@III991---/AB	
	 	7 7	 	7 7 7r-   r  c                      e Zd Zej                            dd e            fd e            fg          d             Zd Z	d Z
d Zd Zd	\  ZZd
\  ZZej                            d eee           ee          f ee           eee          f eee           eee          f eee           eee          fg          d             ZdS )TestGenRangeGenerationfreqstr,offsetr   Cc           	          t          t          t          t          d |d                    }t          t          t          t          d |d                    }||k    sJ d S )Nr   )rO   r   r   )listgenerate_rangeSTARTEND)r9   freqstrr   r  r  s        r+   test_generatez$TestGenRangeGeneration.test_generate  sW     N5#tFQUVVVWWN5#tGRVWWWXXt||||||r-   c           	          t          t          t          ddd          d dt                      d                    }t          ddd          t          ddd          g}||k    sJ d S )Nr   rK   r  r   r   r`   r   rO   r   r      r  r  r   r   r9   r:   r   s      r+   test_1zTestGenRangeGeneration.test_1  sw    tQ++vv  
 
 T1b))8D!R+@+@Ahr-   c           
         t          t          t          ddd          t          ddd          d t                      d                    }t          ddd          t          ddd          t          ddd          g}||k    sJ d S )N  r   rK   r   r  r   r  r  s      r+   test_2zTestGenRangeGeneration.test_2  s    tQ**T1a((vv  
 
 T1a(((4A*>*>qRS@T@TUhr-   c           
          t          t          t          ddd          t          ddd          d t                      d                    }g }||k    sJ d S )Nr  r   r   r-  r   r  r  r  s      r+   test_3zTestGenRangeGeneration.test_3  sf    tQ**T1a((vv  
 
 hr-   c                     t          ddd          }t          ddd          }g d}g d}t          |d	d
d           }t          |d	dd           }t          j        ||           t          j        ||           d S )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:03rk  zQE-DECrl  W-SUNrm  )r9   result1result2expected1_listexpected2_listrb  rc  s          r+    test_precision_finer_than_offsetz7TestGenRangeGeneration.test_precision_finer_than_offset  s    '-B
 
 
 '-B
 
 

 
 

 
 
 ""2d
 
 
	 ""2T
 
 
	 	gy111
gy11111r-   )
2017-01-01r  )r4   r  z	start,endr5   c                 4   d}t          j        t          |          5  t          ||           d d d            n# 1 swxY w Y   t          j        t          |          5  t          ||t	                                 d d d            d S # 1 swxY w Y   d S )Nz>Start and end cannot both be tz-aware with different timezonesre   r   )rj   rk   rl   r   r   r   s       r+   test_mismatching_tz_raises_errz5TestGenRangeGeneration.test_mismatching_tz_raises_err  s    O]9C000 	# 	#uc"""	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	#]9C000 	0 	0uc////	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0s   ;??!BBBN)rV   rW   rX   rj   r  r  r   r	   r  r  r  r  r  dt1dt2tz1tz2r   r  r#   r-   r+   r  r    su       [$$&&M$$&&M	
   
      !2 !2 !2F *HC,HC[Yss###YYs^^4Ys^^YYss3334Yss###YYss%;%;%;<Yss###YYss%;%;%;<		
 0 0 0 0 0r-   r  c                   ~    e Zd Zd Zd Zd Zd Zej        	                    dg d          d             Z
d Zd	 Zd
S )TestBusinessDateRangec                    t          t          t          t                                 t          t          dt                                 t          t          dt                                 d}t	          j        t          |          5  t          ddd	           d d d            n# 1 swxY w Y   t	          j        t          |          5  t          ddd	           d d d            n# 1 swxY w Y   d
}t	          j        t          |          5  t          t          t          dd            d d d            d S # 1 swxY w Y   d S )Nr   r   rN   r   zperiods must be a number, got Bre   r"  2012-1-1r   z>freq must be specified for bdate_range; use date_range insteadrr   )r   r  r  r   rj   rk   rl   r   rm   s     r+   test_constructorz&TestBusinessDateRange.test_constructor!  s   E3TVV,,,,E2DFF3333r7777/]9C000 	4 	4z:s333	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 ]9C000 	5 	5
J444	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 O]9C000 	; 	;sBT::::	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	;s6   B**B.1B.C..C25C2EEEc                     t          ddd          }t          |d          }|dt                      z  z
  }t          |          dk    sJ |d         |k    sJ |d         |k    sJ d S )	Nr   r      r   r'     r   r   )r   r   r   r   r9   r   r+  	firstDates       r+   	test_misczTestBusinessDateRange.test_misc1  st    tQ##S"---"tvv+%	2ww"}}}}!u	!!!!"v}}}}}}r-   c                 *   d}d}t          j        t          |          5  t          |           d d d            n# 1 swxY w Y   t          j        t          |          5  t	          |d           d d d            n# 1 swxY w Y   t          j        t          |          5  t	          |d           d d d            n# 1 swxY w Y   t          j        t          |          5  t	          ||           d d d            d S # 1 swxY w Y   d S )Nz
2007/100/1z;Unknown datetime string format, unable to parse: 2007/100/1re   rr   r&  r'  )rj   rk   r   r   r   )r9   badly_formed_datern   s      r+   test_date_parse_failurez-TestBusinessDateRange.test_date_parse_failure:  s   (K]:S111 	) 	)'(((	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) ]:S111 	= 	=/<<<<	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= ]:S111 	; 	;-r::::	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; ]:S111 	> 	>)+<===	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	>sE   <A A "B  BB&CCC*DDDc                     t          dd          }t          dd          }|j        j        t                      k    sJ |                    |          }t          |t                    sJ d S )N	12/5/2011	12/2/2011)r   _datarP   r   union
isinstancer   r9   r  r  r   s       r+   test_daterange_bug_456z,TestBusinessDateRange.test_daterange_bug_456J  sf    ;44;44z$&&((((D!!&-0000000r-   rB  )r   r    r!   r"   c                     d}d}t          ||d|          }d}d}t          ||d          }t          j        ||           d S )	Nz
2018-07-21z
2018-07-29r   rM  z
2018-07-23z
2018-07-27rM   r   r   )r9   rB  r`   r   r   
bday_startbday_endr   s           r+   test_bdays_and_open_boundariesz4TestBusinessDateRange.test_bdays_and_open_boundariesS  s[     E3SIFFF!
j(===
fh/////r-   c                    t           j                            d                                          }t	          |d dd          }t          |gd                              d          }t          j        ||           d S )NrM   r   r   r   r   r   )	r   maxfloorto_pydatetimer   r   r   rs   rv   )r9   r`   r:   r   s       r+   test_bday_near_overflowz-TestBusinessDateRange.test_bday_near_overflow`  st    ##C((6688D!#>>> %s333;;DAA
c8,,,,,r-   c                     d}t           j                            d                                          }t	          j        t          |          5  t          |dd           d d d            d S # 1 swxY w Y   d S )Nz"Out of bounds nanosecond timestamprM   re   r   r   rN   )r   r  r  r  rj   rk   r   r   )r9   rn   r`   s      r+   test_bday_overflow_errorz.TestBusinessDateRange.test_bday_overflow_errorg  s    2##C((6688].c::: 	3 	3uac2222	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3s   A//A36A3N)rV   rW   rX   r  r  r  r  rj   r  r  r  r  r!  r#   r-   r+   r  r     s        ; ; ;   > > > 1 1 1 [[*N*N*NOO	0 	0 PO	0- - -3 3 3 3 3r-   r  c            	       N   e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
ej                            d	d
 eD                       d             Zej                            dg d          d             Zej                            ddddgfdddgfddddgfg          d             ZdS )TestCustomDateRangec                    t          t          t          t                                 t          t          dt                                 t          t          dt                                 d}t	          j        t          |          5  t          ddd	           d d d            n# 1 swxY w Y   t	          j        t          |          5  t          ddd	           d d d            d S # 1 swxY w Y   d S )
Nr   r   rN   r   zperiods must be a number, got Cre   r"  r  r  )r   r  r  r	   rj   rk   rl   r   rm   s     r+   r  z$TestCustomDateRange.test_constructorp  s[   E3TVV,,,,E2DFF3333r7777/]9C000 	4 	4z:s333	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 ]9C000 	5 	5
J444	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5s$   B**B.1B.C//C36C3c                     t          ddd          }t          |dd          }|dt                      z  z
  }t          |          dk    sJ |d         |k    sJ |d	         |k    sJ d S )
Nr   r   r  r   r  r   r  r   r   )r   r   r	   r   r	  s       r+   r  zTestCustomDateRange.test_misc|  sv    tQ##S"3777"tvv+%	2ww"}}}}!u	!!!!"v}}}}}}r-   c                     t          ddd          }t          ddd          }|j        j        t                      k    sJ |                    |          }t          |t                    sJ d S )Nr  r  r   r  )r   r  rP   r	   r  r  r   r  s       r+   r  z*TestCustomDateRange.test_daterange_bug_456  sp    ;#>>>;#>>>z$&&((((D!!&-0000000r-   c                     t          ddd|          }t          g dd| dd          }t          j        ||           |j        |j        k    sJ d S )	N
2013-05-01rK   r  rO   rP   r   )r(  
2013-05-02
2013-05-03r   r   r   )r   r   rs   rv   rP   r   s       r+   test_cdaterangez#TestCustomDateRange.test_cdaterange  sr    \13TJJJ 666mDmmmRU
 
 
 	fh///{hm++++++r-   c                 F   t          dddd|          }t          g dd| d|j        	          }t          j        ||           |j        |j        k    sJ d
}t          j        t          |          5  t          ddd           d d d            d S # 1 swxY w Y   d S )Nr(  rK   r  Sun Mon Tue Wed Thu)rO   rP   weekmaskr   )r(  r*  
2013-05-05r   r   r   [a custom frequency string is required when holidays or weekmask are passed, got frequency Bre   )rO   r/  r   r   rP   rs   rv   rj   rk   r   r9   r   r   r   rn   s        r+   test_cdaterange_weekmaskz,TestCustomDateRange.test_cdaterange_weekmask  s+   !#8MTX
 
 
 !666---
 
 

 	fh///{hm++++3 	 ]:S111 	Q 	Qa:OPPPP	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Qs   6BBBc                 J   t          ddddg|          }t          g dd| d|j                  }t          j        ||           |j        |j        k    sJ d	}t          j        t          |
          5  t          dddg           d d d            d S # 1 swxY w Y   d S )Nr(  rK   r  )rO   rP   holidaysr   )r*  r+  
2013-05-06r   r   r   r1  re   )rO   r6  r2  r3  s        r+   test_cdaterange_holidaysz,TestCustomDateRange.test_cdaterange_holidays  s,   !#T
 
 
 !666---
 
 

 	fh///{hm++++3 	 ]:S111 	J 	Ja<.IIII	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	Js   7BBBc                     t          dddddg|          }t          g dd| d|j        	          }t          j        ||           |j        |j        k    sJ d S )
Nr(  rK   r  r.  )rO   rP   r/  r6  r   )r*  r0  r7  r   r   r   )r   r   rP   rs   rv   r   s       r+   %test_cdaterange_weekmask_and_holidaysz9TestCustomDateRange.test_cdaterange_weekmask_and_holidays  s    *"^
 
 
 !666---
 
 

 	fh///{hm++++++r-   c                     d}t          j        t          |          5  t          ddddg           d d d            d S # 1 swxY w Y   d S )Nr1  re   r(  rK   r.  )rO   r/  r6  )rj   rk   r   r   rm   s     r+   2test_cdaterange_holidays_weekmask_requires_freqstrzFTestCustomDateRange.test_cdaterange_holidays_weekmask_requires_freqstr  s    3 	 ]:S111 	 	.&	   	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   A  AArP   c                 <    g | ]}|                     d           |S )r  )
startswith)r   rP   s     r+   r   zTestCustomDateRange.<listcomp>  s)    III$DOOC4H4HIIIIr-   c                     t          t          t          |ddg           |dz   }d| }t          j        t
          |          5  t          t          t          |           d d d            d S # 1 swxY w Y   d S )NzMon Wed Friz
2009-03-14)rP   r/  r6  FOOz!invalid custom frequency string: re   r   )r   r  r  rj   rk   r   )r9   rP   bad_freqrn   s       r+   test_all_custom_freqz(TestCustomDateRange.test_all_custom_freq  s    
 	3TM\N	
 	
 	
 	
 %<<(<<]:S111 	3 	3s2222	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3s   A//A36A3	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                     |\  }}t          ||dd          }t          |gd          }t          j        ||           d S )Nr   r   )r`   r   rO   rB  zM8[ns, UTC]r  rm  )r9   rC  r`   r   r   r   s         r+   &test_range_with_millisecond_resolutionz:TestCustomDateRange.test_range_with_millisecond_resolution  sP     
s%S!vNNN %>>>
fh/////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                     t          ||d          }t          |                              d          }t          j        ||           d S )Nr  ri   r   )r   r   r   rs   rv   )r9   r`   periodr   r   s        r+   .test_range_with_timezone_and_custombusinessdayzBTestCustomDateRange.test_range_with_timezone_and_custombusinessday  sL     %cBBB **22488
fh/////r-   N)rV   rW   rX   r  r  r  r,  r4  r8  r:  r<  rj   r  r  r   rB  rE  rH  r#   r-   r+   r#  r#  o  s       
5 
5 
5  1 1 1, , ,Q Q Q(J J J(, , ,"   [II.III 	3 	3 	3 [	
 	
 	
 0 0 0 [(!.I-JK(!.I-JK+,.IJ	
 0 0 0 0 0r-   r#  c                   ,    e Zd Zd Zd Zd Zd Zd ZdS )TestDateRangeNonNanoc                     d}t          j        t          |          5  t          dddd           d d d            d S # 1 swxY w Y   d S )Nz+'unit' must be one of 's', 'ms', 'us', 'ns're   r   z
2016-03-04rK   r   r   r	  rm   s     r+   test_date_range_reso_validationz4TestDateRangeNonNano.test_date_range_reso_validation  s    ;]:S111 	H 	H|\13GGGG	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H   ?AAc                     d}t          j        t          |          5  t          dddd           d d d            d S # 1 swxY w Y   d S )Nz)Use a lower freq or a higher unit insteadre   r   z
2016-01-02r   r   r  r	  rm   s     r+   %test_date_range_freq_higher_than_resoz:TestDateRangeNonNano.test_date_range_freq_higher_than_reso  s    9]:S111 	I 	I|\4HHHH	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	IrM  c                    t          dddd          }t          j        ddt          j                  }t	          |                    d          d	          }t          j        ||           t          ddd
d
          }t          j        ddt          j                  }t	          |                    d          d
	          }t          j        ||           t          dddd          }t          j        ddt          j                  }t	          |                    d          d	          }t          j        ||           d S )Nr   z2016-01-01 00:00:01r   r  l    \tGl   _tGr  zM8[ms]r   r   l    `g ) l   A"g ) M8[us]z2016-01-01 00:00:00.001r   l     ^cQ)! l   AB|cQ)! r   )r   r   arangeint64r   viewrs   rv   )r9   r   r:   r   s       r+   !test_date_range_freq_matches_resoz6TestDateRangeNonNano.test_date_range_freq_matches_reso  s7   '<4dSSSi)+<BHMMM (!3!3$???
c8,,,'<4dSSSi-/DBHUUU (!3!3$???
c8,,,'@tRVWWWi%'@
 
 
 !(!3!3$???
c8,,,,,r-   c                    t          d          }t          d          }t          j        t          d          5  t	          ||dd           d d d            n# 1 swxY w Y   t	          ||dd	          }t          j        |                    d	          j        |                    d	          j        gt
          j	        
          }t          |                    d                    }t          j        ||           d S )Nz2022-10-19 11:50:44.719781z2022-10-19 11:50:47.066458zCannot losslessly convert unitsre   rK   r   r   r   r   r  rQ  )r   rj   rk   r   r   r   r   r   _valuerS  r   rT  rs   rv   )r9   r`   r   r   r:   r   s         r+   )test_date_range_freq_lower_than_endpointsz>TestDateRangeNonNano.test_date_range_freq_lower_than_endpoints-  s.   677455 ]:-NOOO 	8 	8uc137777	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 QT:::h]]4  'T):):)AB"(
 
 
 !(!3!344
c8,,,,,s   AA!Ac                    t          j        d          }t          j        d          }t          ||dd          }|j        dk    sJ |j        dk    sJ t          j        |                    d                              d          |dz                       d                              d          d	                              d          }t          j	        |
                                |           d S )
Nz
1066-10-14z
2305-07-13rM   r   r  zM8[s]i8r   iQ )r   
datetime64r   rP   r   rR  astyperT  rs   r   to_numpy)r9   r`   r   r   rw   s        r+   test_date_range_non_nanoz-TestDateRangeNonNano.test_date_range_non_nano>  s    l++mL))#C888x3yG####iLL!!&&t,,1WW%%**400
 
 $w--	 	 	#CLLNNC88888r-   N)rV   rW   rX   rL  rO  rU  rX  r^  r#   r-   r+   rJ  rJ    se        H H H
I I I- - -&- - -"9 9 9 9 9r-   rJ  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d Zd Zd Zd Zd Zej                            dd ej        d          fd ej        d          fd ej        d          fg          d             ZdS )TestDateRangeNonTickFreqc                    t                      }t          j        |          t          dd|          }t	          fd|D                       sJ t          g dd| d	          }t          j        ||           d S )
Ncalendar2012010120130101r`   r   rP   r   c              3   B   K   | ]}                     |          V  d S Nis_on_offsetr   r9  rP   s     r+   	<genexpr>zWTestDateRangeNonTickFreq.test_date_range_custom_business_month_begin.<locals>.<genexpr>V  1      55A4$$Q''555555r-   )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   r2  r   rs   rv   r9   r   hcalr   r   rP   s        @r+   +test_date_range_custom_business_month_beginzDTestDateRangeNonTickFreq.test_date_range_custom_business_month_beginR  s    '))#T222zz4PPP555555555555     ---!
 
 
$ 	c8,,,,,r-   c                    t                      }t          j        |          t          dd|          }t	          fd|D                       sJ t          g dd| d	          }t          j        ||           d S )
Nrb  rd  re  rf  c              3   B   K   | ]}                     |          V  d S rh  ri  rk  s     r+   rl  zUTestDateRangeNonTickFreq.test_date_range_custom_business_month_end.<locals>.<genexpr>p  rm  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   r2  r   rs   rv   ro  s        @r+   )test_date_range_custom_business_month_endzBTestDateRangeNonTickFreq.test_date_range_custom_business_month_endl  s    '))!4000zz4PPP555555555555     ---!
 
 
$ 	c8,,,,,r-   c                     t          j        ddg          }t          dd||          }t          g dd| d	|
          }t	          j        ||           d S )Nz15:00z
2020-11-26)r`   r6  z2020-11-25 15:00rL   r`   rO   rP   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   rs   rv   )r9   r   rP   r   r   s        r+   $test_date_range_with_custom_holidaysz=TestDateRangeNonTickFreq.test_date_range_with_custom_holidays  s    )<.QQQ"4adQUVVV     ---	
 	
 	
 	fh/////r-   c                    t          g dd| dd          }t          ddd|          }t          j        ||           t          dd	gd| dd          }t          dd	d|          }t          j        ||           t          g d
d| dd          }t          ddd|          }t          j        ||           d S )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   rs   rv   )r9   r   rb   r:   s       r+   test_date_range_businesshourz5TestDateRangeNonTickFreq.test_date_range_businesshour  s"   	 	 	  ---
 
 
 +-?dQUVVV
c3'''!34M$MMMPT
 
 
 +-?dQUVVV
c3'''  4  ---9
 
 
< +-?dQUVVV
c3'''''r-   c                 p   t          ddd|          }t          ddd|          }t          ddd|          }t          g dd	| d
d          }t          j        ||           t          j        ||           t          j        ||           t          ddd|          }t          ddd|          }t          ddd|          }|t	          d                              |          z   }	d|	_        t          j        ||	           t          j        ||	           t          j        ||	           d S )Nr  r  r  rf  r  rw  )r   rO   rP   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   rs   rv   r   r   rP   )
r9   r   idx1idx2idx3r   idx4idx5idx6rc  s
             r+   test_date_range_business_hour2z7TestDateRangeNonTickFreq.test_date_range_business_hour2  sw   $*<4d
 
 
  2BTPTUUU0"4dSSS     ---!
 
 
$ 	dH---
dH---
dH---$*<4d
 
 
  2BTPTUUU0"4dSSSy444<<TBBB		
dI...
dI...
dI.....r-   c                     t          ddd|          }t          dgd| dd          }t          j        ||           d S )Nz2014-07-01 10:00r  r   )r`   rP   rO   r   r   r   r   rm  )r9   r   r  rg  s       r+   #test_date_range_business_hour_shortz<TestDateRangeNonTickFreq.test_date_range_business_hour_short  sS     2qtTTT!#5"6mDmmmRVWWW	
dI.....r-   c                     t          ddd|          }t          g dd| dd          }t          j        ||           d S )	N1/1/20137/1/2017r`  r  )
2013-01-01r]  r^  r   r  r   r   r   rm  r9   r   r:   rw   s       r+   test_date_range_year_startz3TestDateRangeNonTickFreq.test_date_range_year_start  s^    ZdFFFRRR---
 
 

 	c3'''''r-   c                     t          ddd|          }t          g dd| dd          }t          j        ||           d S )	Nr  r  r^   r  )
2013-12-31r[  
2015-12-31z
2016-12-31r   r   r   rm  r  s       r+   test_date_range_year_endz1TestDateRangeNonTickFreq.test_date_range_year_end  s^    ZdFFFDDD---
 
 

 	c3'''''r-   c                     t          ddd|          }t          g dd| dd          }t          j        ||           |j        dk    sJ d S )	N
2011-12-31z-2YErK   rP   rO   r   )r  z
2009-12-31z
2007-12-31r   r   r   r   r   rs   rv   rP   r  s       r+   &test_date_range_negative_freq_year_endz?TestDateRangeNonTickFreq.test_date_range_negative_freq_year_end  p    FADIII666mDmmmRX
 
 
 	c3'''x6!!!!!!r-   c                     t          ddd|          }t          g dd| dd          }t          j        ||           d S )	Nr  r  BYEr  )r  r[  r  z
2016-12-30r   r   r   rm  r  s       r+   &test_date_range_business_year_end_yearz?TestDateRangeNonTickFreq.test_date_range_business_year_end_year  s^    Ze$GGGDDD---
 
 

 	c3'''''r-   c                     t          ddd|          }t          g dd| dd          }t          j        ||           d S )	Nrg   rr   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   rm  r   s       r+   test_date_range_bmsz,TestDateRangeNonTickFreq.test_date_range_bms$  sf    JTJJJ     ---
 
 
  	fh/////r-   c                    t          ddd          t          ddd          t          ddd          t          ddd          t          ddd          t          ddd          t          ddd          t          ddd          t          ddd          t          dd	d          t          dd	d          t          dd
d          t          dd
d          t          ddd          t          ddd          t          ddd          t          ddd          t          ddd          t          ddd          t          ddd          t          ddd          t          ddd          t          ddd          t          ddd          t          ddd          g}t          |d         |d         d|          }t          |d| dd          }t          j        ||           d S )N  r  r   r  r   r   rK   rL   r   r-     r   r   rr   r  r   r   SMSrf  r   r   r   r   r   r   rs   rv   r9   r   datesr   rw   s        r+    test_date_range_semi_month_beginz9TestDateRangeNonTickFreq.test_date_range_semi_month_begin:  s   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QQEtUCCC
fc*****r-   c                    t          ddd          t          ddd          t          ddd          t          ddd          t          ddd          t          dd	d          t          dd	d          t          dd
d          t          dd
d          t          ddd          t          ddd          t          ddd          t          ddd          t          ddd          t          ddd          t          ddd          t          ddd          t          ddd          t          ddd          t          ddd          t          ddd          t          ddd          t          ddd          t          ddd          t          ddd          g}t          |d         |d         d|          }t          |d| dd          }t          j        ||           d S )Nr  r     r  r   r   r      rK   rL      r   r-  r  r   r   rr   r  r   r   SMErf  r   r   r   r  r  s        r+   test_date_range_semi_month_endz7TestDateRangeNonTickFreq.test_date_range_semi_month_end[  s   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QQEtUCCC
fc*****r-   c                    t          ddd|          }t          dgd| dd          }t          j        ||           t          dd	d|          }t          dd
gd| dd          }t          j        ||           d S )N20110101r   zWOM-1MONrw  z
2011-01-03r   r   r   r   z
2011-02-07rm  )r9   r   r   r   r  rc  s         r+   test_date_range_week_of_monthz6TestDateRangeNonTickFreq.test_date_range_week_of_month|  s     *ajtTTT ,}T}}}:VVV
fh///:qzPTUUU!<(dJ
 
 
	 	gy11111r-   c                     t          ddd|          }t          g dd| dd          }t          j        ||           d S )	Nz2013-1-1rL   zWOM-1SATr)  )z
2013-01-05z
2013-02-02z
2013-03-02z
2013-04-06r   r   r   rm  r   s       r+   test_date_range_week_of_month2z7TestDateRangeNonTickFreq.test_date_range_week_of_month2  s^    J
NNN DDD---
 
 

 	fh/////r-   c                     t          ddd|          }t          g dd| dd          }t          j        ||           |j        dk    sJ d S )	N
2011-01-31z-2MErK   r  )r  z
2010-11-30z
2010-09-30r   r   r   r  r  s       r+   'test_date_range_negative_freq_month_endz@TestDateRangeNonTickFreq.test_date_range_negative_freq_month_end  r  r-   c                     t          j        ddd          }t          dd||          }t          dd	gd
| d|          }t	          j        ||           d S )Nr   rK   nearest)startingMonthweekday	variationr  r   rw  z
2013-01-31z
2014-01-30r   r   r   )r   FY5253r   r   rs   rv   )r9   r   rP   r   r   s        r+   test_date_range_fy5253z/TestDateRangeNonTickFreq.test_date_range_fy5253  s}    ~AqINNN	
 
 
 !<(dD
 
 
 	c8,,,,,r-   r  QSr   )r  BQEr  r  r-  )r  c                     t          ddd          }t          ddd          }t          |||          }t          |||          }t          |          t          |          k    sJ |j        |j        k    sJ d S )Nr  r  r  r   r   r   )r   r   r   rP   )r9   r  r   r  r   r  r  s          r+   &test_date_range_freqstr_matches_offsetz?TestDateRangeNonTickFreq.test_date_range_freqstr_matches_offset  s     r2&&q!$$5w???5v>>>4yyCII%%%%yDI%%%%%%r-   N)rV   rW   rX   rq  ru  ry  r  r  r  r  r  r  r  r  r  r  r  r  r  r  rj   r  r  r   QuarterBeginBQuarterEndWeekr  r#   r-   r+   r`  r`  O  s       - - -4- - -40 0 0 7( 7( 7(r&/ &/ &/P/ / /( ( (( ( (" " "( ( (0 0 0,+ + +B+ + +B2 2 20 0 0" " "- - - ['7'a8889'G'b999:lgl1---.	
 & & & & &r-   r`  )8r  r   r   r   r  numpyr   rj   rB   r   pandas._libs.tslibsr   pandas._libs.tslibs.offsetsr   r	   r
   r   r   pandas.errorsr   pandas.util._test_decoratorsutil_test_decoratorsrY   pandasr   r   r   r   r   r   r   r   r   pandas._testing_testingrs   pandas.core.arrays.datetimesr   r  -pandas.tests.indexes.datetimes.test_timezonesr   r   pandas.tseries.holidayr   r  r  r,   r/   r\   r  r  r  r#  rJ  r`  r#   r-   r+   <module>r     s            
 
			             ) ) ) ) ) )              . - - - - - ) ) ) ) ) ) ) ) )    	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	       J J J J J J       
 < ; ; ; ; ;XdAq!!88D!Q#7#7
s  82( 2( 2( 2( 2( 2( 2( 2(jE E E E E E E EPe7 e7 e7 e7 e7 e7 e7 e7Pi0 i0 i0 i0 i0 i0 i0 i0XL3 L3 L3 L3 L3 L3 L3 L3^[0 [0 [0 [0 [0 [0 [0 [0|?9 ?9 ?9 ?9 ?9 ?9 ?9 ?9Dj& j& j& j& j& j& j& j& j& j&r-   