
    PiO                    
   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m	Z	 ddl
mZmZmZmZmZ ddlmZ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          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)	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                 .   | |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          /home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/pandas/tests/indexes/datetimes/test_date_range.py_get_expected_ranger,   4   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_equivV   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 )Nr1   r2   dateutil/US/Easternr4   r   r6   r7   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          j        d          }t          dd|                    d                    }|d         }t	          d|                    d                    }||k    sJ d S )Npytzr1   r2   r3   r4   r   )pytestimportorskipr   timezoner   )r8   rA   r9   r:   r;   s        r+   -test_date_range_timestamp_equiv_explicit_pytzzITestTimestampEquivDateRange.test_date_range_timestamp_equiv_explicit_pytzd   sj    "6**ZDMM,4O4OPPPAzdmmL&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_gettzr1   r2   r3   r4   )pandas._libs.tslibs.timezonesrG   r   r   )r8   gettzr9   r:   r;   s        r+   1test_date_range_timestamp_equiv_explicit_dateutilzMTestTimestampEquivDateRange.test_date_range_timestamp_equiv_explicit_dateutill   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   )r8   datetime_instancetimestamp_instancer;   s       r+   6test_date_range_timestamp_equiv_from_datetime_instancezRTestTimestampEquivDateRange.test_date_range_timestamp_equiv_from_datetime_instancev   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   rO   rP   r   r6   )r8   rT   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?   rE   tdskip_if_windowsrJ   rU   rW   r#   r-   r+   r/   r/   P   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d.dd/           ed.dd0          g ed1d2d           ed1d2d/          gg          d3             Z%d4 Z&ej                            dg d5          ej                            d6d"dg          d7                         Z'ej                            dg d5          d8             Z(d9 Z)d: Z*d; Z+d< Z,d= Z-d> Z.d? Z/d@ Z0dA Z1ej                            dg dB          dC             Z2ej                            dDg dE          dF             Z3dG Z4ej                            ddHdIg          dJ             Z5ej                            dKg dL          dM             Z6ej                            dNg dO          dP             Z7d"S )QTestDateRangesc                 F    t          dddd          }|j        dk    sJ d S )Nz
2000-01-01r   YETEST)startrQ   rR   name)r   rc   )r8   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 an integer, got foomatch1/1/2000foorO   rb   rQ   rR   rB   raises	TypeErrorr   r8   msgs     r+   test_date_range_invalid_periodsz.TestDateRanges.test_date_range_invalid_periods   s    3]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            d S # 1 swxY w Y   d S )Nzperiods must be an integerrg   ri   g      %@rQ   rl   ro   s     r+   !test_date_range_fractional_periodz0TestDateRanges.test_date_range_fractional_period   s    *]9C000 	1 	1z40000	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1s   =AArR   )2M1m2SM2BQ1bq2BYc                     d| }t          j        t          |          5  t          dd|           d d d            d S # 1 swxY w Y   d S )NInvalid frequency: rg   ri   rN   rP   rB   rm   
ValueErrorr   r8   rR   rp   s      r+   +test_date_range_frequency_M_SM_BQ_BY_raisesz:TestDateRanges.test_date_range_frequency_M_SM_BQ_BY_raises   s    *D**]:S111 	9 	9z148888	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9   AA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 insteadrg   )rO         )endrR   rQ   )r   rB   rm   rn   r   )r8   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)nsusmsminshrO   c                 $   t          d|           t          d          |dk    rdnd}t          z   dz  z   |          }t          fdt	          d	d
          D             ||          }t          j        ||           t          dz  z   z   |          }t          g ||          }t          j        ||           t          z   z   |          }t          z   g||          }t          j        ||           d S )N1z
