
    i                     x    d dl Zd dlZd dlm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      Z G d d      Zy)	    N)Pandas4Warning)	Timedeltatimedelta_rangeto_timedelta)DaySecondc                      e Zd Zd Zd Zej                  j                  dddg      d        Zej                  j                  dg d      d	        Z	ej                  j                  d
g d      d        Z
d Zd Zd Zej                  j                  dg d      d        Zd Zej                  j                  dg d      d        Zy)TestTimedeltasc                     t        dddd      }t        j                  dd      dz  j                  d	      j	                  d
      }t        j                  |j                         |       y )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_arrs      q/app/cer_product_mecsu/.venv/lib/python3.12/site-packages/pandas/tests/indexes/timedeltas/test_timedelta_range.pytest_timedelta_range_unitz(TestTimedeltas.test_timedelta_range_unit   sS    hM99Rt,w6<<WELLWU
##CLLNG<    c                 l   t        t        j                  d      d      j                  d      }t	        ddd      }t        j                  ||       t        t        j                  d      d      j                  d      }t	        ddd	      }t        j                  ||       t        t        j                  d      d      j                  d      t        d
      z   t               z   }t	        ddd	      }t        j                  ||       t        g dd      j                  d      t        d
      z   }t	        ddd      }t        j                  ||       t        t        j                  d      d      j                  d      dz  }t	        ddd      }t        j                  ||       y )N   Dr   us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   as_unitr   r   assert_index_equalr   r   )r   expectedresults      r   test_timedelta_rangez#TestTimedeltas.test_timedelta_range   sT   		!37??E 13?
fh/		"C8@@F 93?
fh/ 1C088>JSUR 	 !!35GcR
fh/c:BB4H6RS9T !3QTJ
fh/		"E:BB4H2M D
fh/r    zdepr_unit, unit)Hhour)Ssecondc                    d| d}t        t        j                  d      |      }t        j                  t
        |      5  t        t        j                  d      |      }t        j                  ||       d d d        y # 1 sw Y   y xY w)N'z8' is deprecated and will be removed in a future version.r"   r$   match)r   r   r   r   assert_produces_warningr   r4   )r   	depr_unitr   depr_msgr5   r6   s         r   #test_timedelta_units_H_S_deprecatedz2TestTimedeltas.test_timedelta_units_H_S_deprecated1   su     	{RS 	  		!48''hG 	4!"))A,Y?F!!&(3	4 	4 	4s   7BBr   )TtLlUuNnc                     d| }t        j                  t        |      5  t        t	        j
                  d      |       d d d        y # 1 sw Y   y xY w)Nzinvalid unit abbreviation: r>   r"   r$   )pytestraises
ValueErrorr   r   r   )r   r   msgs      r   "test_timedelta_unit_T_L_U_N_raisesz1TestTimedeltas.test_timedelta_unit_T_L_U_N_raises<   sC    +D62]]:S1 	21D1	2 	2 	2s   !AAzperiods, freq))r+   r.   )r"   r#   )   19h12min)r,   16h)r-   12hc                 h    t        dd|      }t        dd|      }t        j                  ||       y )Nr&   4 days)startendr   rX   rY   r   )r   r   r4   )r   r   r   r6   r5   s        r   test_linspace_behaviorz%TestTimedeltas.test_linspace_behaviorC   s0    
 !xXwO"xdK
fh/r    c                     d}t        j                  t        |      5  t        ddd       d d d        y # 1 sw Y   y xY w)NzInvalid frequency: Hr>   r&   rW   19H12minrZ   rM   rN   rO   r   r   rP   s     r   test_timedelta_range_H_raisesz,TestTimedeltas.test_timedelta_range_H_raisesL   s:    $]]:S1 	K(zJ	K 	K 	K   6?c                     d}t        j                  t        |      5  t        ddd       d d d        y # 1 sw Y   y xY w)NzInvalid frequency: Tr>   r&   rW   19h12TrZ   r^   r_   s     r   test_timedelta_range_T_raisesz,TestTimedeltas.test_timedelta_range_T_raisesS   s:    $]]:S1 	I(xH	I 	I 	Ira   c                 b   d}t        j                  t        |      5  t        d       d d d        t        j                  t        |      5  t        d       d d d        t        j                  t        |      5  t        d       d d d        t        j                  t        |      5  t                d d d        t        j                  t        |      5  t        ddd	d
       d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   axY w# 1 sw Y   y xY w)NzVOf the four parameters: start, end, periods, and freq, exactly three must be specifiedr>   r&   )rX   z5 days)rY   r)   r   r   h)rX   rY   r   r   r^   r_   s     r   test_errorszTestTimedeltas.test_errorsY   s    . 	 ]]:S1 	,(+	, ]]:S1 	*)	* ]]:S1 	'A&	' ]]:S1 		 ]]:S1 	P("3O	P 	P	, 	,	* 	*	' 	'	 		P 	Ps;   C5D>D.DD%5C>D
