o
    ŀg                     @   sZ   d 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 G dd dZdS )zM
Tests for TimedeltaIndex methods behaving like their Timedelta counterparts
    N)INVALID_FREQ_ERR_MSG)IndexSeries	TimedeltaTimedeltaIndextimedelta_rangec                   @   sN   e Z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 )TestVectorizedTimedeltac                 C   s   t dddd}ddg}t| t| t|}t|ddgd	}t|j | tj	|d< tdtj	gddgd	}t|j | d S )
Nz1 days, 10:11:12.100123456   speriodsfreqg@g@r      )index)
r   tmassert_almost_equaltotal_secondsr   r   assert_series_equaldtnpnan)selfrngexptsers_expt r   f/var/www/html/myenv/lib/python3.10/site-packages/pandas/tests/indexes/timedeltas/test_scalar_compat.pytest_tdi_total_seconds   s   
z.TestVectorizedTimedelta.test_tdi_total_secondsc                 C   s>   t tjtjgdd}|j }t tjtjg}t|| d S )Nztimedelta64[ns])dtype)r   r   r   r   r   r   r   )r   r   resultexpectedr   r   r   test_tdi_total_seconds_all_nat,   s   
z6TestVectorizedTimedelta.test_tdi_total_seconds_all_natc                 C   sb  t dddd}|d }ttdtdtdtdtdg}|d }t|jd	d
| |jd	d
|ks6J t}tjt	|d |jdd
 W d    n1 sPw   Y  tjt	|d |jdd
 W d    n1 smw   Y  d}tjt	|d |jdd
 W d    n1 sw   Y  tjt	|d |jdd
 W d    d S 1 sw   Y  d S )Nz
16801 days   30Min)startr   r   r   z16801 days 00:00:00z16801 days 01:00:00z16801 days 02:00:00h)r   matchfoo#<MonthEnd> is a non-fixed frequencyME)
r   r   r   r   assert_index_equalroundr   pytestraises
ValueError)r   tdeltexpected_rngexpected_eltmsgr   r   r   test_tdi_round3   s6   	"z&TestVectorizedTimedelta.test_tdi_roundzfreq,msg))YEz,<YearEnd: month=12> is a non-fixed frequency)r+   r*   )foobarzInvalid frequency: foobarc                 C   s   t dddd}tjt|d || W d    n1 sw   Y  tjt|d |j| W d    d S 1 s<w   Y  d S )N1 days   1 min 2 s 3 usr   r'   )r   r.   r/   r0   r-   _data)r   r   r5   t1r   r   r   test_tdi_round_invalidQ   s   	"z.TestVectorizedTimedelta.test_tdi_round_invalidc           
   
   C   s   t dddd}d| }t dddd}ttg ddd	}d	||fd
||fd|tg dfd|tg dfd|tg dfd|tg dfd|d| ffD ]\}}}||}t|| ||}	t|	| qOd S )Nr9   r:   r;   r   z	1 min 2 s)r   r   r   zm8[D]nsusms)z-1 days +00:00:00z-2 days +23:58:58z-2 days +23:57:56r
   12min)-1 daysrD   rD   r&   d)r   r   r   arrayas_unitr-   r   r,   )
r   r=   t2t1at1cr   s1s2r1r2r   r   r   
test_roundc   s6   

z"TestVectorizedTimedelta.test_roundc                 C   s^   t dddd}|j t|}tj|d< |jj}|jd   r"J |jd   s-J d S )Nz1 days, 10:11:12r	   r
   r   r   r   )	r   
componentsr   r   r   r   ilocisnaall)r   r   r
   r    r   r   r   test_components   s   
z'TestVectorizedTimedelta.test_componentsN)__name__
__module____qualname__r   r"   r6   r.   markparametrizer>   rO   rT   r   r   r   r   r      s    

!r   )__doc__numpyr   r.   pandas._libs.tslibs.offsetsr   pandasr   r   r   r   r   pandas._testing_testingr   r   r   r   r   r   <module>   s    