
    .i4                         d dl mZmZ d dlZd dlZd dlmZmZ d dl	m
Z
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j2                  j5                  d
ddg      d        Zy)    )time	timedeltaN)IS64WASM)OutOfBoundsTimedeltaPandas4Warning)SeriesTimedeltaIndexisnato_timedelta)TimedeltaArrayc            	          e Zd Zd Zd Zd Zd Zd Zd Z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d ej(                  g      ej                  j!                  dddg      d               Zd Zej                  j!                  dddgdg      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jB                  ejD                  g      d+        Z#ej                  j!                  d*ej@                  ejB                  ejD                  g      d,        Z$ej                  jK                  e&d-.      ej                  jO                  e( d/.      d0               Z)d1 Z*ej                  j!                  d2 e+d3      dgd4d4gg      d5        Z,ej                  j!                  d6g d7      ej                  j!                  d8ejZ                  e.g      d9               Z/d: Z0d; Z1d< Z2d= Z3d> Z4y4)?TestTimedeltasc                 h    t        ddg      }t        ddgd      }t        j                  ||       y )Nz1 days 06:05:01.00003z15.5usl   07E	 i<  m8[ns]dtype)r   r
   tmassert_index_equalselfresultexpecteds      b/var/www/app/trading-bot/venv/lib/python3.12/site-packages/pandas/tests/tools/test_to_timedelta.py$test_to_timedelta_mixed_unit_stringsz3TestTimedeltas.test_to_timedelta_mixed_unit_strings   s4    6AB!#6"?xP
fh/    c                 x    t        d g      }|j                  dk(  sJ t        d g      }|j                  dk(  sJ y )Ns)r   unitr
   r   r   s     r   test_to_timedelta_all_nat_unitz-TestTimedeltas.test_to_timedelta_all_nat_unit%   s>    tf%{{c!!!'{{c!!!r   c                 $   t        j                  dd      }d}t        j                  t        |      5  t        |       d d d        t        j                  t        |      5  t        j                  |       d d d        t        j                  t        |      5  t        |g       d d d        t        j                  t        |      5  t        |g       d d d        y # 1 sw Y   xY w# 1 sw Y   vxY w# 1 sw Y   RxY w# 1 sw Y   y xY w)N   MzUnit M is not supported.match)	nptimedelta64pytestraises
ValueErrorr   pd	Timedeltar
   )r   objmsgs      r   test_to_timedelta_month_raisesz-TestTimedeltas.test_to_timedelta_month_raises-   s    nnQ$(]]:S1 		]]:S1 	LL	]]:S1 	 #	 ]]:S1 	"C5!	" 	"	 		 		  	 	" 	"s/   C"#C.C:D"C+.C7:DDc                 >    t        d       t        j                  u sJ y N)r   r,   NaTr   s    r   test_to_timedelta_nonez%TestTimedeltas.test_to_timedelta_none:   s    D!RVV+++r   c                 \   d}t        t        j                  gd      }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\]zM8[ns]r   r%   )	r	   r,   r3   r)   r*   	TypeErrorr   to_frameapply)r   r/   sers      r   test_to_timedelta_dt64_raisesz,TestTimedeltas.test_to_timedelta_dt64_raises>   s     QbffXX.]]9C0 		]]9C0 	/LLN  .	/ 	/	 		/ 	/s   B)$B"B"B+c                     t        j                  g t              }|j                  |       t	        |      }t	        g       }t        j                  ||       y )Nr   )write)r'   arrayobjectsetflagsr   r   r   )r   writablearrr   r   s        r   test_to_timedelta_readonlyz)TestTimedeltas.test_to_timedelta_readonlyI   sD    hhr(8$c"#
fh/r   c                 T    t        ddg      }t        |      j                         sJ y )N )r   r   allr    s     r   test_to_timedelta_nullz%TestTimedeltas.test_to_timedelta_nullQ   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 )Nr#   r   )r   r'   r>   r(   r,   Indexr   r   r   s      r   %test_to_timedelta_same_np_timedelta64z4TestTimedeltas.test_to_timedelta_same_np_timedelta64U   sX    bhhq#(>'?@A88BHHbnnQ&<%=>?
fh/r   c                    t        t        d      t        dd      gd      }d}t        j                  t        |      5  t        t        dd	g            }d d d        t        j                  |       y # 1 sw Y    xY w)
Nr#   days)rM   secondsm8[us]r   z:'d' is deprecated and will be removed in a future version.r%   1dz1days 00:00:01)r	   r   r   assert_produces_warningr   r   assert_series_equal)r   r   r/   r   s       r   test_to_timedelta_seriesz'TestTimedeltas.test_to_timedelta_series[   sx    A	q! <=X
 K''cB 	D!&$0@)A"BCF	D
