
    Egh)                     t    d dl mZ d dlZ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  G d d          ZdS )    	timedeltaN)	TimedeltaTimedeltaIndextimedelta_rangeto_timedelta)TimedeltaArrayc                      e Zd Zd Zd Zej                            dg d          d             Zd Z	d Z
d Zd	 Zd
 Zd Zd Zej                            d          d             Zd Zd Zd Zd Zd Zd Zd Zd ZdS )TestTimedeltaIndexc                     d}t          j        t          |          5  t          g d           d d d            d S # 1 swxY w Y   d S )NzThe 'closed' keywordmatchT)closed)tmassert_produces_warningFutureWarningr   selfmsgs     f/var/www/sysmax/venv/lib/python3.11/site-packages/pandas/tests/indexes/timedeltas/test_constructors.pytest_closed_deprecatedz)TestTimedeltaIndex.test_closed_deprecated   s    $'SAAA 	, 	,2d++++	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	,s   =AAc                    t          j        dd          }t          j        |gt                    }d}t	          j        t          |          5  t          |           d d d            n# 1 swxY w Y   t	          j        t          |          5  t          j	        |d           d d d            n# 1 swxY w Y   t	          j        t          |          5  t          |           d d d            d S # 1 swxY w Y   d S )NNaTnsdtypez!Invalid type for timedelta scalarr   zm8[ns])np
datetime64arrayobjectpytestraises	TypeErrorr   r	   _from_sequencer   )r   natarrr   s       r   test_array_of_dt64_nat_raisesz0TestTimedeltaIndex.test_array_of_dt64_nat_raises   s   mE4((huF+++1]9C000 	  	 3	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  ]9C000 	? 	?)#X>>>>	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? ]9C000 	 		 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s6   A++A/2A/B44B8;B8C77C;>C;unit)YyMc                     d}d}t          j        t          |          5  t          j        t
          |          5  t          g d|           d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )Nz/Units 'M', 'Y', and 'y' are no longer supportedz?The 'unit' keyword in TimedeltaIndex construction is deprecatedr   )         )r!   r"   
ValueErrorr   r   r   r   )r   r(   r   depr_msgs       r   test_unit_m_y_raisesz'TestTimedeltaIndex.test_unit_m_y_raises'   s   ?T]:S111 	0 	0+MJJJ 0 0yyy$///0 0 0 0 0 0 0 0 0 0 0 0 0 0 0	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0s4   A3AA3A	A3"A	#A33A7:A7c                     t          j        dt           j                  }t          |d          }|j        j        j        |u sJ d S )N
   r   F)copy)r   arangeint64r   _data_ndarraybase)r   r&   tdis      r   test_int64_nocopyz$TestTimedeltaIndex.test_int64_nocopy/   sK     i"(+++Su---y!&#------    c                     t          ddd          }t          |d          }|j        |j        k    sJ dt          |di           vsJ d S )	N1 secondi 1speriodsfreqinferrC   inferred_freq_cache)r   r   rC   getattr)r   r;   results      r   test_infer_from_tdiz&TestTimedeltaIndex.test_infer_from_tdi6   sd     j%dCCC'222{ch&&&& gfh&C&CCCCCCCr=   c                 4   t          ddd          }d}d}t          j        t          |          5  t	          |d	           d d d            n# 1 swxY w Y   t          j        t          |          5  t          j        t          |          5  t          |d	           d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   t          j        t          |          5  t	          |j	        d	           d d d            n# 1 swxY w Y   t          j        t          |          5  t          j        t          |          5  t          |j	        d	           d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )
Nr?   d   r@   rA   %TimedeltaArray.__init__ is deprecatedzMInferred frequency .* from passed values does not conform to passed frequencyr   DrE   )
r   r!   r"   r0   r   r   r   r   r	   r8   )r   r;   r1   r   s       r   test_infer_from_tdi_mismatchz/TestTimedeltaIndex.test_infer_from_tdi_mismatchC   s    j#DAAA:. 	 ]:S111 	* 	*3S))))	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* ]:S111 	. 	.+MJJJ . .s----. . . . . . . . . . . . . . .	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	.
 ]:S111 	0 	0393////	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 ]:S111 	4 	4+MJJJ 4 4sys33334 4 4 4 4 4 4 4 4 4 4 4 4 4 4	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4s   AAA6CB0$C0B4	4C7B4	8CCC-DDD6FE5)F5E9	9F<E9	=FFFc                    t          j        dd          }d}t          j        t          |          5  t          |                    d                     d d d            n# 1 swxY w Y   t          j        t          |          5  t          |           d d d            n# 1 swxY w Y   t          j        t          |          5  t          t          j        |                     d d d            d S # 1 swxY w Y   d S )Nz
