o
    jh0l                     @   s  d dl Z d dlZd dlm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 ejg dddd Zejdd	gdd
d Zejdd egddgddd Zejddgddd Zejdd	gddd Zejdd ejfdd ejfdd ejfgddd Zejdi dejifd d!d"dejifgd#d$ Zejd%d&d'gd(d) Zejd*g d+g d,g d-gd.d/ Zejd0g d1d2fg d3d4fgd5d6 Z ejd7d8g d1fd d9d:ej!gfgd;d< Z"ejd=d>d8g d?fd d@dAej!gfgdBdC Z#dDdE Z$ejdFg d+dejifg d,i fg d-i fgdGdH Z%ejdIddJii gdKdL Z&ejdMdNdNdOggdPdQ Z'ejdRe (dSd@ge (dTdUgdSd@gdTdUgfe)e (dSd@gdUgdSd@gdUgfgdVdW Z*dXdY Z+dZd[ Z,ejd\g d]d^d_ Z-d`da Z.dbdc Z/ddde Z0ejdfdgd8dhd fd did fgdjdk Z1ejd*g dld@ej!dmej!ggdndo Z2ejdpg dqej)g dldrdsfg dte)g dufgdvdw Z3dxdy Z4dzd{ Z5d|d} Z6ejd~dd8e	ddgd@dgfd e	ej!d@ej!gfgdd Z7dd Z8dd Z9ejd*g dg dlej)g dddsgejdi ejfddiejfddie:ej;j<fddie:ej=d d  fgdd Z>ejdd!dgejd*g dg dlej)g dddsgdd Z?dd Z@dd ZAejdg dejdg dej)g dejBdsfg dej)g dejBdsfgdd ZCejdd!ejDfdejDfdejEfgdd ZFejddd!eejjGeejjHgfdd!eejDjGeejDjHgfdd!eejIjGeejIjHgfdrd!eejjGeejjHgfddeejJjGeejJjHgfddeejEjGeejEjHgfddeejKjGeejKjHgfddeejLjGeejLjHgfdd!eejjGeejjHd9 gfdd!eejDjGeejDjHd9 gfdrd!eejIjGeejIjHd9 gfdd!eejjGd9 eejDjHgfdd!eejDjGd9 eejIjHgfdrd!eejIjGd9 eejjHgfddeejJjGeejJjHd9 gfddeejEjGeejEjHd9 gfddeejKjGeejKjHd9 gfgdd ZMdd ZNejde	d dge	d dgejLdsfgdd ZOejdRg dddej!ej!dgfg dddej!gfgdd ZPejd=d8e	g dfdgdd ZQejdg dejdg dddĄ ZRddƄ ZSejdg dȢddʄ ZTejdg d̢e	d9dej!gddsfg dqe	g dlddsfg d΢e	g dlddsfg dϢe	g dТddsfg dҢe	d9ej!dgddsfg dԢe	g dТddsfgddք ZUdd؄ ZVddڄ ZWejdd9d9gdd!dfd@ejXgdd!dfd@dgdd!dfd9ejXgdd!dfddgdd!dfd9d9gdd!dfeejjHd9 d9gdd!dfd9d9gdddfd@d@gdddfd@dgdddfd9ejXgdddfddgdddfeejLjHd9 d9gdddfd9d9gdddfd@d@gdddfd@dgdddfd9ejXgdddfddgdddfddgdddfd9d9gdddfd9dgdddfd9d9gdddfd9dgdddffdd ZYdd ZZdd Z[ejd\ddgdd Z\ejdg ddd Z]ejdg ddd Z^ejdg ddd Z_ejdddgddggdd  Z`ejdg ddd Zadd Zbdd ZcdS (      N)iinfo)	DataFrameIndexSeries
to_numeric)Nignoreraisecoerce)paramsc                 C      | j S Nparamrequest r   c/var/www/html/smartRegister/venv/lib/python3.10/site-packages/pandas/tests/tools/test_to_numeric.pyerrors      r   TFc                 C   r   r   r   r   r   r   r   signed   r   r   c                 C   s   | S r   r   xr   r   r   <lambda>   s    r   identitystr)r
   idsc                 C   r   r   r   r   r   r   r   	transform   r   r   l   N"2) l      Fx:^V c                 C   r   r   r   r   r   r   r   	large_val    r   r   c                 C   r   r   r   r   r   r   r   multiple_elts%   r   r   c                 C      t | ddS )Nidxname)r   r   r   r   r   r   ,       c                 C   r   )Nserr!   )r   r   r   r   r   r   -   r#   c                 C   s   t t| jS r   )nparrayr   valuesr   r   r   r   r   .   s    c                 C   r   r   r   r   r   r   r   transform_assert_equal*   s   r(   zinput_kwargs,result_kwargsdtyper	   integerr   downcastc                 C   s<   t g td}t|fi | }t g fi |}t|| d S Nr)   r   objectr   tmassert_series_equal)input_kwargsresult_kwargsr$   resultexpectedr   r   r   