1970-01-01r   M8[us]M8[ns]rN   rb   r   rR   c                      g | ]
}|z  z   S r#   r#   ).0nr[   r;   s     r+   
<listcomp>z8TestDateRanges.test_date_range_edges.<locals>.<listcomp>   s!    ...QR!b&[...r-   r   r   dtyperR   )r   r   r   r   rangetmassert_index_equal)r8   rR   	exp_dtyperd   expr[   r;   s        @@r+   test_date_range_edgesz$TestDateRanges.test_date_range_edges   sc    z4zz""|$$ $HH(	r'QV
 
 

 .....%1++...
 
 

 	c3''' q2v+R
 
 

 Bid;;;
c3''' r'R
 
 

 R"WIYTBBB
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 withrg      r   rQ   rR   )r   rB   rm   r   r   r   r   )r8   rR   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 NaTrg   
2016-01-01rO   r   )rB   rm   r~   r   pdNaTro   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 rO   rk   r   r   rg   z
1969-05-04i 30000DrP   )r   assert_produces_warningr   r   lenrB   rm   r   )r8   dtirp   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-11rO   r   r   rk   r   r   )r   r   equals)r8   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 d            n# 1 swxY w Y   t          j        t          |          5  t          dddd	           d d d            d S # 1 swxY w Y   d S )
Nr   rg   
1970-02-01i ' r   r   rb   rQ   rR   unit
1969-11-14r   rQ   rR   r   rB   rm   r   r   ro   s     r+   .test_date_range_int64_overflow_non_recoverablez=TestDateRanges.test_date_range_int64_overflow_non_recoverable   sC    +].c::: 	U 	U\;StTTTT	U 	U 	U 	U 	U 	U 	U 	U 	U 	U 	U 	U 	U 	U 	U ].c::: 	S 	S<3TRRRR	S 	S 	S 	S 	S 	S 	S 	S 	S 	S 	S 	S 	S 	S 	S 	S 	S 	S!   >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   r   r   )r8   s_tse_tsrb   r   expectedr   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 d            n# 1 swxY w Y   t          j        t          |          5  t          dddd	           d d d            d S # 1 swxY w Y   d S )
NzCannot generate rangerg   r   i rO   r   rQ   rR   r   z
1763-10-12r   r   ro   s     r+   test_date_range_out_of_boundsz,TestDateRanges.test_date_range_out_of_bounds  s?   %].c::: 	J 	J|V#DIIII	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J].c::: 	N 	N<cMMMM	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N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rR   rN   )r   r   r8   r9   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)rQ   	normalizerR   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   r   r   r   )r8   r   r9   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   rM   (   r   	   VOf the four parameters: start, end, periods, and freq, exactly three must be specifiedrg   
   r   rP   )r   rB   rm   r~   r   r8   rb   r   rp   s       r+   #test_date_range_ambiguous_argumentsz2TestDateRanges.test_date_range_ambiguous_arguments-  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-27rM   rQ   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)r5   rQ   r   z2018-04-01 01:00:00+1100r4   z2018-04-01 02:00:00+1000z2018-04-01 04:00:00+1000)r   r   r   r   r   as_unitr8   r   resultr   s       r+   #test_date_range_convenience_periodsz2TestDateRanges.test_date_range_convenience_periods9  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-01rM   r3   rQ   r5   zUnable to coerce to Seriesrg   )TTTr   rc   )TFF)FTF)FFT)r   r   to_framenparrayto_listTrB   rm   r~   r   r   assert_frame_equalassert_series_equalassert_numpy_array_equal)r8   r9   dfarrarr2r   resultss          r+    test_date_range_index_comparisonz/TestDateRanges.test_date_range_index_comparisonU  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20180103r3   i  r   rM   r3   r   r   r4   Nc                 |    t          ||d|          }t          dddd          }t          j        ||           d S )NrM   r   r   rO   r3   rQ   rR   r5   r   r   r   )r8   rb   r   	result_tzr   r   s         r+   test_date_range_linspacing_tzz,TestDateRanges.test_date_range_linspacing_tzq  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   rM   )days)r   r   r   r   )r8   rb   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   rg   ri   )rb   )r   r   rs   r   )rb   rR   )r   rR   rP   r}   ro   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-JANrP   )r   r   r   )r8   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 daterg   r         r   )r   r	   rB   rm   r~   r   r   )r8   r   rp   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:00r4   r   r   z	2010-11-7rM   )rb   rQ   rR   r5   r   )r   tz_localizer   r   r   r   r   )r8   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   rR   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_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 daterg   ri   z1/1/2001r   r   )rB   rm   r~   r   r
   ro   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    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 )NrM   )months2011-1-1z	2012-1-31r  r   r   c                      g | ]
}|z  z   S r#   r#   )r   r   r   rb   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   r   r   )r8   r   r   r   r   rb   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                    t          j        d          }|                    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 )NrA   r3   r   r   rM   rb   rQ   r   r   r   rQ   rb   r   )rB   rC   rD   localizer   r   r5   zone)r8   rA   r5   rb   r   drs         r+   test_range_tz_pytzz!TestDateRanges.test_range_tz_pytz  sB   "6**]]<((HT1a0011kk(4A..//eQ///uzRW$$$$!u~~~~!u||||C+++uzRW$$$$!u~~~~!u||||e---uzRW$$$$!u~~~~!u||||||r-   z
start, endrL      r  i  r  c                    t          j        d          }|                    d          }t          ||          }t          ||          }t	          ||d          }|d         |k    sJ |d         |k    sJ t          j        |j        dk              sJ t	          ||d|          }|d         |k    sJ |d         |k    sJ t          j        |j        dk              sJ t	          |                    d 	          |                    d 	          d|          }|d         |k    sJ |d         |k    sJ t          j        |j        dk              sJ d S )
NrA   r3   r4   rO   r   r   r   rR   r5   tzinfo)	rB   rC   rD   r   r   r   allhourreplace)r8   rb   r   rA   r5   r-  s         r+   test_range_tz_dst_straddle_pytzz.TestDateRanges.test_range_tz_dst_straddle_pytz  sq    "6**]]<((%B'''###s---!u~~~~"v}}}}vbgl#####s444!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#   )xr9  s    r+   <lambda>z7TestDateRanges.test_range_tz_dateutil.<locals>.<lambda>*  s    ||K!O44 r-   r   r   r3   r2  rM   r(  r   r)  r*  )rH   r9  r   r   r5   )r8   r5   rb   r   r-  r9  s        @r+   test_range_tz_dateutilz%TestDateRanges.test_range_tz_dateutil$  s\    	?>>>>>4444q!BB|,<,<===tQ""\*:*:;;;eQ///u<((((((!u~~~~!u||||C+++u<((((((!u~~~~!u||||e---u<((((((!u~~~~!u||||||r-   )1Dr  2ME7W3hr`   r5   c                     t          d|          }t          d|          }t          ||||          }t          ||d|          }t          ||||          }t          j        ||           d S )N2011/1/1r4   2014/1/1)	inclusiverR   r"   r   r   r,   r   r   )	r8   rR   r5   inclusive_endpoints_fixturebeginr   result_ranger&   r*   s	            r+   test_range_closedz TestDateRanges.test_range_closed>  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 )NrC  rD  r3   r4   )rE  rR   r5   r"   rF  )
r8   rR   rG  rH  r   begintzendtzrI  r&   r*   s
             r+   1test_range_with_tz_closed_with_tz_aware_start_endz@TestDateRanges.test_range_with_tz_closed_with_tz_aware_start_endP  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rR   rE  z
