o
    $j                     @   s  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  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Z-Z.dd Z/G dd dZ0G dd dZ1G dd dZ2G dd dZ3G dd dZ4G dd dZ5G dd dZ6G d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                 C   s   | |d k}||d k}|dkr|r|dd }|S |dkr(|r(|dd }|S |dkr8|r8|r8|dd }|S |dkrF|rF|dd }|S |dkrT|rT|dd }|S |dkr`|dd }|S |dd }|S )	z8Helper to get expected range from a both inclusive ranger   leftNrightr   neitherboth )Zbegin_to_matchZend_to_match
both_rangeZinclusive_endpointsZ
left_matchZright_matchexpected_ranger!   r!   o/var/www/html/Deteccion_Ine/venv/lib/python3.10/site-packages/pandas/tests/indexes/datetimes/test_date_range.py_get_expected_range3   s,   
r%   c                   @   sB   e Zd Zdd Zdd Zdd Zejdd Zd	d
 Z	dd Z
dS )TestTimestampEquivDateRangec                 C   2   t dddd}|d }tddd}||ksJ d S N2009041520090519
US/Easterntzr   r   r   selfrngstamptsr!   r!   r$   test_date_range_timestamp_equivU      z;TestTimestampEquivDateRange.test_date_range_timestamp_equivc                 C   r'   )Nr)   r*   dateutil/US/Easternr,   r   r.   r/   r!   r!   r$   (test_date_range_timestamp_equiv_dateutil\   r5   zDTestTimestampEquivDateRange.test_date_range_timestamp_equiv_dateutilc                 C   s>   t ddtdd}|d }tdtdd}||ksJ d S r(   )r   pytzr   r   r/   r!   r!   r$   -test_date_range_timestamp_equiv_explicit_pytzc   s   zITestTimestampEquivDateRange.test_date_range_timestamp_equiv_explicit_pytzc                 C   sF   ddl m} tdd|dd}|d }td|dd}||ks!J d S )Nr   )dateutil_gettzr)   r*   r+   r,   )pandas._libs.tslibs.timezonesr:   r   r   )r0   Zgettzr1   r2   r3   r!   r!   r$   1test_date_range_timestamp_equiv_explicit_dateutilj   s
   zMTestTimestampEquivDateRange.test_date_range_timestamp_equiv_explicit_dateutilc                 C   s6   t ddd}t|dddd }t|}||ksJ d S )N        r   Dperiodsfreqr   )r   r   r   )r0   Zdatetime_instancetimestamp_instancer3   r!   r!   r$   6test_date_range_timestamp_equiv_from_datetime_instancet   s   zRTestTimestampEquivDateRange.test_date_range_timestamp_equiv_from_datetime_instancec                 C   s*   t ddddd }td}||ksJ d S )Nz
2014-03-05r   r@   rA   r   r.   )r0   rD   r3   r!   r!   r$   2test_date_range_timestamp_equiv_preserve_frequency}   s   zNTestTimestampEquivDateRange.test_date_range_timestamp_equiv_preserve_frequencyN)__name__
__module____qualname__r4   r7   r9   tdZskip_if_windowsr<   rE   rF   r!   r!   r!   r$   r&   O   s    
		r&   c                   @   s  e Zd Zdd Zdd Zdd Zejdg dd	d
 Z	dd Z
ejdg ddd Zdd Zdd Zdd Zdd Zdd Zejjejdddgdd Zd d! Zd"d# Zd$d% Zd&d' Zd(d) Zd*d+ Zejd,g d-ed.d/d/ed.d/d0d1ged2ed3d1ged2d1d4ed3d1d4d1ged2d1d4ed3d1d4d5ggd6d7 Zd8d9 Zd:d; Zd<d= Zd>d? Zd@dA Z dBdC Z!dDdE Z"dFdG Z#dHdI Z$ejdJeedKd0dLd1d4eedKd0dMd1d4geedNdOd/d1d4eedNdOdLd1d4ggdPdQ Z%dRdS Z&ejdg dTejdUd5d1gdVdW Z'ejdg dTdXdY Z(dZd[ Z)d\d] Z*d^d_ Z+d`da Z,dbdc Z-ddde Z.dfdg Z/dhdi Z0djdk Z1ejdg dldmdn Z2ejdg dodpdq Z3dwdsdtZ4dudv Z5d5S )xTestDateRangesc                 C   s"   t ddddd}|jdksJ d S )Nz
2000-01-01r   YETEST)startrB   rC   name)r   rO   )r0   idxr!   r!   r$   test_date_range_name   s   z#TestDateRanges.test_date_range_namec                 C   sF   d}t jt|d tdddd W d    d S 1 sw   Y  d S )Nz!periods must be a number, got foomatch1/1/2000Zfoor@   rN   rB   rC   )pytestraises	TypeErrorr   r0   msgr!   r!   r$   test_date_range_invalid_periods   s   "z.TestDateRanges.test_date_range_invalid_periodsc                 C   sZ   d}t jt|d tddd}W d    n1 sw   Y  tddd}t || d S )Nz:Non-integer 'periods' in pd.date_range, pd.timedelta_rangerR   rT   g      %@rB   
   )tmassert_produces_warningFutureWarningr   assert_index_equal)r0   rZ   r1   expr!   r!   r$   !test_date_range_fractional_period   s   z0TestDateRanges.test_date_range_fractional_periodzfreq,freq_depr))2MEZ2M)Z2SMEZ2SM)Z2BQEZ2BQ)Z2BYEZ2BYc                 C   s   d|dd   d}d|dd   d t dd|d}tjt|d	 t dd|d}W d    n1 s4w   Y  t|| d S )
N'r   $' is deprecated and will be removed !in a future version, please use '
' instead.rT   r?   rA   rR   )r   r^   r_   r`   ra   )r0   rC   	freq_deprZdepr_msgexpectedresultr!   r!   r$   /test_date_range_frequency_M_SM_BQ_BY_deprecated   s   z>TestDateRanges.test_date_range_frequency_M_SM_BQ_BY_deprecatedc                 C   sN   t ddd}tjtdd t|ddd W d    d S 1 s w   Y  d S )N  r   zpass as a string insteadrR   )r@         )endrC   rB   )r   rV   rW   rX   r   )r0   edater!   r!   r$   !test_date_range_tuple_freq_raises   s   "z0TestDateRanges.test_date_range_tuple_freq_raisesrC   )nsusmsminshr@   c                    s   t d|  tdt  d   |d}t fddtddD d	|d
}t|| td     |d}tg d	|d
}t|| t    |d}t  gd	|d
}t|| d S )N1z
1970-01-01r?   rN   rp   rC   c                       g | ]}|   qS r!   r!   ).0nrJ   r3   r!   r$   
<listcomp>       z8TestDateRanges.test_date_range_edges.<locals>.<listcomp>r   rn   M8[ns]dtyperC   )r   r   r   r   ranger^   ra   )r0   rC   rP   rb   r!   r~   r$   test_date_range_edges   s6   