test_empty5   s   	r7   last_val7   c                 C   s2   t dd| g}t|}t g d}t|| d S )N1-3.14   Q	r:   r   r   r1   r2   )r8   r$   r5   r6   r   r   r   test_seriesE   s   rA   data)r>            )      ?      @      @g      @)TFTTc                 C   s*   t | tddd}t|}t|| d S )NABCDEFG)indexr"   )r   listr   r1   r2   )rB   r$   r5   r   r   r   test_series_numericN   s   
rM   zdata,msgr>   r?   apple,Unable to parse string "apple" at position 2)oranger>   r?   rO   z-Unable to parse string "orange" at position 0c                 C   sH   t | }tjt|d t|dd W d    d S 1 sw   Y  d S )Nmatchr   r   r   pytestraises
ValueErrorr   )rB   msgr$   r   r   r   
test_error^   s   "rZ   zerrors,exp_datar   r>   r?   c                 C   s0   t g d}t|| d}t |}t|| d S )NrN   rT   r@   )r   exp_datar$   r5   r6   r   r   r   test_ignore_erroro   s   r\   z
errors,exp)r   rP   TFrO   rF   g        c                 C   sz   t g d}t|tr+tjt|d t|| d W d    d S 1 s$w   Y  d S t|| d}t |}t|| d S )Nr]   rR   rT   	r   
isinstancer   rV   rW   rX   r   r1   r2   )r   expr$   r5   r6   r   r   r   test_bool_handlingz   s   

"ra   c                  C   s.   g d} t | }tg d}t|| d S )N)r;   r<   r9   r=   r   r%   r&   r1   assert_numpy_array_equal)r$   resr6   r   r   r   	test_list   s   re   zdata,arr_kwargsc                 C   s*   t | }tj| fi |}t|| d S r   rb   )rB   
arr_kwargsr5   r6   r   r   r   test_list_numeric   s   
rg   kwargsOc                 C   s8   g d}t |fi | }t|}t |}t|| d S )Nr=   r@   )rh   rB   r$   r5   r6   r   r   r   test_numeric   s
   rj   columnsabc                 C   sl   t dtdtddgg dd}t ddtjdgg dd}| }||  t|| < t	|| d S )Ng333333?Q	@infinityz0.1)rF   g       @rG   rH   rl   rm   皙?)
r   decimalDecimalr%   infcopyapplyr   r1   assert_frame_equal)rk   dfr6   df_copyr   r   r   test_numeric_df_columns   s   rz   zdata,exp_datarn   g?rq   c                 C   s:   t d| i}|d t|d< t d|i}t|| d S )Nrl   )r   rv   r   r1   rw   )rB   r[   rx   r6   r   r   r   test_numeric_embedded_arr_likes   s   r{   c                  C   s<   t g d} t| dd}t tjtjtjg}t|| d S )N)rl   rm   cr	   rT   )r   r   r%   nanr1   r2   )r$   r5   r6   r   r   r   test_all_nan   s   r~   c                 C   sn   t g dg dd}| d urd| ini }tjtdd t|fi | W d    d S 1 s0w   Y  d S )Nr=   )456rp   r   z	1-d arrayrR   )r   rV   rW   	TypeErrorr   )r   rx   rh   r   r   r   test_type_check   s
   "r   val)r>   皙?i!N  c                 C   s*   |r|  n| } t || t| ksJ d S r   r   float)r   r   r   r   r   r   test_scalar   s   r   c           	      C   s   |d urd|ini }|r|  n| }||}t |t}|rD|dv rDd}tjt|d t|fi | W d    d S 1 s=w   Y  d S |dkrN|rNt|n|}tt|fi || d S )Nr   Nr   #Integer out of range. at position 0rR   r	   )	r_   r   rV   rW   rX   r   r   r1   assert_almost_equal)	r   r   r   r   rh   r   val_is_stringrY   r6   r   r   r   test_really_large_scalar   s   
