
    Owg0                         d dl mZmZ d dlZd dlZd dlmZ d dlm	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	 Zej.                  j1                  d
ddg      d        Zy)    )time	timedeltaN)IS64)OutOfBoundsTimedelta)SeriesTimedeltaIndexisnato_timedelta)TimedeltaArrayc            
       r   e Zd Zd Zej
                  j                  dddg      d        Zd Zd Z	d Z
d	 Zej
                  j                  d
ddgddgddgddgddgg      d        Zd Zej
                  j                  d ej                  d      j!                  dd       ej$                   ej                  d      j!                  dd            g      ej
                  j                  dg d      ej
                  j'                  d      d                      Zd Zej
                  j                  dddgdg      d        Zd Zd  Zd! Zd" Zej
                  j                  d#g d$      d%        Zd& Zd' Zd( Zej
                  j                  d)ej>                  ej@                  ejB                  g      d*        Z"ej
                  j                  d)ej>                  ej@                  ejB                  g      d+        Z#ej
                  jI                  e% d,-      d.        Z&d/ Z'd0 Z(ej
                  j                  d1 e)d2      dgd3d3gg      d4        Z*ej
                  j                  d5g d6      ej
                  j                  d7ejV                  e,g      d8               Z-d9 Z.d: Z/d; Z0y3)<TestTimedeltasc                 X   d}t        t        j                  g      }t        j                  t
        |      5  t        |       d d d        t        j                  t
        |      5  |j                         j                  t               d d d        y # 1 sw Y   QxY w# 1 sw Y   y xY w)Nz?dtype datetime64\[ns\] cannot be converted to timedelta64\[ns\]match)	r   pdNaTpytestraises	TypeErrorr
   to_frameapply)selfmsgsers      [/var/www/horilla/myenv/lib/python3.12/site-packages/pandas/tests/tools/test_to_timedelta.pytest_to_timedelta_dt64_raisesz,TestTimedeltas.test_to_timedelta_dt64_raises   s     QbffX]]9C0 		]]9C0 	/LLN  .	/ 	/	 		/ 	/s   B'$B B B)readonlyTFc                     t        j                  g t              }|r|j                  d       t	        |      }t	        g       }t        j                  ||       y )NdtypeF)write)nparrayobjectsetflagsr
   tmassert_index_equal)r   r   arrresultexpecteds        r   test_to_timedelta_readonlyz)TestTimedeltas.test_to_timedelta_readonly#   sI     hhr(LLuL%c"#
fh/    c                 T    t        ddg      }t        |      j                         sJ y )N )r
   r	   all)r   r)   s     r   test_to_timedelta_nullz%TestTimedeltas.test_to_timedelta_null-   s&    r2h'F|!!!r,   c                    t        t        j                  t        j                  dd      g            }t	        j
                  t        j                  t        j                  dd      g            }t        j                  ||       y )N   s)r
   r"   r#   timedelta64r   Indexr&   r'   r   r)   r*   s      r   %test_to_timedelta_same_np_timedelta64z4TestTimedeltas.test_to_timedelta_same_np_timedelta641   sX    bhhq#(>'?@A88BHHbnnQ&<%=>?
fh/r,   c                     t        t        d      t        dd      g      }t        t        ddg            }t        j                  ||       y )Nr2   days)r:   seconds1dz1days 00:00:01r   r   r
   r&   assert_series_equalr   r*   r)   s      r   test_to_timedelta_seriesz'TestTimedeltas.test_to_timedelta_series7   sB    9!,iQ.JKLfd,<%=>?
vx0r,   c                     t        t        j                  dd      t        j                  dd      j                  d      g      }t	        ddgd      }t        j                  ||       y )Nr   ns
   r3   m8[ns]unit)r   r"   r4   astyper
   r&   r'   r6   s      r   test_to_timedelta_unitsz&TestTimedeltas.test_to_timedelta_units=   sW    ^^At$bnnR&=&D&DX&NO
  Bc2
fh/r,   zdtype, unitint64r3   mhztimedelta64[s]ztimedelta64[D]Dc                     t        j                  dgdz  |      }t        ||      }|dk(  rdnd}t        t        j                  d|      gdz  |      }t        j                  ||       y )Nr2      r   rE   rI   rD   m8[s])r"   r#   r
   r   r4   r&   r'   )r   r    rF   r(   r)   	exp_dtyper*   s          r   test_to_timedelta_units_dtypesz-TestTimedeltas.test_to_timedelta_units_dtypesE   sc     hhsQwe,c- % 0Hg	!2>>!T#:";a"?yQ