z$TestDateRanges.test_date_range_edgesc                 C   sL   t d}tjtdd ttjd|d W d    d S 1 sw   Y  d S )Nr   Cannot generate range withrR      rp   rB   rC   )r   rV   rW   r   r   r   rv   )r0   rC   r!   r!   r$   )test_date_range_near_implementation_bound   s   "z8TestDateRanges.test_date_range_near_implementation_boundc                 C   s   d}t jt|d tdtjdd W d    n1 sw   Y  t jt|d ttjddd W d    d S 1 s<w   Y  d S )Nz$Neither `start` nor `end` can be NaTrR   
2016-01-01r@   rz   )rV   rW   
ValueErrorr   pdZNaTrY   r!   r!   r$   test_date_range_nat   s   "z"TestDateRanges.test_date_range_natc                 C   s   t d  tdddd}W d    n1 sw   Y  |d tdks&J t|dks.J d}tjt|d tdd	d
d W d    d S 1 sJw   Y  d S )N
1677-09-22iA r@   rU   r   r   rR   z
1969-05-04i Z30000DrA   )r^   r_   r   r   lenrV   rW   r   )r0   dtirZ   r!   r!   r$   'test_date_range_multiplication_overflow   s   "z6TestDateRanges.test_date_range_multiplication_overflowc                 C   sZ   t dddd}t |d t|dd}||sJ t |d t|dd}||s+J d S )	Nr   z
2262-04-11r@   rz   r   rU   r   r   )r   r   equals)r0   r   Zdti2Zdti3r!   r!   r$   *test_date_range_unsigned_overflow_handling   s
   z9TestDateRanges.test_date_range_unsigned_overflow_handlingc                 C      d}t jt|d tdddd W d    n1 sw   Y  t jt|d tdddd W d    d S 1 s:w   Y  d S )	Nr   rR   
1970-02-01i ' rx   rU   
1969-11-14r   rV   rW   r   r   rY   r!   r!   r$   .test_date_range_int64_overflow_non_recoverable   s   "z=TestDateRanges.test_date_range_int64_overflow_non_recoverablez
s_ts, e_ts)z
2262-02-23r   )r   z
1677-10-22c                 C   s`   t |}t |}t||dd}|d |ksJ |d |ksJ t|t|dd}t|| d S )Nz-1hrz   r   r   r   )r   r   r   r^   ra   )r0   Zs_tsZe_tsrN   rp   rj   r   r!   r!   r$   >test_date_range_int64_overflow_stride_endpoint_different_signs  s   	zMTestDateRanges.test_date_range_int64_overflow_stride_endpoint_different_signsc                 C   r   )	NzCannot generate rangerR   r   i r@   rA   z
1763-10-12r   r   rY   r!   r!   r$   test_date_range_out_of_bounds  s   "z,TestDateRanges.test_date_range_out_of_boundsc                 C   s"   t dddd}t|dksJ d S )Nz1/1/2000 00:00z1/1/2000 00:18Z5minrC   r?   )r   r   r0   r1   r!   r!   r$   test_date_range_gen_error"  s   z(TestDateRanges.test_date_range_gen_errorc                    s   t  d}t|ddd}td t fddt|D d d	}t|| td
|ddd}tdd}|D ]
}| |ksBJ q8d S )N2   FZ2D)rB   	normalizerC   r   c                    r{   r!   r!   r|   ioffsetZsnapr!   r$   r   .  r   z<TestDateRanges.test_date_range_normalize.<locals>.<listcomp>r   r   z1/1/2000 08:15B      )	r   todayr   r   r   r   r^   ra   r   )r0   r}   r1   rj   Zthe_timevalr!   r   r$   test_date_range_normalize&  s   
z(TestDateRanges.test_date_range_normalizec                 C   sl   t dddddd}t dddddd}d}tjt|d	 t||d
dd W d    d S 1 s/w   Y  d S )N  r   rn   r>   (   r   	   VOf the four parameters: start, end, periods, and freq, exactly three must be specifiedrR   r]   rw   rA   )r   rV   rW   r   r   r0   rN   rp   rZ   r!   r!   r$   #test_date_range_ambiguous_arguments8  s   "z2TestDateRanges.test_date_range_ambiguous_argumentsc                 C   s   t ddd|d}tg dd| dd d}t|| t d	d
dd|d}ttdddtdddtdddg|}t|| d S )Nz
2018-04-24z
2018-04-27r>   rB   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)r-   rB   r   z2018-04-01 01:00:00+1100r,   z2018-04-01 02:00:00+1000z2018-04-01 04:00:00+1000)r   r   r^   ra   r   as_unitr0   r   rk   rj   r!   r!   r$   #test_date_range_convenience_periodsD  s.   



z2TestDateRanges.test_date_range_convenience_periodsc                 C   s.  t dddd}t| }t| gj}t|gj}tjt	dd ||k W d    n1 s3w   Y  tjt	dd ||k W d    n1 sNw   Y  t
g d}||k}t|| tg ddd	}|d |d d df k}t|| tg d
g dg dg}||k}t|| d S )N
2011-01-01r>   r+   rB   r-   zUnable to coerce to SeriesrR   )TTTr   rO   )TFF)FTF)FFT)r   r   Zto_framenparrayZto_listTrV   rW   r   r   r^   Zassert_frame_equalZassert_series_equalassert_numpy_array_equal)r0   r1   ZdfZarrZarr2rj   resultsr!   r!   r$    test_date_range_index_comparison`  s*   