2016-01-01r.   rB   z"cannot be converted to timedelta64r   zEurope/Brussels)	pd
date_ranger!   r"   r#   r   tz_localizer   asarray)r   dtir   s      r   test_dt64_data_invalidz)TestTimedeltaIndex.test_dt64_data_invalid]   s    mL!4442]9C000 	? 	?3??+<==>>>	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? ]9C000 	  	 3	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  ]9C000 	, 	,2:c??+++	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	,s5   #A##A'*A'	B%%B),B)"C::C>C>c                    t          ddg          }t          ddg          }t          j        ||           t          ddg          }t          ddg          }t          j        ||           t          dt          j        g          }t          t          d          t          j        g          }t          j        ||           d S )Ngffffff@gffffff#@   	   g       @g      "@)nanoseconds)r   r   assert_index_equalr   nanr   rR   r   r   r;   expecteds      r   test_float64_ns_roundedz*TestTimedeltaIndex.test_float64_ns_roundedm   s     c3Z((!1a&))
c8,,, c3Z((!1a&))
c8,,, c26]++!9#;#;#;RV"DEE
c8,,,,,r=   c                     t          ddgd          }t          t          d          t          d          g          }t          j        ||           d S )Ng      ?g      @rN   r(   )days)r   r   r   r   r\   r^   s      r   test_float64_unit_conversionz/TestTimedeltaIndex.test_float64_unit_conversion~   sY    C;S111!9##6#6#6	t8L8L8L"MNN
c8,,,,,r=   c                    t          d          t          j        t          d          g}t          j        t          j        |          t          |                     t          j        t          j        t          j        |                    t          t          j        |                               t          j	        t          j        t          d          g}t          j        t          j        |          t          |                     t          j        t          j        t          j        |                    t          t          j        |                               d S )N1 days3 days)
r   rR   r   r   r\   Indexr   r   r   r]   )r   r&   s     r   "test_construction_base_constructorz5TestTimedeltaIndex.test_construction_base_constructor   s    ""BFIh,?,?@
bhsmm^C-@-@AAA
bhrx}}55~bhsmm7T7TUUUvrvy223
bhsmm^C-@-@AAA
bhrx}}55~bhsmm7T7TUUUUUr=   zFignore:The 'unit' keyword in TimedeltaIndex construction:FutureWarningc           	      d   t          g d          }t          ddt          j        dd          t          dd          t          j                            d          g          }t          j        ||           t          g d          }t          t          d          d	
          }t          j        ||           t          g d          }t          g dd	
          }t          j        ||           t          g d          }t          g dd
          }t          j        ||           d S )N)rf   z1 days 00:00:052 daysz2 days 00:00:02z0 days 00:00:03rf   z1 days, 00:00:05rY   rN   )rc   secondsr.   )0 days 00:00:00z0 days 00:00:01z0 days 00:00:02srb   )rm   z0 days 00:00:05z0 days 00:00:09)r      rZ   )z0 days 00:00:00.400z0 days 00:00:00.450z0 days 00:00:01.200)i  i  i  ms)
r   r   timedelta64r   rR   offsetsSecondr   r\   range)r   r_   rI   s      r   test_constructorz#TestTimedeltaIndex.test_constructor   sY    "  
 
  "q#&&q!,,,
!!!$$
 
 	fh///!EEE
 
  as333
fh///!EEE
 
  			444
fh///!QQQ
 
   0 0 0t<<<
