o
    ŀgL                     @   sV   d dl Zd dlZd dlmZ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TimedeltaIndextimedelta_rangeto_timedelta)DaySecondc                	   @   s   e Zd Zdd Zdd Zejdg ddd Zejd	g d
dd Z	ejdddgdd Z
dd Zejdg ddd Zdd Zejddddg ddfd d!d"g d#d$fgd%d& Zd'S )(TestTimedeltasc                 C   sB   t ddddd}tjdddd d	d
}t| | d S )Nz0 Days
   100000Ds)periodsfrequniti8)dtypei zm8[D]zm8[s])r   nparangeviewastypetmassert_numpy_array_equalto_numpy)selftdiexp_arr r   h/var/www/html/myenv/lib/python3.10/site-packages/pandas/tests/indexes/timedeltas/test_timedelta_range.pytest_timedelta_range_unit   s   z(TestTimedeltas.test_timedelta_range_unitc                 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r   0 days)r   r      z10 days)r      z1 days, 00:00:02z5 days, 00:00:02)      r      	   2D2   min   30min)r   r   )r   r   r   r   r   assert_index_equalr   r   )r   expectedresultr   r   r   test_timedelta_range   s    z#TestTimedeltas.test_timedelta_rangezdepr_unit, unit)
)Hhour)Tminute)tr4   )Ssecond)Lmillisecond)lr9   )Umicrosecond)ur<   )N
nanosecond)nr?   c                 C   sp   d| d}t td|d}tjt|d t td|d}t|| W d    d S 1 s1w   Y  d S )N'8' is deprecated and will be removed in a future version.r   r    match)r   r   r   r   assert_produces_warningFutureWarningr-   )r   	depr_unitr   depr_msgr.   r/   r   r   r   +test_timedelta_units_H_T_S_L_U_N_deprecated.   s   
"z:TestTimedeltas.test_timedelta_units_H_T_S_L_U_N_deprecatedzperiods, freq))r%   r(   )r   r   )   19h12min)r&   16h)r'   12hc                 C   s,   t dd|d}t dd|d}t|| d S )Nr!   4 daysstartendr   rP   rQ   r   )r   r   r-   )r   r   r   r/   r.   r   r   r   test_linspace_behaviorH   s   z%TestTimedeltas.test_linspace_behaviorzmsg_freq, freq)r1   19H12min)r3   19h12Tc                 C   sf   d| d}t dddd}tjt|d t dd|d}W d    n1 s&w   Y  t|| d S )	NrA   rB   r!   rN   rJ   rO   rC   rR   )r   r   rE   rF   r-   )r   r   msg_freqmsgr/   r.   r   r   r   #test_timedelta_range_H_T_deprecatedQ   s   z2TestTimedeltas.test_timedelta_range_H_T_deprecatedc                 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  W d    n1 skw   Y  t jt|d tddd	d
d W d    d S 1 sw   Y  d S )NzVOf the four parameters: start, end, periods, and freq, exactly three must be specifiedrC   r!   )rP   z5 days)rQ   r#   r   r	   h)rP   rQ   r   r   )pytestraises
ValueErrorr   )r   rW   r   r   r   test_errors[   s"   "zTestTimedeltas.test_errorsz"start, end, freq, expected_periods))1D10Dr(   r   )r(   30D3Dr	   )2s50s5sr	   )4D16Drb   r   )8Drg   40siC  c                 C   sJ   t |||d}t||d ksJ t||d ksJ t||ks#J d S )NrR   r   )r   r   len)r   rP   rQ   r   expected_periodsresr   r   r   $test_timedelta_range_freq_divide_endq   s   z3TestTimedeltas.test_timedelta_range_freq_divide_endc                 C   s    t dddd}|jd u sJ d S )N0s1s   rY   )r   r   )r   r/   r   r   r   test_timedelta_range_infer_freq   s   z.TestTimedeltas.test_timedelta_range_infer_freqz5freq_depr, start, end, expected_values, expected_freqz3.5Sz05:03:01z05:03:10)z0 days 05:03:01z0 days 05:03:04.500000z0 days 05:03:083500msz2.5Tz5 hoursz5 hours 8 minutes)z0 days 05:00:00z0 days 05:02:30z0 days 05:05:00z0 days 05:07:30150sc           	      C   sj   d|d  d}t jt|d t|||d}W d    n1 s!w   Y  t|d|d}t || d S )NrA   rj   rB   rC   rR   ztimedelta64[ns])r   r   )r   rE   rF   r   r   r-   )	r   	freq_deprrP   rQ   expected_valuesexpected_freqrW   r/   r.   r   r   r   $test_timedelta_range_deprecated_freq   s   z3TestTimedeltas.test_timedelta_range_deprecated_freqN)__name__
__module____qualname__r   r0   r[   markparametrizerI   rS   rX   r^   rn   rr   rx   r   r   r   r   r      sL    


	
r   )numpyr   r[   pandasr   r   r   r   pandas._testing_testingr   pandas.tseries.offsetsr   r   r   r   r   r   r   <module>   s    