"r   c                 C   s6  |d urd|ini }|r|  n| }||}d}|g||g  }t |t}	|dk}
|dv rY|	s0|rY|	r5d}nd}tjt|d t|fi | W d    d S 1 sRw   Y  d S t|fi |}|
ri|	rit|n|}|g}|r|
r{|tj	 t}n|| t
}nt |ttfrtnt
}t|tj||d d S )	Nr   stringr	   r   r   z-Unable to parse string "string" at position 1rR   r.   )r_   r   rV   rW   rX   r   r   appendr%   r}   r0   intr1   r   r&   )r   r   r   r   r   rh   r   	extra_eltarrr   coercingrY   r5   exp_valr6   	exp_dtyper   r   r   test_really_large_in_arr  s2   
"
r   c                 C   s   |d urd|ini }t |r|  n| g}|r|d|  |dv rKt|}d| }tjt|d t|fi | W d    d S 1 sDw   Y  d S t|fi |}|dkradd |D }	t}
n|}	t}
t	
|tj|	|
d	 d S )
Nr   r   r   z"Integer out of range. at position rR   r	   c                 S   s   g | ]}t |qS r   )r   ).0ir   r   r   
<listcomp>B  s    z7test_really_large_in_arr_consistent.<locals>.<listcomp>r.   )r   insertr   rV   rW   rX   r   r   r0   r1   r   r%   r&   )r   r   r   r   rh   r   rK   rY   r5   r6   r   r   r   r   #test_really_large_in_arr_consistent-  s"   
"r   zerrors,checker)r   z+Unable to parse string "fail" at position 0c                 C   s   | dkS )Nfailr   r   r   r   r   r   O  s    c                 C   s
   t | S r   )r%   isnanr   r   r   r   r   P  s   
 c                 C   sf   d}t |tr'tjt|d t|| d W d    d S 1 s w   Y  d S |t|| ds1J d S )Nr   rR   rT   )r_   r   rV   rW   rX   r   )r   checkerscalarr   r   r   test_scalar_failK  s   	
"r   r>      rC   rC   c                 C   s&   |\}}|| } t | }|||  d S r   r   )rB   r(   r   assert_equalr5   r   r   r   test_numeric_dtypes]  s   r   zdata,exp)r;   23int64r.   )z1.5z2.7z3.4)      ?g@g333333@c                 C   s*   |\}}t || }||}||| d S r   r   )rB   r`   r(   r   r   r5   r6   r   r   r   test_strf  s   r   c                 C   s<   |\}}t jdd| d}t||}||j}||| d S )N20130101rC   )periodstz)pd
date_ranger   asi8)tz_naive_fixturer(   r   r   r    r5   r6   r   r   r   test_datetime_likeu  
   
r   c                 C   s<   | \}}t jdddd}t||}||j}||| d S )Nz1 daysrC   D)r   freq)r   timedelta_ranger   r   )r(   r   r   r    r5   r6   r   r   r   test_timedelta~  r   r   c                 C   sb   |\}}t jddddd}||}t|ts!| jtjjdd t	|}||j
}||| d S )Nz2011-01rC   M )r   r   r"   z)Missing PeriodDtype support in to_numeric)reason)r   period_ranger_   r   node
add_markerrV   markxfailr   r   )r   r(   r   r   r    inpr5   r6   r   r   r   test_period  s   

r   zerrors,expected)r   z!Invalid object type at position 0      $@r   rO   c                 C   sx   t ddgddg}t|tr.tjt|d t|| d W d    d S 1 s'w   Y  d S t|| d}t|| d S )Nr   r   rF   rO   rR   rT   )	r   r_   r   rV   rW   r   r   r1   r2   )r   r6   r$   r5   r   r   r   test_non_hashable  s   