vx0	D 	Ds   A88Bc                     t        t        j                  dd      t        j                  dd      j                  d      g      }t	        ddgd      j                  d      }t        j                  ||       y )Nr   ns
   r   r   r   )r
   r'   r(   astyper   as_unitr   r   r   s      r   test_to_timedelta_unitsz&TestTimedeltas.test_to_timedelta_unitsf   sb    ^^At$bnnR&=&D&DX&NO
  Bc2::4@
fh/r   c                     t        t        j                  ddg      d      }t        ddgdd       }t	        j
                  ||       y )	Ng      ?   mrW   z0 days 00:00:30z0 days 00:02:00timedelta64[ns])r   freq)r   r'   r>   r
   r   r   r   s      r   test_to_timedelta_mixed_dtypez,TestTimedeltas.test_to_timedelta_mixed_dtypen   sF    bhhQx0s;! 12:KRV
 	fh/r   zdtype, unitint64r   r]   hztimedelta64[s]ztimedelta64[D]Dc                     t        j                  dgdz  |      }t        ||      }d}t        t        j                  d|      gdz  |      }t        j                  ||       y )Nr#      r   rW   m8[s])r'   r>   r   r
   r(   r   r   )r   r   r   rB   r   	exp_dtyper   s          r   test_to_timedelta_units_dtypesz-TestTimedeltas.test_to_timedelta_units_dtypesv   sZ     hhsQwe,c-	!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)Nr#   ztimedelta64[m]r   zPCannot convert -9223372036854775807 minutes to timedelta64\[s\] without overflowr%   rf   )r'   r>   r,   r3   _valuer)   r*   r   r   r
   r   _from_sequence)r   rB   r/   s      r   test_to_timedelta_oob_non_nanoz-TestTimedeltas.test_to_timedelta_oob_non_nano   s    hh)*2BC1 	 ]]/s; 		 ]]/s; 	 3	  ]]/s; 	>))#W=	> 	>	 		  	 	> 	>s$   C C/C(CC%(C1boxc                     | S r2    )xs    r   <lambda>zTestTimedeltas.<lambda>   s    q r   errorsraisecoercec                      |t        j                  d      j                  dd            }t        j                  t
        d      5  t        ||       d d d        y # 1 sw Y   y xY w)NrV   r\   re   z	1-d arrayr%   rr   )r'   arangereshaper)   r*   r7   r   )r   rm   rr   args       r   test_to_timedelta_dataframez*TestTimedeltas.test_to_timedelta_dataframe   sP     "))B-''1-.]]9K8 	-V,	- 	- 	-s   AA'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neverrv   r)   r*   r+   r   r   r/   s     r    test_to_timedelta_invalid_errorsz/TestTimedeltas.test_to_timedelta_invalid_errors   s6    %]]:S1 	2%1	2 	2 	2s   6?ry   r#   r\   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|   rW   r~   )r   ry   r/   s      r   test_to_timedelta_invalid_unitz-TestTimedeltas.test_to_timedelta_invalid_unit   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%   r#   )secondrt   rv   )r)   r*   r+   r   r   r,   r3   r   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|   barr~   r   s     r   test_to_timedelta_bad_valuez*TestTimedeltas.test_to_timedelta_bad_value   s6    :]]:S1 	)%(	) 	) 	)r   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|   r   rt   rv   1 day1 min)r   r   r   )r   r   r
   r,   r3   r   r4   s    r   "test_to_timedelta_bad_value_coercez1TestTimedeltas.test_to_timedelta_bad_value_coerce   sa    
BFFBFF+,%9	

 	GRVVW5628D	
r   zval, errors)
)1MT)z1 MT)1YT)z1 YT)1yT)z1 yT)1mF)z1 mF)r   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%   r~   )r   valrr   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d      }t        dg      j                  t              }t        j                  ||       t        t	        d      g      }t        j                  ||       y )Nr#   r   rO   r   00:00:01)r	   r'   r(   r9   r   r   rR   )r   r   r   s      r   test_to_timedelta_via_applyz*TestTimedeltas.test_to_timedelta_via_apply   se    2>>!S12(C%++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d      }t        j                  |       y # 1 sw Y   QxY w)Nr   r#   )rN   rO   r   )r,   r3   r   rQ   r   r
   r-   r   )r   valsr   r   s       r   +test_to_timedelta_inference_without_warningz:TestTimedeltas.test_to_timedelta_inference_without_warning   so     BFF#''- 	(!$'F	( "2<<#:BFF"C8T
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 )Nr3   r    ʚ;rU   rO   r   )
r'   r(   r   r	   nanr   ENDIANrR   r,   r3   )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 )Nr3   ra   r   rj   r'   r(   rX   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   r3   ra   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No fp exception support in WASM)reasonzFloating point errorc                     t        j                  ddd      dd  }t        |d      }t        j                  ddd	d
      }t        j                  |j
                  |       y )Nr   r#   gư>ir   rW   i;r   i  ra   r   )r'   rw   r   r   assert_numpy_array_equalasi8)r   rB   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)r#   r\   errorr   rU   rt   )r   rr   r#   r\   rW   )r'   r>   r?   r   r,   r3   r   r   )r   rB   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   zexpected_val, result_valrL   Nc                     t        t        d      |gd      }t        t        d|gd      d      }t        j                  ||       y )Nr#   rL   rf   r   Int64rM   rW   )r	   r   r   r   rR   )r   expected_val