fh/r,   c                    t        j                  t        j                  j                  dz   gd      }d}t        j                  t        |      5  t        |       d d d        t        j                  t        |      5  t        |       d d d        t        j                  t        |      5  t        j                  |d       d d d        y # 1 sw Y   txY w# 1 sw Y   QxY w# 1 sw Y   y xY w)Nr2   ztimedelta64[m]r   zPCannot convert -9223372036854775807 minutes to timedelta64\[s\] without overflowr   rO   )r"   r#   r   r   _valuer   r   r   r
   r   r   _from_sequence)r   r(   r   s      r   test_to_timedelta_oob_non_nanoz-TestTimedeltas.test_to_timedelta_oob_non_nanoW   s    hh)*2BC1 	 ]]/s; 		 ]]/s; 	 3	  ]]/s; 	>))#W=	> 	>	 		  	 	> 	>s$   C C/C(CC%(C1argrC      rN   errors)ignoreraisecoercez2ignore:errors='ignore' is deprecated:FutureWarningc                 ~    t        j                  t        d      5  t        ||       d d d        y # 1 sw Y   y xY w)Nz	1-d arrayr   rX   )r   r   r   r
   )r   rV   rX   s      r   test_to_timedelta_dataframez*TestTimedeltas.test_to_timedelta_dataframeg   s1     ]]9K8 	-V,	- 	- 	-s   3<c                     d}t        j                  t        |      5  t        dgd       d d d        y # 1 sw Y   y xY w)Nzerrors must be one ofr   fooneverr]   r   r   
ValueErrorr
   r   r   s     r    test_to_timedelta_invalid_errorsz/TestTimedeltas.test_to_timedelta_invalid_errorsq   s6    %]]:S1 	2%1	2 	2 	2s   6?r2   c                     d}t        j                  t        |      5  t        |d       d d d        y # 1 sw Y   y xY w)Nzinvalid unit abbreviation: foor   r`   rE   rb   )r   rV   r   s      r   test_to_timedelta_invalid_unitz-TestTimedeltas.test_to_timedelta_invalid_unitw   s6     /]]:S1 	*5)	* 	* 	*   5>c                     d}t        j                  t        |      5  t        t	        d             d d d        t        t	        d      d      t
        j                  u sJ y # 1 sw Y   3xY w)NzIValue must be Timedelta, string, integer, float, timedelta or convertibler   r2   )secondr[   r]   )r   r   rc   r
   r   r   r   rd   s     r   test_to_timedelta_timez%TestTimedeltas.test_to_timedelta_time~   s[     X 	 ]]:S1 	)Q(	)DN8<FFF	) 	)s   A&&A/c                     d}t        j                  t        |      5  t        ddg       d d d        y # 1 sw Y   y xY w)Nz*Could not convert 'foo' to NumPy timedeltar   r`   barrb   rd   s     r   test_to_timedelta_bad_valuez*TestTimedeltas.test_to_timedelta_bad_value   s6    :]]:S1 	)%(	) 	) 	)rh   c                    t        j                  t        t        j                  t        j                  g      t        ddgd             t        j                  t        dt        j                  dg      t        g dd             y )Nr`   rm   r[   r]   1 day1 min)rp   rm   rq   )r&   r'   r   r   r   r
   )r   s    r   "test_to_timedelta_bad_value_coercez1TestTimedeltas.test_to_timedelta_bad_value_coerce   sa    
BFFBFF+,%9	

 	GRVVW5628D	
r,   c                    d}d}t        j                  t        |      5  t        |d      }d d d        |k(  sJ ddg}t	        j
                  |t              }t        j                  t        |      5  t        |d      }d d d        t        j                  ||       t        j                  ddg      }t        j                  t        |      5  t        |d      }d d d        t        j                  ||       t        ddg      }t        j                  t        |      5  t        |d      }d d d        t        j                  ||       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   ExY w)Nerrors='ignore' is deprecatedappler   rY   r]   z1 daysr   )r&   assert_produces_warningFutureWarningr
   r"   r#   r$   assert_numpy_array_equalr   r5   r'   r   r>   )r   r   invalid_datar)   r*   s        r   'test_to_timedelta_invalid_errors_ignorez6TestTimedeltas.test_to_timedelta_invalid_errors_ignore   sZ   -''SA 	A!,x@F	Av%%%*88L7''SA 	A!,x@F	A