"r   c                  C   P   g d} d}d}t jt|d t| |d W d    d S 1 s!w   Y  d S )Nr;   r   rC   zunsigned-integerz#invalid downcasting method providedrR   r,   rV   rW   rX   r   )rB   invalid_downcastrY   r   r   r   test_downcast_invalid_cast     "r   c                  C   r   )Nr   invalidzinvalid error value specifiedrR   rT   r   )rB   invalid_error_valuerY   r   r   r   test_errors_invalid_value  r   r   r   )z
1970-01-02z
1970-01-03z
1970-01-04zdatetime64[D]zkwargs,exp_dtyper,   r   unsignedUnsignedIntegerc                 C   s2   t | fi |}tjg d|d}t|| d S )Nr   r.   rb   )rB   rh   r   r5   r6   r   r   r   test_downcast_basic  s   r   signed_downcastc                 C   sB   t t jd d }t jg d|d}t| |d}t|| d S )NIntegerr   r   r.   r   )r%   r)   	typecodesr&   r   r1   rc   )rB   r   smallest_int_dtyper6   rd   r   r   r   test_signed_downcast  s   r   c                  C   s4   g d} t j| td}t| ddd}t|| d S )N)foor   rC   r.   r   r   r+   )r%   r&   r0   r   r1   rc   rB   r6   rd   r   r   r   !test_ignore_downcast_invalid_data  s   r   c                  C   s8   g d} t jg dt jd}t| dd}t|| d S )N)z-1r   rC   )r   rC   r.   r   r   )r%   r&   r   r   r1   rc   r   r   r   r   $test_ignore_downcast_neg_to_unsigned  s   r   )r*   r   r   zdata,expected)z1.1r   rC   )r   r   rC   )g     @i N  i  gR@iP  g     j@c                 C   s   t | |d}t|| d S Nr   )r   r1   rc   )rB   r6   r,   rd   r   r   r   )test_ignore_downcast_cannot_convert_float   s   r   zdowncast,expected_dtypec                 C   s6   g d}t jg d|d}t|| d}t|| d S )N)256    )   r   r   r.   r   )r%   r&   r   r1   rc   )r,   expected_dtyperB   r6   rd   r   r   r   test_downcast_not8bit  s   r   zdtype,downcast,min_maxint8int16int32uint8uint16uint32uint64c                 C   s"   t t||d}|j| ksJ d S r   )r   r   r)   )r)   r,   min_maxseriesr   r   r   test_downcast_limits!  s   r   c                  C   s@   t dttjjtjgtjd} t| dd}| j|jksJ d S )Ng     pAr.   r   r   )r   r%   finfofloat64maxr}   r   r)   )r   r5   r   r   r    test_downcast_float64_to_float32=  s    r   zser,expectedl            c                 C   s   t | dd}t|| d S )Nr   r   )r   r1   r2   )r$   r6   r5   r   r   r   test_downcast_uint64E  s   r   )   ,  r   NaN     p;6$ r   r   r   12345678901234567890
1234567890ITEMl   
>V3&Z
 iIc                 C   s,   t t| dd}t|td}t|| d S )Nr	   rT   r.   )r   r   r   r1   r2   )rB   r[   r5   r6   r   r   r   test_coerce_uint64_conflictW  s   r   )r   Unable to parse stringc                 C   sr   t g d}t|tr+tjt|d t|| d W d    d S 1 s$w   Y  d S t|| d}t|| d S )Nr   rR   rT   r^   )r   r`   r$   r5   r   r   r   test_non_coerce_uint64_conflictn  s   
"r   dc1)r*   r   r   dc2c                 C   s$   t jtg | dtg |ddd d S )Nr   F)check_dtype)r1   rc   r   )r   r   r   r   r   test_downcast_empty  s
   


r   c                  C   sN   t ddd} t| sJ tddtjg}t tg ddd} t| | d S )Nr   r	   rT       @   )3264r   )r   r%   r   r   r}   r1   r2   )r5   r$   r   r   r   ,test_failure_to_convert_uint64_string_to_NaN  s
   r  strrep).z243.164z245.968z249.585z259.745z265.742z272.567z279.196z280.366z275.034z271.351z272.889z270.627z280.828z290.383z308.153z319.945z336.0z344.09z351.385z356.178z359.82z361.03z367.701z380.812z387.98z391.749z391.171z385.97z385.345z386.121z390.996z399.734z413.073z421.532z430.221z437.092z439.746z446.01z451.191z460.463z469.779z472.025z479.49z474.864z467.54z471.978c                 C   s   t | }|t| ksJ d S r   r   )r  r5   r   r   r   test_precision_float_conversion  s   5r  zvalues, expected)r;   r   NInt64)r;   r   rC   )r;   r         @)r>   r   r	  Float64)r;   Nr	  r	  )r;   r   z3.5c                 C   s$   t | |d}t|}t|| d S r-   r@   )r'   nullable_string_dtyper6   sr5   r   r   r   $test_to_numeric_from_nullable_string  s   r  c                 C   sB   ddg}t || d}t|dd}t tjdgdd}t|| d S )Nrl   r;   r.   r	   rT   r>   r  )r   r   r   NAr1   r2   )r  r'   r$   r5   r6   r   r   r   +test_to_numeric_from_nullable_string_coerce  s
   r  c                 C   s8   ddg}t || d}| }t|dd}t|| d S )Nrl   r;   r.   r   rT   )r   ru   r   r1   r2   )r  r'   r$   r6   r5   r   r   r   +test_to_numeric_from_nullable_string_ignore  s
   r  z+data, input_dtype, downcast, expected_dtypeInt8r   i  Int16Float32iUInt64UInt8r   Int32c                 C   s8   t j| |d}t||d}t j| |d}t|| d S )Nr.   r   )r   r&   r   r1   assert_extension_array_equal)rB   input_dtyper,   r   r   r5   r6   r   r   r   test_downcast_nullable_numeric  s   r  c                  C   s^   t jddt jgdd} t| dd}t jddt jgdd}t|| t j| d< t|| d S )Nr>   r   r  r.   r*   r   r  )r   r&   r  r   r1   r  )r   r5   r6   r   r   r   %test_downcast_nullable_mask_is_copied  s   
r  c                  C   s"   t d} td}| |ksJ d S )Nz1.7e+308gv;w0B)r   r%   r   )r5   r6   r   r   r   #test_to_numeric_scientific_notation'  s   
r  g  PeBg      Gc                 C   s&   t | g}t|dd}t|| d S )Nr   r   r@   )r   r6   r5   r   r   r   4test_to_numeric_large_float_not_downcast_to_float_32.  s   
r  z
val, dtype)r>   r  r   r
  Tbooleanc                 C   s8   t | gtd}t|dd}t | g|d}t|| d S )Nr.   numpy_nullabledtype_backendr/   )r   r)   r$   r5   r6   r   r   r   test_to_numeric_dtype_backend6  s   r$  )r  r  r  )r>   int64[pyarrow])r   float64[pyarrow])Tbool[pyarrow]c                 C   sZ   d|v rt d d}nd}t| d gtd}t||d}t| tjg|d}t|| d S )Npyarrowr!  r.   r"  	rV   importorskipr   r0   r   r   r  r1   r2   )r   r)   r#  r$   r5   r6   r   r   r    test_to_numeric_dtype_backend_naA  s   
r+  zval, dtype, downcast))r>   r  r*   )r   r  r   )r>   r  r   )r>   int8[pyarrow]r*   )r   zfloat[pyarrow]r   )r>   r,  r   c                 C   s\   d|v rt d d}nd}t| d gtd}t|||d}t| tjg|d}t|| d S )Nr(  r!  r.   r#  r,   r)  )r   r)   r,   r#  r$   r5   r6   r   r   r   )test_to_numeric_dtype_backend_downcastingY  s   
r.  zsmaller, dtype_backendr!  zuint8[pyarrow]r(  c                 C   sT   |dkr	t d tdtjgdd}t||dd}tdtjg| d}t|| d S )Nr(  r>   r  r.   r   r-  rV   r*  r   r   r  r   r1   r2   )smallerr#  r$   r5   r6   r   r   r   .test_to_numeric_dtype_backend_downcasting_uintq  s   
r1  )r  r  r
  r   r%  zuint64[pyarrow]r&  r'  c                 C   sR   d| v r	t d tdtjg| d}t|dd}tdtjg| d}t|| d S )Nr(  r>   r.   r!  r"  r/  )r)   r$   r5   r6   r   r   r   .test_to_numeric_dtype_backend_already_nullable  s   
r2  c                 C   s   t g d}| }tjtdd t|| d W d    n1 s"w   Y  t|| dd}t|| t|| dd}| dkrBd	}nd
}t tj	tj	tj	g|d}t|| d S )N)rl   rm   r   r   rR   r"  r   )r#  r   r	   r(  zdouble[pyarrow]r
  r.   )
r   ru   rV   rW   rX   r   r1   r2   r%   r}   )r#  r$   r6   r5   r)   r   r   r   #test_to_numeric_dtype_backend_error  s   r3  c                  C   sP   t g d} d}tjt|d t| dd W d    d S 1 s!w   Y  d S )Nr   zPdtype_backend numpy is invalid, only 'numpy_nullable' and 'pyarrow' are allowed.rR   numpyr"  rU   )r$   rY   r   r   r   test_invalid_dtype_backend  s   "r5  )drr   r4  r%   r   rV   pandasr   r   r   r   r   pandas._testing_testingr1   fixturer   r   r   r   r   r   assert_index_equalr2   rc   r(   r   parametrizer   r   r7   rA   rM   rZ   r}   r\   ra   re   rg   rj   rz   rs   r&   r{   r~   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r)   float32charr   r   r   r   r   r   r   r   r   r   minr   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r  r  r  r  r  r  r$  r+  r.  r1  r2  r3  r5  r   r   r   r   <module>   sV   






	

	





	


	


	"

	
'


 


		


	


	         


		






3
		






