a
    Gb                     @   sR   d dl Zd dlZd dlmZmZmZ d dlmZ	 d dl
mZmZ G dd dZdS )    N)	Timedeltatimedelta_rangeto_timedelta)DaySecondc                   @   sX   e Z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S )TestTimedeltasc                 C   s   t tddd}tdddd}t|| t tddd}tdddd}t|| t tdddtd	 t  }td
ddd}t|| t g dddtd	 }td
ddd}t|| t tdddd }tdddd}t|| d S )N   D)Zunit0 days)periodsfreq   z10 days)r      z1 days, 00:00:02z5 days, 00:00:02)      r      	   2D2   T   Z30T)r   r   )r   npZaranger   tmassert_index_equalr   r   )selfexpectedresult r   Slib/python3.9/site-packages/pandas/tests/indexes/timedeltas/test_timedelta_range.pytest_timedelta_range   s     z#TestTimedeltas.test_timedelta_rangezperiods, freq))r   r   )r   r	   )   Z19H12T)r   Z16H)r   Z12Hc                 C   s,   t dd|d}t dd|d}t|| d S )Nr
   z4 days)startendr   r!   r"   r   )r   r   r   )r   r   r   r   r   r   r   r   test_linspace_behavior(   s    z%TestTimedeltas.test_linspace_behaviorc                 C   s$  d}t jt|d tdd W d    n1 s20    Y  t jt|d tdd W d    n1 sj0    Y  t jt|d tdd W d    n1 s0    Y  t jt|d t  W d    n1 s0    Y  t jt|d  tddd	d
d W d    n1 s0    Y  d S )NzVOf the four parameters: start, end, periods, and freq, exactly three must be specified)matchr
   )r!   z5 days)r"   r   r   
   H)r!   r"   r   r   )pytestZraises
ValueErrorr   )r   msgr   r   r   test_errors1   s    ((($zTestTimedeltas.test_errorsz"start, end, freq, expected_periods))Z1DZ10Dr   r   )r   Z30D3Dr'   )Z2sZ50sZ5sr'   )Z4D16Dr-   r   )Z8Dr.   Z40siC  c                 C   sJ   t |||d}t||d ks"J t||d ks6J t||ksFJ d S )Nr#   r   )r   r   len)r   r!   r"   r   Zexpected_periodsresr   r   r   $test_timedelta_range_freq_divide_endG   s    z3TestTimedeltas.test_timedelta_range_freq_divide_endc                 C   s    t dddd}|jd u sJ d S )NZ0sZ1s   r&   )r   r   )r   r   r   r   r   test_timedelta_range_infer_freqY   s    z.TestTimedeltas.test_timedelta_range_infer_freqN)__name__
__module____qualname__r   r)   ZmarkZparametrizer$   r,   r2   r4   r   r   r   r   r      s   

r   )Znumpyr   r)   Zpandasr   r   r   Zpandas._testingZ_testingr   Zpandas.tseries.offsetsr   r   r   r   r   r   r   <module>   s
   