##Hf5xx( 34''SA 	A!,x@F	A
lF3w12''SA 	A!,x@F	A
|V4'	A 	A	A 	A
	A 	A
	A 	As/   E7E#E/)E;E #E,/E8;Fzval, errors)
)1MT)z1 MT)1YT)z1 YT)1yT)z1 yT)1mF)z1 mF)rp   F)2dayFc                     d}|r0t        j                  t        |      5  t        |       d d d        y t        |       y # 1 sw Y   y xY w)Nz=Units 'M', 'Y' and 'y' do not represent unambiguous timedeltar   rb   )r   valrX   r   s       r   !test_unambiguous_timedelta_valuesz0TestTimedeltas.test_unambiguous_timedelta_values   sG    $ Nz5 "S!" " 	" "s   AA
c                    t        t        j                  dd      g      }t        dg      j                  t              }t        j                  ||       t        t	        d      g      }t        j                  ||       y )Nr2   r3   00:00:01)r   r"   r4   r   r
   r&   r>   r?   s      r   test_to_timedelta_via_applyz*TestTimedeltas.test_to_timedelta_via_apply   sc    2>>!S123%++L9
vx0j123
vx0r,   c                    dt         j                  g}t        j                  d       5  t	        |      }d d d        t        t        j                  d      t         j                  g      }t        j                  |       y # 1 sw Y   OxY w)Nr   r2   )r;   )r   r   r&   rv   r
   r   	Timedeltar'   )r   valsr)   r*   s       r   +test_to_timedelta_inference_without_warningz:TestTimedeltas.test_to_timedelta_inference_without_warning   sm     BFF#''- 	(!$'F	( "2<<#:BFF"CD
fh/		( 	(s   BBc                    t        j                  d      }t        t        dt         j                  g            }t        t        j                  dd      |gt
        j                   d      }t        j                  ||       t        dt        j                  gd      }t        |      }t        j                  ||       y )Nr   r    ʚ;rB   rD   r   )
r"   r4   r
   r   nanr&   ENDIANr>   r   r   )r   timedelta_NaTactualr*   r   s        r   #test_to_timedelta_on_missing_valuesz2TestTimedeltas.test_to_timedelta_on_missing_values   s    u-fj"&&%9:;^^J-}=YYKv&
 	vx0j"&&):c"
vx0r,   r   c                     t        |      }|j                  t        j                  d      j	                  d      k(  sJ y )Nr   rI   r
   rS   r"   r4   rG   r   r   r   s      r   *test_to_timedelta_on_missing_values_scalarz9TestTimedeltas.test_to_timedelta_on_missing_values_scalar   s2    c"}}u 5 < <W EEEEr,   c                     t        |g      }|d   j                  t        j                  d      j	                  d      k(  sJ y )Nr   r   rI   r   r   s      r   (test_to_timedelta_on_missing_values_listz7TestTimedeltas.test_to_timedelta_on_missing_values_list   s:    se$ay2>>%#8#?#?#HHHHr,   zFloating point error)reasonc                     t        j                  ddd      dd  }t        |d      }t        j                  ddd	d
      }t        j                  |j
                  |       y )Nr   r2   gư>ir3   rE   i;r   i  rI   r   )r"   aranger
   r&   rx   asi8)r   r(   r)   expected_asi8s       r   test_to_timedelta_floatz&TestTimedeltas.test_to_timedelta_float   sQ     ii1d#CD)c,		)UDH
##FKK?r,   c                     t        j                  g dt              }t        |dd      }t        ddt        j
                  gd      }t        j                  ||       y )	Nr2   rW   errorr   rB   r[   rF   rX   r2   rW   rE   )r"   r#   r$   r
   r   r   r&   r'   )r   r(   r)   r*   s       r   %test_to_timedelta_coerce_strings_unitz4TestTimedeltas.test_to_timedelta_coerce_strings_unit   sF    hhf5cX>ArvvT:
fh/r,   c                     t        j                  g dt              }d}t        j                  t
        |      5  t        |dd      }d d d        t        j                  |       y # 1 sw Y    xY w)Nr   r   rt   r   rB   rY   r   )r"   r#   r$   r&   rv   rw   r
   rx   )r   r(   r   r)   s       r   %test_to_timedelta_ignore_strings_unitz4TestTimedeltas.test_to_timedelta_ignore_strings_unit  s^    hhf5-''SA 	C!#DBF	C