DD"%D.z"start, end, freq, expected_periods))1D10Dr.   r"   )r.   30D3Dr   )2s50s5sr   )4D16Drl   r"   )8Drq   40siC  c                     t        |||      }t        |      |d   k(  sJ t        |      |d   k\  sJ t        |      |k(  sJ y )NrZ   r   )r   r   len)r   rX   rY   r   expected_periodsress         r   $test_timedelta_range_freq_divide_endz3TestTimedeltas.test_timedelta_range_freq_divide_endo   sR     Es>3q6)))~R(((3x++++r    c                 <    t        ddd      }|j                  J y )N0s1s   rf   )r   r   )r   r6   s     r   test_timedelta_range_infer_freqz.TestTimedeltas.test_timedelta_range_infer_freq   s      tR8{{"""r    zfreq_depr, start, end))z3.5l05:03:0105:03:10)z2.5Tz5 hoursz5 hours 8 minutes)z3.5Sr   r   c                     d| }t        j                  t        |      5  t        |||       d d d        y # 1 sw Y   y xY w)NzInvalid frequency: r>   rZ   r^   )r   	freq_deprrX   rY   rP   s        r   !test_timedelta_range_removed_freqz0TestTimedeltas.test_timedelta_range_removed_freq   sC    , $I;/]]:S1 	B%SyA	B 	B 	Bs	   9AN)__name__
__module____qualname__r   r7   rM   markparametrizerC   rQ   r[   r`   rd   rh   ry   r~   r    r    r   r
   r
      s    =0. [[.0PQ4 R4 [[V%MN2 O2 [[W00KIP, [[,	

,
,#
 [[	
(B)(Br    r
   c                       e Zd Zd Zd Zd Zy)TestTimedeltaRangeUnitInferencec                     t        d      j                  |      }t        d      j                  |      }t        ||d      }|j                  |k(  sJ y )Nr   r*   daysr#   r(   r   r3   r   r   r   r   rX   rY   r   s        r   1test_timedelta_range_unit_inference_matching_unitzQTestTimedeltaRangeUnitInference.test_timedelta_range_unit_inference_matching_unit   sK    !$$T*Q''-eSs3xx4r    c                    t        d      j                  |      }t        d      j                  d      }t        ||d      }|j                  |k(  sJ t        ||j                  d      d      }|j                  dk(  sJ y )Nr   r*   r   r   r#   r(   nsr   r   s        r   3test_timedelta_range_unit_inference_mismatched_unitzSTestTimedeltaRangeUnitInference.test_timedelta_range_unit_inference_mismatched_unit   st    !$$T*Q'',eSs3xx4eS[[%6SAxx4r    c                    t        d      j                  d      }t        d      j                  d      }t        ||d      }|j                  dk(  sJ t        ||j                  d	      d      }|j                  d	k(  sJ y )
Nr   msr*   r   r   	2000000usr(   r%   r   r   )r   rX   rY   r   s       r   (test_timedelta_range_unit_inference_tickzHTestTimedeltaRangeUnitInference.test_timedelta_range_unit_inference_tick   st    !$$T*Q'',eS{;xx4eS[[%6[Ixx4r    N)r   r   r   r   r   r   r   r    r   r   r      s       r    r   )numpyr   rM   pandas.errorsr   pandasr   r   r   pandas._testing_testingr   pandas.tseries.offsetsr   r   r
   r   r   r    r   <module>r      s;      ( 
 KB KB\   r    