z/TestDateRanges.test_date_range_index_comparisonzstart,end,result_tz)2018010120180103r+   i  r   r>   r+   r   r   r,   Nc                 C   s0   t ||d|d}t ddddd}t|| d S )Nr>   r   r   r@   r+   rB   rC   r-   r   r^   ra   )r0   rN   rp   Z	result_tzrk   rj   r!   r!   r$   test_date_range_linspacing_tz|  s   z,TestDateRanges.test_date_range_linspacing_tzc                 C   s:   d}d}t ||dd}t ||tddd}t|| d S )N
2020-01-01z
2020-01-113Dr   r>   )days)r   r   r^   ra   )r0   rN   rp   rng1rng2r!   r!   r$   test_date_range_timedelta  s
   z(TestDateRanges.test_date_range_timedeltac                 C   s  d}t jt|d tdd W d    n1 sw   Y  t jt|d tdd W d    n1 s5w   Y  t jt|d tdd W d    n1 sQw   Y  t jt|d tddd	 W d    n1 snw   Y  t jt|d tddd
 W d    n1 sw   Y  t jt|d tddd W d    n1 sw   Y  t jt|d t  W d    d S 1 sw   Y  d S )Nr   rR   rT   )rN   )rp   r]   r\   rx   )rN   rC   )rp   rC   rA   rV   rW   r   r   rY   r!   r!   r$   test_range_misspecified  s.   "z&TestDateRanges.test_range_misspecifiedc                 C   s&   t tdddd}t|dksJ d S )Nz1960-04-01 00:00:00L   zQS-JANrA   )r   r   r   )r0   rk   r!   r!   r$   test_compat_replace  s   z"TestDateRanges.test_compat_replacec                 C   sb   t jdd}d}tjt|d ttdddtddd|d W d    d S 1 s*w   Y  d S )	Nrn   )minutez4Offset <DateOffset: minute=5> did not increment daterR   r         r   )r   r	   rV   rW   r   r   r   )r0   r   rZ   r!   r!   r$   test_catch_infinite_loop  s
    "z'TestDateRanges.test_catch_infinite_loopc                 C   sj   t djddd}t djddd}t ddd||g}t|dd	|}td
ddd|d}t|| d S )Nz2010-11-07 01:00:00
US/PacificT)	ambiguousFz2010-11-07 00:00:00r,   rx   r   z	2010-11-7r>   )rN   rB   rC   r-   r   )r   Ztz_localizer   r   r   r^   ra   )r0   r   Zpre_dstZpst_dstZexpect_datarj   rk   r!   r!   r$   test_construct_over_dst  s   

z&TestDateRanges.test_construct_over_dstc                 C   sD   t ddd|d}ttdtdtdgdd|}t|| d S )Nz2013-01-01 00:00:00+09:00z2013/01/01 02:00:00+09:00rx   rC   r   z2013-01-01 01:00:00+09:00z2013-01-01 02:00:00+09:00r   )r   r   r   r   r^   ra   r   r!   r!   r$   5test_construct_with_different_start_end_string_format  s    zDTestDateRanges.test_construct_with_different_start_end_string_formatc                 C   sJ   d}t jt|d tddtdd W d    d S 1 sw   Y  d S )Nz.Offset <0 \* MonthEnds> did not increment daterR   rT   z1/1/2001r   r   )rV   rW   r   r   r
   rY   r!   r!   r$   test_error_with_zero_monthends  s   "z-TestDateRanges.test_error_with_zero_monthendsc                    s`   t dd tdd |d}tdddt fdd	td
D d| d d}t|| d S )Nr>   )months2011-1-1z	2012-1-31r   r   r   c                    r{   r!   r!   r   r   rN   r!   r$   r     r   z1TestDateRanges.test_range_bug.<locals>.<listcomp>rn   r   r   r   )r	   r   r   r   r   r^   ra   r   r!   r   r$   test_range_bug  s   
"zTestDateRanges.test_range_bugc                 C   s   t d}|tddd}|tddd}t|dd}|jj|jks%J |d |ks-J |d |ks5J t|dd}|jj|jksDJ |d |ksLJ |d |ksTJ t||d	}|jj|jkscJ |d |kskJ |d |kssJ d S )
Nr+   r   r   r>   rN   rB   r   r   rp   rB   rN   rp   )r   localizer   r   r-   zoner0   r-   rN   rp   drr!   r!   r$   test_range_tz_pytz  s   z!TestDateRanges.test_range_tz_pytzz
start, endr=      r   i  r   c                 C   s   t ||dd}|d |ksJ |d |ksJ t|jdks!J t ||ddd}|d |ks1J |d |ks9J t|jdksCJ t |jd d|jd dddd}|d |ks[J |d |kscJ t|jdksmJ d S )Nr@   r   r   r   r+   rC   r-   tzinfo)r   r   allhourreplace)r0   rN   rp   r   r!   r!   r$   test_range_tz_dst_straddle_pytz  s"   

z.TestDateRanges.test_range_tz_dst_straddle_pytzc                    s   ddl m   fdd}tddd|dd}tddd	|dd}t|d	d
}|j|dks/J |d |ks7J |d |ks?J t|d	d}|j|dksNJ |d |ksVJ |d |ks^J t||d}|j|dksmJ |d |ksuJ |d |ks}J d S )Nr   maybe_get_tzc                    s    d|  S )Nz	dateutil/r!   )xr   r!   r$   <lambda>6  s    z7TestDateRanges.test_range_tz_dateutil.<locals>.<lambda>r   r   r+   r   r>   r   r   r   r   )r;   r   r   r   r-   r   r!   r   r$   test_range_tz_dateutil0  s    z%TestDateRanges.test_range_tz_dateutil)Z1Dr   rd   Z7WZ3hrL   r-   c           	      C   sV   t d|d}t d|d}t||||d}t||d|d}t||||}t|| d S )N2011/1/1r,   2014/1/1)	inclusiverC   r    r   r   r%   r^   ra   )	r0   rC   r-   inclusive_endpoints_fixturebeginrp   result_ranger"   r#   r!   r!   r$   test_range_closedJ  s   z TestDateRanges.test_range_closedc           
      C   sj   t d}t d}t ddd}t ddd}t||||dd}t||d|dd}t||||}	t|	| d S )Nr   r   r+   r,   )r   rC   r-   r    r   )
r0   rC   r   r   rp   ZbegintzZendtzr   r"   r#   r!   r!   r$   1test_range_with_tz_closed_with_tz_aware_start_end\  s*   
z@TestDateRanges.test_range_with_tz_closed_with_tz_aware_start_endc           
      C   s   t ddd|d}t ddd|d}t ddd|d}t ddd|d}|}|}|}|dkr1|dd  }n|d	kr<|d d
 }n|dkrL|dd  }|d d
 }|dd
 }	t|| t|| t|| t||	 d S )Nz