##FC0	C 	Cs   A))A2zexpected_val, result_valr9   Nc                     t        t        d      |g      }t        t        d|gd      d      }t        j                  ||       y )Nr2   r9   Int64r   r:   rE   r=   )r   expected_val
result_valr*   r)   s        r   &test_to_timedelta_nullable_int64_dtypez5TestTimedeltas.test_to_timedelta_nullable_int64_dtype  s?    
 9!,l;<fa_GD6R
vx0r,   )inputr*   ))z8:53:08.71800000001z8:53:08.718)8:53:08.718001r   )8:53:08.7180000001r   )z-8:53:08.71800000001z-8:53:08.718)z8:53:08.7180000089z8:53:08.718000008funcc                 L    t        j                  |      } ||      }||k(  sJ y )N)r   r   )r   r   r*   r   r)   s        r   &test_to_timedelta_precision_over_nanosz5TestTimedeltas.test_to_timedelta_precision_over_nanos  s)     <<)e!!!r,   c                 x   |j                         }t        j                  |      }d}t        j                  t
        |      5  t        |       d d d        |j                  d      }t        |      }t        |t        j                        sJ |j                  |j                  d      k(  sJ y # 1 sw Y   bxY w)NzYValue must be Timedelta, string, integer, float, timedelta or convertible, not datetime64r   rD   i8)to_datetime64r"   r#   r   r   rc   r
   view
isinstancer   r   rS   )r   fixed_now_tsdt64rV   r   arg2r)   s          r   test_to_timedelta_zerodimz(TestTimedeltas.test_to_timedelta_zerodim'  s    ))+hhtn- 	 ]]:S1 		 xx!d#&",,///}}		$///	 	s   B00B9c                     t        dt        j                  g|      }t        |      }t        t        j                  dd      t        j
                  g      }t        j                  ||       y )Nr2   r   rB   rE   )r   r   NAr
   r   r   r&   r>   )r   any_numeric_ea_dtyper   r)   r*   s        r   test_to_timedelta_numeric_eaz+TestTimedeltas.test_to_timedelta_numeric_ea8  sO    aZ';<c"2<<5rvv>?
vx0r,   c                 V    t        dd      }t        j                  d      }||k(  sJ y )NgUUUUUU?rK   rE   z0 days 00:19:59.999999998)r
   r   r   r6   s      r   test_to_timedelta_fractionz)TestTimedeltas.test_to_timedelta_fraction?  s+    gC0<< ;<!!!r,   )1__name__
__module____qualname__r   r   markparametrizer+   r0   r7   r@   rH   rQ   rU   r"   r   reshaper   	DataFramefilterwarningsr^   re   rg   rk   rn   rr   rz   r   r   r   r   r   r   r   r   r   xfailr   r   r   r   r   r   r   r
   r   r   r   r    r,   r   r   r      s   	/ [[Z$70 80"010 [[cNcNcNs#s#	
	0	0>  [[			"%%a+\R\\)"))B-:O:OPQST:U-VW [[X'DE[[ TU- V F
-
2 [[UaVQK0* 1*G)
	
54 [[	
		101 [[URVVRVVRUU$;<F =F [[URVVRVVRUU$;<I =I [[4x(>?@ @@01 [["iQ&7%;dD\$J11 [[	
	 [[VbllL%AB" C	"0"1"r,   r   c                     t        j                  d       t        ddg| j                          d      }t	        |      }t        ddgd      }t        j                  ||       y )Npyarrowr2   rW   z	[pyarrow]r   ztimedelta64[ns])r   importorskipr   lowerr
   r&   r>   )r   r   r)   r*   s       r   test_from_numeric_arrow_dtyper   E  s]    
	"
!Q"6"<"<">!?yI
JC#Fq!f$56H68,r,   rF   rB   msc                     t        j                  d       t        t        d      gd|  d      }t	        |      }t        j                  ||       y )Nr   r2   z	duration[z
][pyarrow]r   )r   r   r   r   r
   r&   r>   )rF   r*   r)   s      r   test_from_timedelta_arrow_dtyper   N  sG     	"y|nivZ,HIH(#F68,r,   )datetimer   r   numpyr"   r   pandas.compatr   pandas.errorsr   pandasr   r   r   r	   r
   pandas._testing_testingr&   pandas.core.arraysr   r   r   r   r   r   r   r,   r   <module>r      sh   
    .    -k" k"\	- $.- /-r,   