result_valr   r   s        r   &test_to_timedelta_nullable_int64_dtypez5TestTimedeltas.test_to_timedelta_nullable_int64_dtype  sA    
 9!,l;7K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 r2   )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%   r   i8)to_datetime64r'   r>   r)   r*   r+   r   view
isinstancer,   r-   rj   )r   fixed_now_tsdt64ry   r/   arg2r   s          r   test_to_timedelta_zerodimz(TestTimedeltas.test_to_timedelta_zerodim6  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 )Nr#   r   rU   rW   )r	   r,   NAr   r-   r3   r   rR   )r   any_numeric_ea_dtyper:   r   r   s        r   test_to_timedelta_numeric_eaz+TestTimedeltas.test_to_timedelta_numeric_eaG  sO    aZ';<c"2<<5rvv>?
vx0r   c                 V    t        dd      }t        j                  d      }||k(  sJ y )NgUUUUUU?rb   rW   z0 days 00:19:59.999999998)r   r,   r-   r   s      r   test_to_timedelta_fractionz)TestTimedeltas.test_to_timedelta_fractionN  s+    gC0<< ;<!!!r   c                 "   t        j                  dgt              }t        |d      }t        dgd      }t	        j
                  ||       |j                  t         j                        }t        |d      }t	        j
                  ||       y )Ng     F@r   r   rW   -   )r'   r>   r?   r   r   r   rX   float64)r   rB   r   r   arr2result2s         r   #test_to_timedelta_unit_round_floatsz2TestTimedeltas.test_to_timedelta_unit_round_floatsS  sn     hhvV,c,3/
fh/zz"**%t#.
gx0r   c                     t        j                  dgt              }t        |d      }|j                  dk(  sJ |j                  t         j                        }t        |d      }|j                  dk(  sJ y )Ng     F@r   r   rW   rU   )r'   r>   r?   r   r   rX   r   )r   rB   r   r   r   s        r   'test_to_timedelta_unit_non_round_floatsz6TestTimedeltas.test_to_timedelta_unit_non_round_floats_  sb    hhvV,c,{{d"""zz"**%t#.||t###r   )5__name__
__module____qualname__r   r!   r0   r5   r;   rC   rG   rJ   rS   rZ   r`   r)   markparametrizerh   rl   r,   	DataFramerz   r   r   r   r   r   r   r   r   r   r'   r   r3   r   r   r   skipifr   xfailr   r   r   r   r   r-   r   r   r   r   r   r   r   ro   r   r   r   r      s   0"",	/0"0	100 [[cNcNcNs#s#	
	0	0>  [[U[",,$?@[[X':;- < A-2 [[UaVQK0* 1*G)
	
 [[	
		101 [[URVVRVVRUU$;<F =F [[URVVRVVRUU$;<I =I [[%FG[[4x(>?@ @ H@0 [["iQ&7%;dD\$J11 [[	
	 [[VbllL%AB" C	"0"1"

1$r   r   c                     t        j                  d       t        ddg| j                          d      }t	        |      }t        ddgd      }t        j                  ||       y )Npyarrowr#   r\   z	[pyarrow]r   r^   )r)   importorskipr	   lowerr   r   rR   )r   r:   r   r   s       r   test_from_numeric_arrow_dtyper   j  s]    
	"
!Q"6"<"<">!?yI
JC#Fq!f$56H68,r   r   rU   msc                     t        j                  d       t        t        d      gd|  d      }t	        |      }t        j                  ||       y )Nr   r#   z	duration[z
][pyarrow]r   )r)   r   r	   r   r   r   rR   )r   r   r   s      r   test_from_timedelta_arrow_dtyper   s  sG     	"y|nivZ,HIH(#F68,r   )datetimer   r   numpyr'   r)   pandas.compatr   r   pandas.errorsr   r   pandasr,   r	   r
   r   r   pandas._testing_testingr   pandas.core.arraysr   r   r   r   r   r   ro   r   r   <module>r      sn   
  
    -J$ J$Z
- $.- /-r   