fh/////r=   c                     t          ddd          }d t          dd          D             }t          |          }t          j        ||           d S )Nr@   rZ   rn   rA   c                     g | ]}d | d	S )P0DT0H0MS .0is     r   
<listcomp>z;TestTimedeltaIndex.test_constructor_iso.<locals>.<listcomp>   s     ;;;____;;;r=   r-   r4   )r   rt   r   r   r\   )r   r_   	durationsrI   s       r   test_constructor_isoz'TestTimedeltaIndex.test_constructor_iso   sW    "4===;;eArll;;;	i((
fh/////r=   c                     d}t          j        t          |          5  t          dd          }d d d            n# 1 swxY w Y   t          dd          }t          j        ||           d S )Nz:Non-integer 'periods' in pd.date_range, pd.timedelta_ranger   rf   g      %@rQ   r4   )r   r   r   r   r\   )r   r   rngexps       r   &test_timedelta_range_fractional_periodz9TestTimedeltaIndex.test_timedelta_range_fractional_period   s    J'SAAA 	: 	:!(D999C	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	:h333
c3'''''s   <A A c                    d}t          j        t          |          5  t          ddd           d d d            n# 1 swxY w Y   d}t          j        t          |          5  t	          d           d d d            n# 1 swxY w Y   d t          d	          D             }t	          |          }t	          d
 t          d	          D                       }t          j        ||           t          j	        g d          }t	          |          }t          g dd          }t          j        ||           t	          |j                  }t          j        ||           d}t          j        t          |          5  t	          g dd           d d d            n# 1 swxY w Y   d}t          j        t          |          5  t          d	d           d d d            d S # 1 swxY w Y   d S )Nz!periods must be a number, got foor   rf   foorN   )startrB   rC   z[TimedeltaIndex\(\.\.\.\) must be called with a collection of some kind, '1 days' was passedc              3   4   K   | ]}t          |          V  d S )Nr   r{   s     r   	<genexpr>z?TestTimedeltaIndex.test_constructor_coverage.<locals>.<genexpr>   s(      //y||//////r=   r4   c                 ,    g | ]}t          |          S rz   r   r{   s     r   r~   z@TestTimedeltaIndex.test_constructor_coverage.<locals>.<listcomp>   s    "C"C"CA9Q<<"C"C"Cr=   )rf   rk   rg   )r-   rY   r.   drb   zQInferred frequency None from passed values does not conform to passed frequency D)rf   rk   z4 daysrE   zVOf the four parameters: start, end, periods, and freq, exactly three must be specifiedrA   )r!   r"   r#   r   r   rt   r   r\   r   r   r   asi8r0   )r   r   genrI   r_   strings	from_intss          r   test_constructor_coveragez,TestTimedeltaIndex.test_constructor_coverage   s!   1]9C000 	E 	E(EDDDD	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E" 	 ]9C000 	% 	%8$$$	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 0/U2YY///$$!"C"Cr"C"C"CDD
fh/// (999::((			444
fh///"8=11	
i222! 	 ]:S111 	E 	E999DDDD	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E& 	 ]:S111 	2 	2BS1111	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2sE   =AA%BBBF""F&)F&
G))G-0G-c                     t          dddd          }|j        dk    sJ t          |d          }|j        dk    sJ d S )Nrf   r-   rN   TEST)r   rB   rC   namezsomething else)r   )r   r   r   )r   idxidx2s      r   test_constructor_namez(TestTimedeltaIndex.test_constructor_name   sZ    HacOOOx6!!!! c(8999y,,,,,,,r=   c                 .   d}t          j        t          |          5  t          dgd           d d d            n# 1 swxY w Y   d}t          j        t          |          5  t	          j        dgd           d d d            d S # 1 swxY w Y   d S )Nz with no precision is not allowedr   2000rq   r   z3The 'timedelta64' dtype has no unit. Please pass in)r!   r"   r0   r   rR   rh   r   s     r   $test_constructor_no_precision_raisesz7TestTimedeltaIndex.test_constructor_no_precision_raises   s     1]:S111 	: 	:F8=9999	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: D]:S111 	4 	4HfX]3333	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4s!   =AA%B

BBc                     d}t          j        t          |          5  t          dgd           d d d            n# 1 swxY w Y   t          dgd          }|j        dk    sJ d S )Nz;Supported timedelta64 resolutions are 's', 'ms', 'us', 'ns'r   r   ztimedelta64[D]r   ztimedelta64[us]zm8[us])r!   r"   r0   r   r   )r   r   r;   s      r   'test_constructor_wrong_precision_raisesz:TestTimedeltaIndex.test_constructor_wrong_precision_raises   s    K]:S111 	= 	=F8+;<<<<	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= fX->???yH$$$$$$s   =AAc                 J   t          dd          }|j        J t          |d           }|j        J t          |j        d           }|j        J d}t	          j        t          |          5  t          |d           }d d d            n# 1 swxY w Y   |j        J d S )Nr-   ro   rQ   rE   rM   r   )r   rC   r   r8   r   r   r   r	   )r   r;   rI   r   tdas        r   test_explicit_none_freqz*TestTimedeltaIndex.test_explicit_none_freq	  s    a+++x###$///{"""	555{"""5'SAAA 	1 	1 4000C	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1xs   1BBBc                    t          dd          }t          j        |          }t          |          }t	          j        ||           t          j        |          }t          |          }t	          j        ||           d S )Nr-   ro   rQ   )r   rR   Categoricalr   r   r\   CategoricalIndex)r   r;   catrI   cis        r   test_from_categoricalz(TestTimedeltaIndex.test_from_categorical  sy    a+++nS!!$$
fc*** %%##
fc*****r=   N)__name__
__module____qualname__r   r'   r!   markparametrizer2   r<   rJ   rO   rW   r`   rd   ri   filterwarningsru   r   r   r   r   r   r   r   r   rz   r=   r   r   r      s       , , ,   [V___550 0 650. . .D D D4 4 44, , , - - -"- - -V V V [P #0 #0 #0J0 0 0( ( ((2 (2 (2T- - -	4 	4 	4% % %      
+ 
+ 
+ 
+ 
+r=   r   )datetimer   numpyr   r!   pandasrR   r   r   r   r   pandas._testing_testingr   pandas.core.arrays.timedeltasr	   r   rz   r=   r   <module>r      s                                    8 8 8 8 8 8R+ R+ R+ R+ R+ R+ R+ R+ R+ R+r=   