
    i                     l    d 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  G d d      Zy)zM
Tests for TimedeltaIndex methods behaving like their Timedelta counterparts
    N)INVALID_FREQ_ERR_MSG)Pandas4Warning)IndexSeries	TimedeltaTimedeltaIndextimedelta_rangec                   r    e Zd Zd Zd Zd Zej                  j                  dg d      d        Z	d Z
d Zy	)
TestVectorizedTimedeltac                    t        ddd      }ddg}t        j                  |j                         t	        |             t        |      }t        |ddg	      }t        j                  |j                  j                         |       t        j                  |d<   t        dt        j                  gddg	      }t        j                  |j                  j                         |       y )
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_expts        o/app/cer_product_mecsu/.venv/lib/python3.12/site-packages/pandas/tests/indexes/timedeltas/test_scalar_compat.pytest_tdi_total_secondsz.TestVectorizedTimedelta.test_tdi_total_seconds   s     :ACPDD
 	s002E$K@ SkQF+
svv335v> AErvvNa&
 	svv335v>    c                    t        t        j                  t        j                  gd      }|j                  j	                         }t        t        j                  t        j                  g      }t        j                  ||       y )Nztimedelta64[ns])dtype)r   r   r   r   r   r   r   )r   r   resultexpecteds       r    test_tdi_total_seconds_all_natz6TestVectorizedTimedelta.test_tdi_total_seconds_all_nat-   sU    bffbff%->?%%'266266*+
vx0r"   c           	      H   t        ddd      }|d   }t        t        d      t        d      t        d      t        d      t        d      g      }|d   }t        j                  |j                  d	
      |       |j                  d	
      |k(  sJ t        }t        j                  t        |      5  |j                  d
       d d d        t        j                  t        |      5  |j                  d
       d d d        d}t        j                  t        |      5  |j                  d
       d d d        t        j                  t        |      5  |j                  d
       d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   XxY w# 1 sw Y   y xY w)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msgs         r    test_tdi_roundz&TestVectorizedTimedelta.test_tdi_round4   si   <Ie%/0/0/0/0/0
 $A
bhhCh0,?yycy"l222"]]:S1 	!HH%H 	!]]:S1 	"II5I!	" 4]]:S1 	 HH$H	 ]]:S1 	!II4I 	! 	!	! 	!	" 	"	  	 	! 	!s0   4E4*F "FF4E= F	FF!zfreq,msg))YEz,<YearEnd: month=12> is a non-fixed frequency)r1   r0   )foobarzInvalid frequency: foobarc                 8   t        ddd      }t        j                  t        |      5  |j	                  |       d d d        t        j                  t        |      5  |j
                  j	                  |       d d d        y # 1 sw Y   IxY w# 1 sw Y   y xY w)N1 days   1 min 2 s 3 usr   r-   )r	   r4   r5   r6   r3   _data)r   r   r;   t1s       r    test_tdi_round_invalidz.TestVectorizedTimedelta.test_tdi_round_invalidR   sy     Xq7GH]]:S1 	HHTN	]]:S1 	!HHNN4 	! 	!	 		! 	!s   BBBBc                 R   t        ddd      }d|z  }t        ddd      }t        t        j                  g dd            j	                  d	      }d
}t        j                  t        |      5  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|z  ffD ](  \  }}}|j                  |      }	|j                  |      }
* t        j                  	       t        j                  
       d d d        y # 1 sw Y   y xY w)Nr@   rA   rB   r   z	1 min 2 s)r   r   r   zm8[D]usz:'d' is deprecated and will be removed in a future version.r-   nsms)z-1 days +00:00:00z-2 days +23:58:58z-2 days +23:57:56r   12min)-1 daysrL   rL   r,   d)
r	   r   r   arrayas_unitr   assert_produces_warningr   r3   r2   )r   rD   t2t1at1cr;   r   s1s2r1r2s              r    
test_roundz"TestVectorizedTimedelta.test_roundd   s:   Xq7GH"WhDRXXi9:BB4H K''cB 	*r2r2"W "W #~.OPQc>*KLMc28$'! $b"* XXd^XXd^-$0 !!"b)!!"b)5	* 	* 	*s   /B%DD&c                 T   t        ddd      }|j                   t        |      }t        j                  |d<   |j
                  j                  }|j                  d   j                         j                         rJ |j                  d   j                         j                         sJ y )Nz1 days, 10:11:12r   r   r   r   r   )	r	   
componentsr   r   r   r   ilocisnaall)r   r   r   r%   s       r    test_componentsz'TestVectorizedTimedelta.test_components   s    0!#F 3Kvv!;;q>&&(,,...{{1~""$((***r"   N)__name__
__module____qualname__r!   r'   r<   r4   markparametrizerE   rX   r^    r"   r    r   r      sG    ?.1!< [[	
!!#*J
+r"   r   )__doc__numpyr   r4   pandas._libs.tslibs.offsetsr   pandas.errorsr   pandasr   r   r   r   r	   pandas._testing_testingr   r   rd   r"   r    <module>rl      s3      < (  ~+ ~+r"   