2015-09-12z
2015-12-01zQS-MARrC   r   z
2015-09-01z
2015-09-11r   r   r   r   r    r   )
r0   r   Zright_boundaryZleft_boundaryZboth_boundaryZneither_boundaryZexpected_rightZexpected_leftZexpected_bothZexpected_neitherr!   r!   r$   test_range_closed_boundaryx  sN   z)TestDateRanges.test_range_closed_boundaryc                 C   s   |}t ddd|d}t ddd|d}t|| t ddd|d}t dd	d|d}t|| t dd
d|d}t ddd|d}t|| t dd
d|d}	t ddd|d}
t|	|
 d S )NZ2014Z2015MEr   z
2014-01-31
2014-12-31ZMS
2014-01-01
2015-01-01Z2020rL   z
2019-12-31YSr   r   )r0   Ztz_naive_fixturer-   r   	expected1r   	expected2rng3Z	expected3Zrng4	expected4r!   r!   r$   test_date_range_years_only  s   z)TestDateRanges.test_date_range_years_onlyc                 C   s`   t dddd}t dddd}tddgd	dd d
}tddgd	dd d
}t|| t|| d S )Nz2005-01-12 10:00z2005-01-12 16:00Z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   rC   r-   z2005-01-13 10:00:00z2005-01-13 15:45:00r   r   r^   ra   )r0   Zresult_1Zresult_2Z
expected_1Z
expected_2r!   r!   r$   test_freq_divides_end_in_nanos  s    z-TestDateRanges.test_freq_divides_end_in_nanosc                 C   sB   t ddtdd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   hoursrA   r   r   r   r   rn   )r   r	   r   r   r   r!   r!   r$   test_cached_range_bug  s   z$TestDateRanges.test_cached_range_bugc                 C   s.   t ddd}t|ddd}t|dksJ d S )N20130220 10:00r+   r,   r   r   )r   r   r   )r0   rN   rk   r!   r!   r$   test_timezone_comparison_bug  s   z+TestDateRanges.test_timezone_comparison_bugc                 C   sR   t ddd}d}tjt|d t|ddd W d    d S 1 s"w   Y  d S )	Nr  r+   r,   z0Inferred time zone not equal to passed time zonerR   r   zEurope/Berlinr   )r   rV   rW   AssertionErrorr   )r0   rN   rZ   r!   r!   r$   test_timezone_comparison_assert  s
   "z.TestDateRanges.test_timezone_comparison_assertc                 C   s>   |}t ddd|d}t ddd|dd d d }t|| d S )Nz
2011-06-01r   z-1MS)rN   rp   rC   r-   Z1MS)rp   rN   rC   r-   r   r   )r0   Ztz_aware_fixturer-   rk   rj   r!   r!   r$   1test_negative_non_tick_frequency_descending_dates  s   z@TestDateRanges.test_negative_non_tick_frequency_descending_datesc                 C   sb   d}d}t ||d|d}t ||ddd}|dkr|dd }n
|dv r)|d d  }t|| d S )	Nz
2021-09-02r@   )rN   rp   rC   r   r    r   r   r   )r   r   r    r   )r0   r   rN   rp   rk   r"   rj   r!   r!   r$    test_range_where_start_equal_end  s   z/TestDateRanges.test_range_where_start_equal_endc                 C   s>   t dddd}tdd|dd}tg ddd	}t|| d S )
Nr]   9   r>   )r  r   nanosecondsz1970-01-01 00:00:00a)rp   rB   rC   rO   )
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^   ra   )r0   rC   rk   rj   r!   r!   r$   .test_freq_dateoffset_with_relateivedelta_nanos  s   z=TestDateRanges.test_freq_dateoffset_with_relateivedelta_nanos))rx   H)Z2minZ2T)Z1sZ1S)Z2msZ2L)Z1usZ1U)Z2nsZ2Nc                 C      t jd|ddd }t jd|ddd }d| d}d| d tdd	|d
}tjt|d tdd	|d
}W d    n1 s@w   Y  t|| d S )N[0-9]*r   maxsplitre   z9' is deprecated and will be removed in a future version, zplease use 'z	' insteadrT   r   rA   rR   resplitr   r^   r_   r`   ra   r0   rC   ri   Zfreq_msgZfreq_depr_msgrZ   rj   rk   r!   r!   r$   'test_frequencies_H_T_S_L_U_N_deprecated  s   
z6TestDateRanges.test_frequencies_H_T_S_L_U_N_deprecated))Z200YEZ200A)rL   Y)z2YE-MAYz2A-MAY)zYE-MAYzY-MAYc                 C   r  )Nr  r   r  re   rf   rg   rh   rT   r   rA   rR   r  r   r!   r!   r$   'test_frequencies_A_deprecated_Y_renamed$  s   z6TestDateRanges.test_frequencies_A_deprecated_Y_renamedreturnc                 C   s`   d}t jt|d tdddd}W d    n1 sw   Y  tddgd	d
}t || d S )NzS'm' is deprecated and will be removed in a future version, please use 'ME' instead.rR   z
2010-01-01r   mrA   z
2010-01-31z
2010-02-28r   r   )r^   r_   r`   r   r   ra   )r0   rZ   rk   rj   r!   r!   r$   -test_to_offset_with_lowercase_deprecated_freq9  s   z<TestDateRanges.test_to_offset_with_lowercase_deprecated_freqc                 C   sX   t ddd}t|ddd}t|dksJ |d |dt   ks#J |jdks*J d S )	N  r      Z1Bro   )rN   rC   rB   r   r   )r   r   r   r   r   rC   )r0   sdaterP   r!   r!   r$   test_date_range_bdayD  s
   z#TestDateRanges.test_date_range_bday)r$  N)6rG   rH   rI   rQ   r[   rc   rV   markparametrizerl   rr   r   r   r   r   r   r   Zslowr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r
  r  r  r  r  r  r  r!  r#  r&  r*  r!   r!   r!   r$   rK      s    
	

#






.	

	
rK   c                   @   s   e Zd ZdZdd Zejdddgdd Zejdddgd	d
 Z	dd Z
dd Zejdddgdd Zejdddgdd Zejdg dg dg dg ddedddggdd  Zd!S )"TestDateRangeTZz#Tests for date_range with timezonesc                 C   s   t ddddd}|j d S )Nz
2012-01-01z
2012-01-10r@   ZHongkongr   )r   r   )r0   r   r!   r!   r$   test_hongkong_tz_convertO  s   
z(TestDateRangeTZ.test_hongkong_tz_converttzstrr+   r6   c                 C   sZ   t ddddd}|jdk sJ t dd|d	}|j}tjdgd d
d}t|| d S )Nz03/06/2012 00:00   zW-FRIr+   r   r   z
2012-11-02r]   r   Zint32r   )r   r   r   r   Indexr^   ra   )r0   r/  r   rk   rj   r!   r!   r$   #test_date_range_span_dst_transitionV  s   z3TestDateRangeTZ.test_date_range_span_dst_transitionc                 C   s6   t |}tdd|d}tdd|d}t|| d S )NrT   r]   r   )r   r   r   r^   ra   )r0   r/  r-   rk   rj   r!   r!   r$   %test_date_range_timezone_str_argumentd  s   
z5TestDateRangeTZ.test_date_range_timezone_str_argumentc              	   C   s   t dd}tdddddd|d}tdd	dddd|d}t||d
}||jks(J t|t||d}t|| tdd}|j|jk sFJ d S )Ni  z+07:00  r>   r   rn   r   r   r   r   r   z3/11/2012 05:00:00+07:00z6/11/2012 05:00:00+07:00)	r   r   r   r-   r   r^   ra   valuesr   )r0   offrN   rp   r1   r   r  r!   r!   r$   test_date_range_with_fixed_tzl  s   

z-TestDateRangeTZ.test_date_range_with_fixed_tzc              	   C   sj   t }tdddddd|d}tdddddd|d}t||d}||jks%J t||g}||jks3J d S )	Nr5  r>   r   rn   r   r   r   r   )r   r   r   r-   r   r2  )r0   r7  rN   rp   r1   rP   r!   r!   r$   'test_date_range_with_fixedoffset_nonamey  s   z7TestDateRangeTZ.test_date_range_with_fixedoffset_nonamec                 C   s>   t d|d}|jdksJ tddd|d}||d ksJ d S )	Nz3/11/2012 05:00r,   rn   z3/11/2012 04:00r]   rx   r   r   )r   r   r   )r0   r/  r2   r1   r!   r!   r$   test_date_range_with_tz  s   z'TestDateRangeTZ.test_date_range_with_tzr-   Europe/Londonzdateutil/Europe/Londonc                 C   s   t jtjdd tddddd W d    n1 sw   Y  tddd|dd	}|d
 td|dks5J |d td|dksAJ d S )NzCannot infer dst timerR   z2013-10-26 23:00z2013-10-27 01:00r;  rx   r-   rC   Zinfer)rC   r-   r   r   r,   r   z2013-10-27 01:00:00+0000)rV   rW   r8   ZAmbiguousTimeErrorr   r   )r0   r-   timesr!   r!   r$   "test_date_range_ambiguous_endpoint  s   
z2TestDateRangeTZ.test_date_range_ambiguous_endpointztz, option, expected)r   shift_forward2019-03-10 03:00)dateutil/US/Pacificr?  r@  )r   shift_backward2019-03-10 01:00)rA  rB  rC  r   r   r  r@  c                 C   sn   t jtjdd tddddd W d    n1 sw   Y  tddd||d}|d	 t||d
ks5J d S )Nz2019-03-10 02:00:00rR   z2019-03-10 00:00z2019-03-10 02:00r   rx   r<  )rC   r-   Znonexistentr   r,   )rV   rW   r8   ZNonExistentTimeErrorr   r   )r0   r-   optionrj   r=  r!   r!   r$   $test_date_range_nonexistent_endpoint  s   
z4TestDateRangeTZ.test_date_range_nonexistent_endpointN)rG   rH   rI   __doc__r.  rV   r+  r,  r3  r4  r8  r9  r:  r>  r   rE  r!   r!   r!   r$   r-  L  s.    





r-  c                   @   s   e Zd Zejdde fde fgdd Zdd Z	dd	 Z
d
d Zdd Zd\ZZd\ZZejdeeedeefeeeeedfeeedeeedfeeedeeedfgdd ZdS )TestGenRangeGenerationfreqstr,offsetr   Cc                 C   s<   t tttd |dd}t tttd |dd}||ksJ d S )Nrs   )rB   r   r   )listgenerate_rangeSTARTEND)r0   freqstrr   r   r   r!   r!   r$   test_generate  s   z$TestGenRangeGeneration.test_generatec                 C   sH   t ttdddd dt dd}tdddtdddg}||ks"J d S )Nr   r>   r(  r   rs   rN   rp   rB   r   r      rJ  rK  r   r   r0   r1   rj   r!   r!   r$   test_1  s   
	zTestGenRangeGeneration.test_1c                 C   sZ   t ttdddtdddd t dd}tdddtdddtdddg}||ks+J d S )N  r   r>   rs   rP  r   rR  rS  r!   r!   r$   test_2  s   

"	zTestGenRangeGeneration.test_2c                 C   s<   t ttdddtdddd t dd}g }||ksJ d S )NrU  r   rn   r   rs   rP  rR  rS  r!   r!   r$   test_3  s   

	zTestGenRangeGeneration.test_3c                 C   sh   t dddd}t dddd}g d}g d}t|d	d
d d}t|d	dd d}t|| t|| d S )Nz2015-04-15 00:00:03z2016-04-22 00:00:00ZQErz   z2015-06-22 00:00:04W)z2015-06-30 00:00:03z2015-09-30 00:00:03z2015-12-31 00:00:03z2016-03-31 00:00:03)
z2015-04-19 00:00:03z2015-04-26 00:00:03z2015-05-03 00:00:03z2015-05-10 00:00:03z2015-05-17 00:00:03z2015-05-24 00:00:03z2015-05-31 00:00:03z2015-06-07 00:00:03z2015-06-14 00:00:03z2015-06-21 00:00:03r  zQE-DECr  W-SUNr	  )r0   Zresult1result2Zexpected1_listZexpected2_listr  r  r!   r!   r$    test_precision_finer_than_offset  s    z7TestGenRangeGeneration.test_precision_finer_than_offset)
2017-01-01r\  )r+   r;  z	start,endr,   c                 C   s   d}t jt|d t|| W d    n1 sw   Y  t jt|d t||t d W d    d S 1 s9w   Y  d S )Nz>Start and end cannot both be tz-aware with different timezonesrR   r   )rV   rW   rX   r   r   r   r!   r!   r$   test_mismatching_tz_raises_err  s   "z5TestGenRangeGeneration.test_mismatching_tz_raises_errN)rG   rH   rI   rV   r+  r,  r   r   rO  rT  rV  rW  r[  Zdt1Zdt2Ztz1Ztz2r   r]  r!   r!   r!   r$   rG    s.    
#	rG  c                   @   sV   e Zd Zdd Zdd Zdd Zdd Zej	d	g d
dd Z
dd Zdd ZdS )TestBusinessDateRangec                 C   s   t ttt d t tdt d t tdt d d}tjt|d tddd	 W d    n1 s2w   Y  tjt|d t ddd	 W d    n1 sOw   Y  d
}tjt|d t ttdd d W d    d S 1 sqw   Y  d S )Nr   ro   rA   r   zperiods must be a number, got BrR   r   2012-1-1r   z>freq must be specified for bdate_range; use date_range insteadr]   )r   rL  rM  r   rV   rW   rX   r   rY   r!   r!   r$   test_constructor!  s   "z&TestBusinessDateRange.test_constructorc                 C   sZ   t ddd}t|dd}|dt   }t|dksJ |d |ks#J |d |ks+J d S )	Nr   rn      ro   r      r   r   )r   r   r   r   r0   rp   r   Z	firstDater!   r!   r$   	test_misc1  s   zTestBusinessDateRange.test_miscc                 C   s   d}d}t jt|d t| W d    n1 sw   Y  t jt|d t|dd W d    n1 s7w   Y  t jt|d t|dd W d    n1 sTw   Y  t jt|d t|| W d    d S 1 sqw   Y  d S )Nz
2007/100/1z;Unknown datetime string format, unable to parse: 2007/100/1rR   r]   r   r   )rV   rW   r   r   r   )r0   Zbadly_formed_daterZ   r!   r!   r$   test_date_parse_failure:  s   
"z-TestBusinessDateRange.test_date_parse_failurec                 C   sB   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   _datarC   r   union
isinstancer   r0   r   r   rk   r!   r!   r$   test_daterange_bug_456J  s
   


z,TestBusinessDateRange.test_daterange_bug_456r   )r   r   r   r    c                 C   s>   d}d}t ||d|d}d}d}t ||dd}t|| d S )	Nz
2018-07-21z
2018-07-29r   r   z
2018-07-23z
2018-07-27r@   r   r   )r0   r   rN   rp   rk   Z
bday_startZbday_endrj   r!   r!   r$   test_bdays_and_open_boundariesS  s   z4TestBusinessDateRange.test_bdays_and_open_boundariesc                 C   sD   t jd }t|d ddd}t|gddd}t|| d S )Nr@   r   r   r   r   rs   )	r   maxfloorto_pydatetimer   r   r   r^   ra   )r0   rN   r1   rj   r!   r!   r$   test_bday_near_overflow`  s   z-TestBusinessDateRange.test_bday_near_overflowc                 C   sV   d}t jd }tjt|d t|ddd W d    d S 1 s$w   Y  d S )Nz"Out of bounds nanosecond timestampr@   rR   r   r   rA   )r   rn  ro  rp  rV   rW   r   r   )r0   rZ   rN   r!   r!   r$   test_bday_overflow_errorg  s
   "z.TestBusinessDateRange.test_bday_overflow_errorN)rG   rH   rI   r`  rd  re  rl  rV   r+  r,  rm  rq  rr  r!   r!   r!   r$   r^     s    		