2015-09-01z
2015-09-11r    r   r   r   r"   r   )
r8   rG  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_boundaryl  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MEr1  z
2014-01-31
2014-12-31MS
2014-01-01
2015-01-012020r`   z
2019-12-31YSr  r   )r8   tz_naive_fixturer5   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[us]r   rR   r5   z2005-01-13 10:00:00z2005-01-13 15:45:00r   r   r   r   )r8   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/  hoursrP   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:00r3   r4   r   r   )r   r   r   )r8   rb   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 )	Nr{  r3   r4   z0Inferred time zone not equal to passed time zonerg   r   zEurope/Berlinr   )r   rB   rm   AssertionErrorr   )r8   rb   rp   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)rb   r   rR   r5   1MS)r   rb   rR   r5   r   r   )r8   tz_aware_fixturer5   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-02rO   )rb   r   rR   rE  r"   r!   r   r   )r   r    r"   r   )r8   rG  rb   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 )
Nr   9   rM   )rx  r  nanosecondsz1970-01-01 00:00:00a)r   rQ   rR   rc   )
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   )r8   rR   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-   )2T2L1l1U2N2nc                     d| }t          j        t          |          5  t          dd|           d d d            d S # 1 swxY w Y   d S Nr|   rg   ri   r   rP   r}   r   s      r+   !test_frequency_H_T_S_L_U_N_raisesz0TestDateRanges.test_frequency_H_T_S_L_U_N_raises  s    *D**]:S111 	9 	9z148888	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9r   	freq_depr)mbmCBMSMBQzq-febzy-mayzY-MAYc                     d| }t          j        t          |          5  t          dd|           d d d            d S # 1 swxY w Y   d S r  r}   )r8   r  rp   s      r+   test_frequency_raisesz$TestDateRanges.test_frequency_raises  s     0I//]:S111 	> 	>z19====	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	>r   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   )rb   rR   rQ   r   r   )r   r   r   r   r   rR   )r8   sdaterd   s      r+   test_date_range_bdayz#TestDateRanges.test_date_range_bday  sr    r2&&u4<<<3xx2~~~~1vW\^^!333333x3r-   200Az2A-MAYc                     t          j        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 )	Nz[0-9]*r   )maxsplitr|   rg   ri   r   rP   )resplitrB   rm   r~   r   )r8   rR   freq_msgrp   s       r+   test_frequency_A_raisesz&TestDateRanges.test_frequency_A_raises  s    8HdQ777:.H..]:S111 	9 	9z14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"zfreq,freq_depr))2W2w)z2W-WEDz2w-wed)2B2b)r   2d)2C2cc                     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   z8' is deprecated and will be removed in a future version.ri   rN   rP   rg   )r   r   r   r   r   )r8   rR   r  depr_msgr   r   s         r+   (test_date_range_depr_lowercase_frequencyz7TestDateRanges.test_date_range_depr_lowercase_frequency  s     X	!""WWW 	 j!$???'hGGG 	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"Azfreq_removed,freq))100AY)z2A-DECzY-DEC)100ASrc  )z2AS-MAYzYS-MAYc                     d| }t          j        t          |          5  t          dd|           d d d            d S # 1 swxY w Y   d S )NzDid you mean rg   ri   r   rP   r}   )r8   rR   freq_removedrp   s       r+   9test_error_message_for_removed_year_yearbegin_frequencieszHTestDateRanges.test_error_message_for_removed_year_yearbegin_frequencies2  s     %d$$]:S111 	A 	Az1<@@@@	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	Ar   )8rX   rY   rZ   re   rq   rt   rB   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.  r7  r=  rJ  rN  rY  rk  ru  ry  r|  r  r  r  r  r  r  r  r  r  r  r#   r-   r+   r^   r^      s       " " "B B B
1 1 1
 [V%M%M%MNN9 9 ON9= = = [V%M%M%MNN"( "( ON"(H@ @ @A A AG G G
  
  
 	S 	S 	S [[35QR - -  -N N N  * * *$
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  , [XdAq!!88D!R#8#89XdB""HHT2q$9$9:	
 $ $ $2  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* [V%I%I%IJJ9 9 KJ9
 [NNN > > >   [Vfh%7889 9 989 [	
 	
 	
	 		0 	0	 		0 [	
 	
 	
 A A A A A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-10rO   Hongkongr1  )r   r5  )r8   r-  s     r+   test_hongkong_tz_convertz(TestDateRangeTZ.test_hongkong_tz_convertF  s%    lLLL 	r-   tzstrr3   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-FRIr3   r   r   z
2012-11-02r   r   int32r   )r   r5  r4  r   Indexr   r   )r8   r  r-  r   r   s        r+   #test_date_range_span_dst_transitionz3TestDateRangeTZ.test_date_range_span_dst_transitionM  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 )Nri   r   r   )r   r9  r   r   r   )r8   r  r5   r   r   s        r+   %test_date_range_timezone_str_argumentz5TestDateRangeTZ.test_date_range_timezone_str_argument[  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  rM   r  r   r   r2  r/  r*  r   z3/11/2012 05:00:00+07:00z6/11/2012 05:00:00+07:00)	r   r   r   r5   r   r   r   valuesr4  )r8   offrb   r   r9   r  rg  s          r+   test_date_range_with_fixed_tzz-TestDateRangeTZ.test_date_range_with_fixed_tzc  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  rM   r  r   r   r2  r/  r*  )r   r   r   r5   r   r  )r8   r  rb   r   r9   rd   s         r+   'test_date_range_with_fixedoffset_nonamez7TestDateRangeTZ.test_date_range_with_fixedoffset_nonamep  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:00r4   r   z3/11/2012 04:00r   r   r   r   )r   r5  r   )r8   r  r:   r9   s       r+   test_date_range_with_tzz'TestDateRangeTZ.test_date_range_with_tzz  sP    +666zQ*BSUKKKAr-   r5   Europe/Londonzdateutil/Europe/Londonc                 .   t          j        t          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 timerg   z2013-10-26 23:00z2013-10-27 01:00r  r   r5   rR   inferrR   r5   r  r   r4   r   z2013-10-27 01:00:00+0000rB   rm   r~   r   r   )r8   r5   timess      r+   "test_date_range_ambiguous_endpointz2TestDateRangeTZ.test_date_range_ambiguous_endpoint  s   
 ]:-DEEE 	 	"$6?QT   	 	 	 	 	 	 	 	 	 	 	 	 	 	 	
  2w
 
 
 Qx9%7B???????RyI&@RHHHHHHHHH   <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   rw  r  c                     t          j        t          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:00rg   z2019-03-10 00:00z2019-03-10 02:00r  r   r  )rR   r5   nonexistentr   r4   r  )r8   r5   optionr   r  s        r+   $test_date_range_nonexistent_endpointz4TestDateRangeTZ.test_date_range_nonexistent_endpoint  s     ]:-BCCC 	 	"$6<c   	 	 	 	 	 	 	 	 	 	 	 	 	 	 	
  2QW
 
 
 RyIh2666666666r  N)rX   rY   rZ   __doc__r  rB   r  r  r  r  r  r  r  r  r   r  r#   r-   r+   r  r  C  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   )rQ   r   r   )listgenerate_rangeSTARTEND)r8   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   rM   r  r   r   rb   r   rQ   r   r      r  r  r   r   r8   r9   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   rM   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:03rn  zQE-DECro  W-SUNrp  )r8   result1result2expected1_listexpected2_listre  rf  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  )r3   r  z	start,endr4   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 timezonesrg   r   )rB   rm   rn   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)rX   rY   rZ   rB   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                   8    e Zd Zd Zd Zd Zd Z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   rP   r   z!periods must be an integer, got Brg   r$  2012-1-1r   z>freq must be specified for bdate_range; use date_range insteadr   )r   r  r  r   rB   rm   rn   r   ro   s     r+   test_constructorz&TestBusinessDateRange.test_constructor  s   E3TVV,,,,E2DFF3333r77771]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   r8   r   r-  	firstDates       r+   	test_misczTestBusinessDateRange.test_misc(  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/1rg   r   r(  r)  )rB   rm   r~   r   r   )r8   badly_formed_daterp   s      r+   test_date_parse_failurez-TestBusinessDateRange.test_date_parse_failure1  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   _datarR   r   union
isinstancer   r8   r  r  r   s       r+   test_daterange_bug_456z,TestBusinessDateRange.test_daterange_bug_456A  sf    ;44;44z$&&((((D!!&-0000000r-   c                     d}d}t          ||d|          }d}d}t          ||d          }t          j        ||           d S )	Nz
2018-07-21z
2018-07-29r   rP  z
2018-07-23z
2018-07-27rO   r   r   )r8   rG  rb   r   r   
bday_startbday_endr   s           r+   test_bdays_and_open_boundariesz4TestBusinessDateRange.test_bdays_and_open_boundariesJ  sZ    E3S<WXXX!
j(===
fh/////r-   c                     t           j                            d                                          }t	          |d dd          }t          |gd          }t          j        ||           d S )NrO   r   r   r   r   )r   maxfloorto_pydatetimer   r   r   r   )r8   rb   r9   r   s       r+   test_bday_near_overflowz-TestBusinessDateRange.test_bday_near_overflowV  sf    ##C((6688D!#>>> %s333
c8,,,,,r-   c                     d}t           j                            d                                          }t	          j        t          |          5  t          |ddd           d d d            d S # 1 swxY w Y   d S )Nz"Out of bounds nanosecond timestamprO   rg   r   r   r   r   )r   r(  r)  r*  rB   rm   r   r   )r8   rp   rb   s      r+   test_bday_overflow_errorz.TestBusinessDateRange.test_bday_overflow_error]  s    2##C((6688].c::: 	> 	>uac====	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	>s   A00A47A4N)
rX   rY   rZ   r  r  r  r"  r&  r+  r-  r#   r-   r+   r  r    s}        ; ; ;   > > > 1 1 1	0 	0 	0- - -> > > > >r-   r  c            	       `   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 Zd Z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   rP   r   z!periods must be an integer, got Crg   r$  r  r  )r   r  r  r   rB   rm   rn   r   ro   s     r+   r  z$TestCustomDateRange.test_constructorf  s[   E3TVV,,,,E2DFF3333r77771]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_miscr  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  rR   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-01rM   r  r   )r4  
2013-05-02
2013-05-03r   r   r   )r   r   r   r   rR   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 )Nr4  rM   r  Sun Mon Tue Wed Thu)rQ   rR   weekmaskr   )r4  r5  
2013-05-05r   r   r   [a custom frequency string is required when holidays or weekmask are passed, got frequency Brg   )rQ   r:  r   r   rR   r   r   rB   rm   r~   r8   r   r   r   rp   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 )Nr4  rM   r  )rQ   rR   holidaysr   )r5  r6  
2013-05-06r   r   r   r<  rg   )rQ   rA  r=  r>  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 )
Nr4  rM   r  r9  )rQ   rR   r:  rA  r   )r5  r;  rB  r   r   r   )r   r   rR   r   r   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 )Nr<  rg   r4  rM   r9  )rQ   r:  rA  )rB   rm   r~   r   ro   s     r+   2test_cdaterange_holidays_weekmask_requires_freqstrzFTestCustomDateRange.test_cdaterange_holidays_weekmask_requires_freqstr  s    3 	 ]:S111 	 	.&	   	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   A  AArR   c                 `    g | ]+}|                                                     d           )|,S )r  )upper
startswith)r   rR   s     r+   r   zTestCustomDateRange.<listcomp>  s3    QQQ$DJJLL4K4KC4P4PQQQQr-   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 )NMon Wed Fri
2009-03-14rR   r:  rA  FOOz!invalid custom frequency string: rg   r   )r   r  r  rB   rm   r~   )r8   rR   bad_freqrp   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   )rb   r   rQ   rE  zM8[us, UTC]r  rp  )r8   rR  rb   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  rk   r   )r   r   r   r   r   )r8   rb   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-   c                     t          j        d          }t          dddd          }t          dddd          }t          ||||          }t	          g d	d
| d          }t          j        ||           d S )NzSun Mon Tue)r:  i  r   r/        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   )r8   r   r   rb   r   r   r   s          r+   .test_data_range_custombusinessday_partial_timezBTestCustomDateRange.test_data_range_custombusinessday_partial_time  s    *MBBBq!R((tQB''E3V$???     ---
 
 
 	fh/////r-   c                     t          dddddg          }t          g ddd	          }t          j        ||           d S )
Nz
2009-03-13z
2009-03-15cbhrL  rM  rN  )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:00rn  r   )r   r   r   r   )r8   r   r   s      r+   test_cdaterange_cbhz'TestCustomDateRange.test_cdaterange_cbh  so    ""^
 
 
 !	 	 	 #
 
 
 	fh/////r-   c                     d}t          j        t          |          5  t          t          t
          dddg           d d d            d S # 1 swxY w Y   d S )Nz7invalid custom frequency string: CBH, did you mean cbh?rg   CBHrL  rM  rN  )rB   rm   r~   r   r  r  ro   s     r+   $test_cdaterange_deprecated_error_CBHz8TestCustomDateRange.test_cdaterange_deprecated_error_CBH-  s    G]:S111 	 	s,   	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	r!  N)rX   rY   rZ   r  r  r"  r7  r?  rC  rE  rG  rB   r  r  r   rQ  rT  rW  r\  r_  rb  r#   r-   r+   r/  r/  e  s       
5 
5 
5  1 1 1, , ,Q Q Q(J J J(, , ,"   [QQ.QQQ 	3 	3 	3 [	
 	
 	
 0 0 0 [(!.I-JK(!.I-JK+,.IJ	
 0 0 00 0 0$0 0 02    r-   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'rg   r   z
2016-03-04rM   r   r   r}   ro   s     r+   test_date_range_reso_validationz4TestDateRangeNonNano.test_date_range_reso_validation7  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 insteadrg   r   z
2016-01-02r   r   r  r}   ro   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rg  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 ) r   z2016-01-01 00:00:00.001r   l     ^cQ)! l   AB|cQ)! r   )r   r   arangeint64r   viewr   r   )r8   r   r9   r   s       r+   !test_date_range_freq_matches_resoz6TestDateRangeNonNano.test_date_range_freq_matches_resoC  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 unitsrg   rM   r   r   r   r   r  r   )r   rB   rm   r~   r   r   r   r   _valuerl  r   rm  r   r   )r8   rb   r   r   r9   r   s         r+   )test_date_range_freq_lower_than_endpointsz>TestDateRangeNonNano.test_date_range_freq_lower_than_endpointsV  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-13rO   r   r  zM8[s]i8r   iQ )r   
datetime64r   rR   r   rk  astyperm  r   r   to_numpy)r8   rb   r   r   r   s        r+   test_date_range_non_nanoz-TestDateRangeNonNano.test_date_range_non_nanog  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)rX   rY   rZ   rf  ri  rn  rq  rw  r#   r-   r+   rd  rd  6  se        H H H
I I I- - -&- - -"9 9 9 9 9r-   rd  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 Zd Zd Z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rb   r   rR   r   c              3   B   K   | ]}                     |          V  d S Nis_on_offsetr   r;  rR   s     r+   	<genexpr>zWTestDateRangeNonTickFreq.test_date_range_custom_business_month_begin.<locals>.<genexpr>  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   r4  r   r   r   r8   r   hcalr   r   rR   s        @r+   +test_date_range_custom_business_month_beginzDTestDateRangeNonTickFreq.test_date_range_custom_business_month_begin{  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 )
Nr{  r}  r~  r  c              3   B   K   | ]}                     |          V  d S r  r  r  s     r+   r  zUTestDateRangeNonTickFreq.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   r4  r   r   r   r  s        @r+   )test_date_range_custom_business_month_endzBTestDateRangeNonTickFreq.test_date_range_custom_business_month_end  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)rb   rA  z2020-11-25 15:00rN   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   )r8   r   rR   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   r   r   )r8   r   rd   r9   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  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   rR   )
r8   r   idx1idx2idx3r   idx4idx5idx6rf  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   )rb   rR   rQ   r   r   r   r   rp  )r8   r   r  rj  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/2017rc  r  )
2013-01-01r`  ra  r   r  r   r   r   rp  r8   r   r9   r   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   rp  r  s       r+   test_date_range_year_endz1TestDateRangeNonTickFreq.test_date_range_year_end0  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-2YErM   rR   rQ   r   )r  z
2009-12-31z
2007-12-31r   r   r   r   r   r   r   rR   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   rp  r  s       r+   &test_date_range_business_year_end_yearz?TestDateRangeNonTickFreq.test_date_range_business_year_end_yearC  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 )	Nri   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   rp  r   s       r+   test_date_range_bmsz,TestDateRangeNonTickFreq.test_date_range_bmsM  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   rM   rN   r   r/     r   r   r   r  r   r   SMSr  r   r   r   r   r   r   r   r   r8   r   datesr   r   s        r+    test_date_range_semi_month_beginz9TestDateRangeNonTickFreq.test_date_range_semi_month_beginc  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      rM   rN      r   r/  r  r   r   r   r  r   r   SMEr  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-1MONr   z
2011-01-03r   r   r   r   z
2011-02-07rp  )r8   r   r   r   r  rf  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-1rN   zWOM-1SATr   )z
2013-01-05z
2013-02-02z
2013-03-02z
2013-04-06r   r   r   rp  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-2MErM   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   rM   nearest)startingMonthweekday	variationr  r   r   z
2013-01-31z
2014-01-30r   r   r   )r   FY5253r   r   r   r   )r8   r   rR   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   rR   )r8   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-   c                     t          ddd|          }t          ddgd| dd          }t          j        ||           d S )	Nz2021-12-31 00:00:012023-10-31 00:00:00r`   r  z2022-12-31 00:00:01r   r   r   rp  r  s       r+   $test_date_range_partial_day_year_endz=TestDateRangeNonTickFreq.test_date_range_partial_day_year_end  sj    '%	
 
 
 "$9:---
 
 

 	c3'''''r-   c                     t          ddd|          }t          ddgd| dd	          }t          j        ||           d S )
Nr  z2021-10-31 00:00:00z-1YEr  z2022-12-31 00:00:00z2021-12-31 00:00:00r   r   r   rp  r  s       r+   /test_date_range_negative_freq_year_end_inboundszHTestDateRangeNonTickFreq.test_date_range_negative_freq_year_end_inbounds  sj    '%	
 
 
 "$9:---
 
 

 	c3'''''r-   c                     t          dd          }t          dd          }t          ||dd          }t          ddddd          }t          j        ||           d S )	Nz
1916-08-01zEurope/Oslor4   z
1916-12-01r_  T)rR   r  r  )r   r   r   r   )r8   rb   r   resr   s        r+   2test_date_range_tzaware_endpoints_accept_ambiguouszKTestDateRangeNonTickFreq.test_date_range_tzaware_endpoints_accept_ambiguous  sv    ,=999777$$???,Tmt
 
 
 	c3'''''r-   c                     d}t          d|          }t          d|          }t          ||dd          }t          ddd                              |d	          }t          j        ||           d S )
Nr  z2015-03-28 01:30r4   z2015-03-30 01:30rO   r  )rR   r  r   )r  )r   r   r  r   r   )r8   r5   rb   r   r   r   s         r+   4test_date_range_tzaware_endpoints_accept_nonexistentzMTestDateRangeNonTickFreq.test_date_range_tzaware_endpoints_accept_nonexistent  s    ,444*r222E3SoNNN  2
 
 

+bo+
6
6 	 	fh/////r-   N) rX   rY   rZ   r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  rB   r  r  r   QuarterBeginBQuarterEndWeekr  r  r  r  r  r#   r-   r+   ry  ry  x  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---.	
 & & &( ( (( ( (( ( (0 0 0 0 0r-   ry  c                   &    e Zd Zd Zd Zd Zd ZdS )TestDateRangeUnitInferencec                     t          d                              |          }t          d                              |          }t          ||d          }|j        |k    sJ d S )N
2025-11-25
2025-11-26rO   r   r   r   r   r   r8   r   rb   r   r   s        r+   ,test_date_range_unit_inference_matching_unitzGTestDateRangeUnitInference.test_date_range_unit_inference_matching_unit  se    ,''//55%%--d33#...x4r-   c                 0   t          d                              |          }t          d                              d          }t          ||d          }|j        |k    sJ t          ||                    d          d          }|j        dk    sJ d S )Nr  r  r   rO   r   r   r  r  s        r+   .test_date_range_unit_inference_mismatched_unitzITestDateRangeUnitInference.test_date_range_unit_inference_mismatched_unit$  s    ,''//55%%--c22#...x4D 1 1<<<x4r-   c                 0   t          d                              d          }t          d                              d          }t          ||d          }|j        dk    sJ t          ||                    d          d          }|j        dk    sJ d S )	Nr  r   r  r   	2000000usr   r   r   r  )r8   rb   r   r   s       r+   #test_date_range_unit_inference_tickz>TestDateRangeUnitInference.test_date_range_unit_inference_tick.  s    ,''//55%%--c22+666x4D 1 1DDDx4r-   c                    t          d                              d          }t          d                              d          }t          d          }t          |||          }|j        dk    sJ t          d	          }t          |||          }|j        d
k    sJ |t          d                              d          z   }t          d          }t          |||          }|j        dk    sJ d S )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   )r8   rb   r   r  r   end2s         r+   .test_date_range_unit_inference_dateoffset_freqzITestDateRangeUnitInference.test_date_range_unit_inference_dateoffset_freq8  s   /0088==-..66s;;i000#...x4a(((#...x4ya00088>>>Q'''3///x4r-   N)rX   rY   rZ   r  r  r  r	  r#   r-   r+   r  r    sP                                r-   r  )8r  r   r   r   r  numpyr   rB   pandas._libs.tslibsr   pandas._libs.tslibs.offsetsr   r   r	   r
   r   pandas.errorsr   r   pandas.util._test_decoratorsutil_test_decoratorsr[   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/   r^   r  r  r  r/  rd  ry  r  r#   r-   r+   <module>r     s            
 
			      ) ) ) ) ) )                     * ) ) ) ) ) ) ) )    	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	       J J J J J J       
 < ; ; ; ; ;XdAq!!88D!Q#7#7
s  83( 3( 3( 3( 3( 3( 3( 3(lz
A z
A z
A z
A z
A z
A z
A z
Az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K> K> K> K> K> K> K> K>\N N N N N N N Nb?9 ?9 ?9 ?9 ?9 ?9 ?9 ?9Da0 a0 a0 a0 a0 a0 a0 a0H+  +  +  +  +  +  +  +  +  + r-   