r^  c                	   @   s   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd Zdd Z	dd Z
ejddd eD dd Zejdg ddd Zejddddgfdddgfddddgfgd d! Zd"S )#TestCustomDateRangec                 C   s   t ttt d t tdt d t tdt d d}tjt|d tddd	 W d    n1 s2w   Y  tjt|d t ddd	 W d    d S 1 sPw   Y  d S )
Nr   ro   rA   r   zperiods must be a number, got CrR   r   r_  rI  )r   rL  rM  r   rV   rW   rX   r   rY   r!   r!   r$   r`  p  s   "z$TestCustomDateRange.test_constructorc                 C   s\   t ddd}t|ddd}|dt   }t|dksJ |d |ks$J |d	 |ks,J d S )
Nr   rn   ra  ro   rI  r   rb  r   r   )r   r   r   r   rc  r!   r!   r$   rd  |  s   zTestCustomDateRange.test_miscc                 C   sJ   t dddd}t dddd}|jjt ksJ ||}t|ts#J d S )Nrf  rI  r   rg  )r   rh  rC   r   ri  rj  r   rk  r!   r!   r$   rl    s
   
z*TestCustomDateRange.test_daterange_bug_456c                 C   sJ   t ddd|d}tg dd| ddd}t|| |j|jks#J d S )	N
2013-05-01r>   rI  rB   rC   r   )rt  
2013-05-02
2013-05-03r   r   r   )r   r   r^   ra   rC   r   r!   r!   r$   test_cdaterange  s   z#TestCustomDateRange.test_cdaterangec                 C   s   t dddd|d}tg dd| d|jd	}t|| |j|jks%J d
}tjt|d t dddd W d    d S 1 sAw   Y  d S )Nrt  r>   rI  Sun Mon Tue Wed Thu)rB   rC   weekmaskr   )rt  rv  
2013-05-05r   r   r   [a custom frequency string is required when holidays or weekmask are passed, got frequency BrR   )rB   rz  r   r   rC   r^   ra   rV   rW   r   r0   r   rk   rj   rZ   r!   r!   r$   test_cdaterange_weekmask  s   

"z,TestCustomDateRange.test_cdaterange_weekmaskc                 C   s   t ddddg|d}tg dd| d|jd}t|| |j|jks&J d	}tjt|d
 t dddgd W d    d S 1 sCw   Y  d S )Nrt  r>   rI  )rB   rC   holidaysr   )rv  rw  
2013-05-06r   r   r   r|  rR   )rB   r  r}  r~  r!   r!   r$   test_cdaterange_holidays  s   
"z,TestCustomDateRange.test_cdaterange_holidaysc                 C   sR   t dddddg|d}tg dd| d|jd	}t|| |j|jks'J d S )
Nrt  r>   rI  ry  )rB   rC   rz  r  r   )rv  r{  r  r   r   r   )r   r   rC   r^   ra   r   r!   r!   r$   %test_cdaterange_weekmask_and_holidays  s   
z9TestCustomDateRange.test_cdaterange_weekmask_and_holidaysc                 C   sJ   d}t jt|d tddddgd W d    d S 1 sw   Y  d S )Nr|  rR   rt  r>   ry  )rB   rz  r  )rV   rW   r   r   rY   r!   r!   r$   2test_cdaterange_holidays_weekmask_requires_freqstr  s   "zFTestCustomDateRange.test_cdaterange_holidays_weekmask_requires_freqstrrC   c                 C   s   g | ]	}| d r|qS )rI  )
startswith)r|   rC   r!   r!   r$   r     s    zTestCustomDateRange.<listcomp>c                 C   sh   t tt|ddgd |d }d| }tjt|d t tt|d W d    d S 1 s-w   Y  d S )NzMon Wed Friz
2009-03-14)rC   rz  r  ZFOOz!invalid custom frequency string: rR   r   )r   rL  rM  rV   rW   r   )r0   rC   Zbad_freqrZ   r!   r!   r$   test_all_custom_freq  s   
"z(TestCustomDateRange.test_all_custom_freq	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                 C   s6   |\}}t ||ddd}t|gdd}t|| d S )Nr   r   )rN   rp   rB   r   zM8[ns, UTC]r1  r	  )r0   r  rN   rp   rk   rj   r!   r!   r$   &test_range_with_millisecond_resolution  s   
z:TestCustomDateRange.test_range_with_millisecond_resolutionz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                 C   s,   t ||dd}t|d}t|| d S )NrI  rU   rs   )r   r   r   r^   ra   )r0   rN   Zperiodrj   rk   r!   r!   r$   .test_range_with_timezone_and_custombusinessday  s   zBTestCustomDateRange.test_range_with_timezone_and_custombusinessdayN)rG   rH   rI   r`  rd  rl  rx  r  r  r  r  rV   r+  r,  r   r  r  r  r!   r!   r!   r$   rs  o  s:    		



rs  c                   @   s4   e Zd Zdd Zdd Zdd Zdd Zd	d
 ZdS )TestDateRangeNonNanoc                 C   H   d}t jt|d tddddd W d    d S 1 sw   Y  d S )Nz+'unit' must be one of 's', 'ms', 'us', 'ns'rR   r   z
2016-03-04r>   rx   r   r   rY   r!   r!   r$   test_date_range_reso_validation  s   "z4TestDateRangeNonNano.test_date_range_reso_validationc                 C   r  )Nz)Use a lower freq or a higher unit insteadrR   r   z
2016-01-02rs   ru   r   r   rY   r!   r!   r$   %test_date_range_freq_higher_than_reso  s   "z:TestDateRangeNonNano.test_date_range_freq_higher_than_resoc                 C   s   t ddddd}tjddtjd}t|ddd	}t|| t ddd
d
d}tjddtjd}t|dd
d	}t|| t ddddd}tjddtjd}t|ddd	}t|| d S )Nr   z2016-01-01 00:00:01ru   r   l    \tGl   _tGr1  zM8[ms]r   rt   l    `g ) l   A"g ) M8[us]z2016-01-01 00:00:00.001rs   l     ^cQ)! l   AB|cQ)! r   )r   r   arangeint64r   viewr^   ra   )r0   r   r1   rj   r!   r!   r$   !test_date_range_freq_matches_reso  s   z6TestDateRangeNonNano.test_date_range_freq_matches_resoc                 C   s   t d}t d}tjtdd t||ddd W d    n1 s"w   Y  t||dd	d}tj|d	j|d	jgtj	d
}t
|d}t|| d S )Nz2022-10-19 11:50:44.719781z2022-10-19 11:50:47.066458zCannot losslessly convert unitsrR   r>   rw   r   r   rt   r1  r  )r   rV   rW   r   r   r   r   r   _valuer  r   r  r^   ra   )r0   rN   rp   r   r1   rj   r!   r!   r$   )test_date_range_freq_lower_than_endpoints-  s   z>TestDateRangeNonNano.test_date_range_freq_lower_than_endpointsc                 C   s   t d}t d}t||ddd}|jdksJ |jdks J t |dd|d ddd	d}t	|
 | d S )
Nz
1066-10-14z
2305-07-13r@   rw   r   zM8[s]i8r   iQ )r   Z
datetime64r   rC   r   r  Zastyper  r^   r   Zto_numpy)r0   rN   rp   r   rb   r!   r!   r$   test_date_range_non_nano>  s   

z-TestDateRangeNonNano.test_date_range_non_nanoN)rG   rH   rI   r  r  r  r  r  r!   r!   r!   r$   r    s    r  c                	   @   s   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd Zdd Z	dd Z
dd Zdd Zdd Zdd Zdd Zdd Zdd Zdd  Zd!d" Zejd#d$ejd%d&fd'ejd(d&fd)ejd*d+fgd,d- Zd.S )/TestDateRangeNonTickFreqc                    f   t  }tj|d tdd |d}t fdd|D sJ tg dd| d	 d
}t|| d S )Ncalendar2012010120130101rN   rp   rC   r   c                 3       | ]}  |V  qd S NZis_on_offsetr|   r   r   r!   r$   	<genexpr>V      zWTestDateRangeNonTickFreq.test_date_range_custom_business_month_begin.<locals>.<genexpr>)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   ZCBMonthBeginr   r   r   r^   ra   r0   r   Zhcalr   rj   r!   r   r$   +test_date_range_custom_business_month_beginR     
zDTestDateRangeNonTickFreq.test_date_range_custom_business_month_beginc                    r  )Nr  r  r  r  c                 3   r  r  r  r  r   r!   r$   r  p  r  zUTestDateRangeNonTickFreq.test_date_range_custom_business_month_end.<locals>.<genexpr>)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   Z
CBMonthEndr   r   r   r^   ra   r  r!   r   r$   )test_date_range_custom_business_month_endl  r  zBTestDateRangeNonTickFreq.test_date_range_custom_business_month_endc                 C   sJ   t jddgd}tdd||d}tg dd| d	|d
}t|| d S )Nz15:00z
2020-11-26)rN   r  z2020-11-25 15:00r?   rN   rB   rC   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   ZCustomBusinessHourr   r   r^   ra   )r0   r   rC   rk   rj   r!   r!   r$   $test_date_range_with_custom_holidays  s   

z=TestDateRangeNonTickFreq.test_date_range_with_custom_holidaysc                 C   s   t g dd| ddd}tddd|d}t|| t dd	gd| ddd}tdd	d|d}t|| t g d
d| ddd}tddd|d}t|| 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^   ra   )r0   r   rP   r1   r!   r!   r$   test_date_range_businesshour  s&   


z5TestDateRangeNonTickFreq.test_date_range_businesshourc           
      C   s   t ddd|d}t ddd|d}t ddd|d}tg dd	| d
dd}t|| t|| t|| t ddd|d}t ddd|d}t ddd|d}|tdd| }	d|	_t||	 t||	 t||	 d S )Nr  r  r  r  r   r  )rp   rB   rC   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^   ra   r   r   rC   )
r0   r   idx1idx2Zidx3rj   idx4Zidx5Zidx6r  r!   r!   r$   test_date_range_business_hour2  s.   
z7TestDateRangeNonTickFreq.test_date_range_business_hour2c                 C   s8   t ddd|d}tdgd| ddd}t|| d S )Nz2014-07-01 10:00r  r   )rN   rC   rB   r   r   r   r   r	  )r0   r   r  r  r!   r!   r$   #test_date_range_business_hour_short  s   z<TestDateRangeNonTickFreq.test_date_range_business_hour_shortc                 C   :   t ddd|d}tg dd| ddd}t|| d S )	N1/1/20137/1/2017r  r   )
2013-01-01r   r   r   r\  r   r   r   r	  r0   r   r1   rb   r!   r!   r$   test_date_range_year_start     
z3TestDateRangeNonTickFreq.test_date_range_year_startc                 C   r  )	Nr  r  rL   r   )
2013-12-31r   
2015-12-31z
2016-12-31r   r   r   r	  r  r!   r!   r$   test_date_range_year_end  r  z1TestDateRangeNonTickFreq.test_date_range_year_endc                 C   H   t ddd|d}tg dd| ddd}t|| |jdks"J d S )	N
2011-12-31z-2YEr>   rC   rB   r   )r  z
2009-12-31z
2007-12-31r   r   r   r   r   r^   ra   rC   r  r!   r!   r$   &test_date_range_negative_freq_year_end     z?TestDateRangeNonTickFreq.test_date_range_negative_freq_year_endc                 C   r  )	Nr  r  ZBYEr   )r  r   r  z
2016-12-30r   r   r   r	  r  r!   r!   r$   &test_date_range_business_year_end_year  r  z?TestDateRangeNonTickFreq.test_date_range_business_year_end_yearc                 C   r  )	NrT   r]   ZBMSru  )
z
2000-01-03z
2000-02-01z
2000-03-01z
2000-04-03z
2000-05-01z
2000-06-01z
2000-07-03z
2000-08-01z
2000-09-01z
2000-10-02r   r   r   r	  r   r!   r!   r$   test_date_range_bms$  s   
z,TestDateRangeNonTickFreq.test_date_range_bmsc                 C   s<  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|d}t|d| ddd}t|| d S )N  r   r   rU  r   r   r>   r?   rn   r      r   r   r]   r   r   r   ZSMSr  r   r   r   r   r   r   r^   ra   r0   r   datesrk   rb   r!   r!   r$    test_date_range_semi_month_begin:  :   
























z9TestDateRangeNonTickFreq.test_date_range_semi_month_beginc                 C   s<  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|d}t|d| ddd}t|| d S )Nr  r      rU  r   r   r      r>   r?      rn   r   r  r   r   r]   r   r   r   ZSMEr  r   r   r   r  r  r!   r!   r$   test_date_range_semi_month_end[  r  z7TestDateRangeNonTickFreq.test_date_range_semi_month_endc                 C   sn   t ddd|d}tdgd| ddd}t|| t dd	d|d}tdd
gd| ddd}t|| d S )NZ20110101r   zWOM-1MONr  z
2011-01-03r   r   r   r   z
2011-02-07r	  )r0   r   rk   rj   rZ  r  r!   r!   r$   test_date_range_week_of_month|  s   z6TestDateRangeNonTickFreq.test_date_range_week_of_monthc                 C   r  )	Nz2013-1-1r?   zWOM-1SATru  )z
2013-01-05z
2013-02-02z
2013-03-02z
2013-04-06r   r   r   r	  r   r!   r!   r$   test_date_range_week_of_month2  r  z7TestDateRangeNonTickFreq.test_date_range_week_of_month2c                 C   r  )	N
2011-01-31z-2MEr>   r  )r  z
2010-11-30z
2010-09-30r   r   r   r  r  r!   r!   r$   'test_date_range_negative_freq_month_end  r  z@TestDateRangeNonTickFreq.test_date_range_negative_freq_month_endc                 C   sJ   t jdddd}tdd||d}tdd	gd
| d|d}t|| d S )Nr   r>   nearest)startingMonthweekdayZ	variationr  r   r  z
2013-01-31z
2014-01-30r   r   r   )r   ZFY5253r   r   r^   ra   )r0   r   rC   r   rj   r!   r!   r$   test_date_range_fy5253  s   z/TestDateRangeNonTickFreq.test_date_range_fy5253rH  ZQSr   )r  ZBQEr   rY  r   )r  c                 C   s\   t ddd}t ddd}t|||d}t|||d}t|t|ks$J |j|jks,J d S )Nr'  r   r(  rm   r   rz   )r   r   r   rC   )r0   rN  r   r)  rq   r  r  r!   r!   r$   &test_date_range_freqstr_matches_offset  s   	z?TestDateRangeNonTickFreq.test_date_range_freqstr_matches_offsetN)rG   rH   rI   r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  rV   r+  r,  r   ZQuarterBeginZBQuarterEndZWeekr  r!   r!   r!   r$   r  O  s4    9(

	
!!
	r  )8rF  r   r   r   r  numpyr   rV   r8   r   Zpandas._libs.tslibsr   Zpandas._libs.tslibs.offsetsr   r   r	   r
   r   Zpandas.errorsr   Zpandas.util._test_decoratorsutilZ_test_decoratorsrJ   Zpandasr   r   r   r   r   r   r   r   r   Zpandas._testingZ_testingr^   Zpandas.core.arrays.datetimesr   rK  Z-pandas.tests.indexes.datetimes.test_timezonesr   r   Zpandas.tseries.holidayr   rL  rM  r%   r&   rK   r-  rG  r^  rs  r  r  r!   r!   r!   r$   <module>   sB    (
5     MhlO B