o
    dn                     @   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
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 Z0ddde Z1ejdfdgd8dhd fd did fgdjdk Z2ejd*g dld@ej"dmej"ggdndo Z3ejdpg dqej*g dldrdsfg dte*g dufgdvdw Z4dxdy Z5dzd{ Z6d|d} Z7ejd~dd8e
ddgd@dgfd e
ej"d@ej"gfgdd Z8dd Z9dd Z:e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 ZAdd ZBejCdejdg dejdg dej*g dejDdsfg dej*g dejDdsfgdd ZEejdd!ejFfdejFfdejGfgdd ZHejddd!eejjIeejjJgfdd!eejFjIeejFjJgfdd!eejKjIeejKjJgfdrd!eejjIeejjJgfddeejLjIeejLjJgfddeejGjIeejGjJgfddeejMjIeejMjJgfddeejNjIeejNjJgfdd!eejjIeejjJd9 gfdd!eejFjIeejFjJd9 gfdrd!eejKjIeejKjJd9 gfdd!eejjId9 eejFjJgfdd!eejFjId9 eejKjJgfdrd!eejKjId9 eejjJgfddeejLjIeejLjJd9 gfddeejGjIeejGjJd9 gfddeejMjIeejMjJd9 gfgdd ZOdd ZPejde
d dge
d dgejNdsfgdd ZQejdRg dddej"ej"dgfg dddej"gfgdd ZRejd=d8e
g dfdgdd ZSejdg d¢ejdg d¢ddń ZTddǄ ZUejdg dɢdd˄ ZVe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ׄ ZWddل ZXddۄ ZYejdd9d9gdd!dfd@ejZgdd!dfd@dgdd!dfd9ejZgdd!dfddgdd!dfd9d9gdd!dfeejjJd9 d9gdd!dfd9d9gdddfd@d@gdddfd@dgdddfd9ejZgdddfddgdddfeejNjJd9 d9gdddfd9d9gdddfd@d@gdddfd@dgdddfd9ejZgdddfddgdddfddgdddfd9d9gdddfd9dgdddfd9d9gdddfd9dgdddffdd Z[dd Z\dd Z]ejd\ddgdd Z^ejdg ddd Z_ejdg ddd Z`ejdg ddd Zaejdddgddggd d Zbejdg ddd Zcdd Zddd Zed	d
 ZfdS (      N)iinfo)
ArrowDtype	DataFrameIndexSeries
to_numeric)Nignoreraisecoerce)paramsc                 C      | j S Nparamrequest r   g/var/www/html/visualizacion-main/env/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_empty6   s   	r8   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   r2   r3   )r9   r%   r6   r7   r   r   r   test_seriesF   s   rB   data)r?            )      ?      @      @g      @)TFTTc                 C   s*   t | tddd}t|}t|| d S )NABCDEFG)indexr#   )r   listr   r2   r3   )rC   r%   r6   r   r   r   test_series_numericO   s   
rN   zdata,msgr?   r@   apple,Unable to parse string "apple" at position 2)oranger?   r@   rP   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   )rC   msgr%   r   r   r   
test_error_   s   "r[   zerrors,exp_datar   r?   r@   c                 C   s0   t g d}t|| d}t |}t|| d S )NrO   rU   rA   )r   exp_datar%   r6   r7   r   r   r   test_ignore_errorp   s   r]   z
errors,exp)r	   rQ   TFrP   rG   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^   rS   rU   	r   
isinstancer   rW   rX   rY   r   r2   r3   )r   expr%   r6   r7   r   r   r   test_bool_handling{   s   

"rb   c                  C   s.   g d} t | }tg d}t|| d S )N)r<   r=   r:   r>   r   r&   r'   r2   assert_numpy_array_equal)r%   resr7   r   r   r   	test_list   s   rf   zdata,arr_kwargsc                 C   s*   t | }tj| fi |}t|| d S r   rc   )rC   
arr_kwargsr6   r7   r   r   r   test_list_numeric   s   
rh   kwargsOc                 C   s8   g d}t |fi | }t|}t |}t|| d S )Nr>   rA   )ri   rC   r%   r6   r7   r   r   r   test_numeric   s
   rk   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)rG   g       @rH   rI   rm   rn   皙?)
r   decimalDecimalr&   infcopyapplyr   r2   assert_frame_equal)rl   dfr7   df_copyr   r   r   test_numeric_df_columns   s   r{   zdata,exp_dataro   g?rr   c                 C   s:   t d| i}|d t|d< t d|i}t|| d S )Nrm   )r   rw   r   r2   rx   )rC   r\   ry   r7   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)rm   rn   cr
   rU   )r   r   r&   nanr2   r3   )r%   r6   r7   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6rq   r   z	1-d arrayrS   )r   rW   rX   	TypeErrorr   )r   ry   ri   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 0rS   r
   )	r`   r   rW   rX   rY   r   r   r2   assert_almost_equal)	r   r   r   r   ri   r   val_is_stringrZ   r7   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 1rS   r/   )r`   r   rW   rX   rY   r   r   appendr&   r~   r1   intr2   r   r'   )r   r   r   r   r   ri   r   	extra_eltarrr   coercingrZ   r6   exp_valr7   	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 rS   r
   c                 S   s   g | ]}t |qS r   )r   ).0ir   r   r   
<listcomp>C  s    z7test_really_large_in_arr_consistent.<locals>.<listcomp>r/   )r   insertr   rW   rX   rY   r   r   r1   r2   r   r&   r'   )r   r   r   r   ri   r   rL   rZ   r6   r7   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   P  s    c                 C   s
   t | S r   )r&   isnanr   r   r   r   r   Q  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   rS   rU   )r`   r   rW   rX   rY   r   )r   checkerscalarr   r   r   test_scalar_failL  s   	
"r   r?      rD   rD   c                 C   s&   |\}}|| } t | }|||  d S r   r   )rC   r)   r   assert_equalr6   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   )rC   ra   r)   r   r   r6   r7   r   r   r   test_strg  s   r   c                 C   s<   |\}}t jdd| d}t||}||j}||| d S )N20130101rD   )periodstz)pd
date_ranger   asi8)tz_naive_fixturer)   r   r   r!   r6   r7   r   r   r   test_datetime_likev  
   
r   c                 C   s<   | \}}t jdddd}t||}||j}||| d S )Nz1 daysrD   D)r   freq)r   timedelta_ranger   r   )r)   r   r   r!   r6   r7   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-01rD   M )r   r   r#   z)Missing PeriodDtype support in to_numeric)reason)r   period_ranger`   r   node
add_markerrW   markxfailr   r   )r   r)   r   r   r!   inpr6   r7   r   r   r   test_period  s   

r   zerrors,expected)r	   z!Invalid object type at position 0      $@r   rP   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   rG   rP   rS   rU   )	r   r`   r   rW   rX   r   r   r2   r3   )r   r7   r%   r6   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   rD   zunsigned-integerz#invalid downcasting method providedrS   r-   rW   rX   rY   r   )rC   invalid_downcastrZ   r   r   r   test_downcast_invalid_cast     "r   c                  C   r   )Nr   invalidzinvalid error value specifiedrS   rU   r   )rC   invalid_error_valuerZ   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/   rc   )rC   ri   r   r6   r7   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   r2   rd   )rC   r   smallest_int_dtyper7   re   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   rD   r/   r   r   r,   )r&   r'   r1   r   r2   rd   rC   r7   re   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   rD   )r   rD   r/   r   r   )r&   r'   r   r   r2   rd   r   r   r   r   $test_ignore_downcast_neg_to_unsigned  s   r   z7ignore:invalid value encountered in cast:RuntimeWarning)r+   r   r   zdata,expected)z1.1r   rD   )r   r   rD   )g     @i N  i  gR@iP  g     j@c                 C   s   t | |d}t|| d S Nr   )r   r2   rd   )rC   r7   r-   re   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   r2   rd   )r-   expected_dtyperC   r7   re   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   r6   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   r2   r3   )r%   r7   r6   r   r   r   test_downcast_uint64H  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
   rU   r/   )r   r   r   r2   r3   )rC   r\   r6   r7   r   r   r   test_coerce_uint64_conflictZ  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   rS   rU   r_   )r   ra   r%   r6   r   r   r   test_non_coerce_uint64_conflictq  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)r2   rd   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
   rU       @   )3264r   )r   r&   r   r   r~   r2   r3   )r6   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  r6   r   r   r   test_precision_float_conversion  s   5r  zvalues, expected)r<   r   NInt64)r<   r   rD   )r<   r         @)r?   r   r
  Float64)r<   Nr
  r
  )r<   r   z3.5c                 C   s$   t | |d}t|}t|| d S r.   rA   )r(   nullable_string_dtyper7   sr6   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 )Nrm   r<   r/   r
   rU   r?   r	  )r   r   r   NAr2   r3   )r  r(   r%   r6   r7   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 )Nrm   r<   r/   r   rU   )r   rv   r   r2   r3   )r  r(   r%   r7   r6   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   r2   assert_extension_array_equal)rC   input_dtyper-   r   r   r6   r7   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   r2   r  )r   r6   r7   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   )r6   r7   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   rA   )r   r7   r6   r   r   r   4test_to_numeric_large_float_not_downcast_to_float_321  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_backendr0   )r   r*   r%   r6   r7   r   r   r   test_to_numeric_dtype_backend9  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#  	rW   importorskipr   r1   r   r   r  r2   r3   )r   r*   r$  r%   r6   r7   r   r   r    test_to_numeric_dtype_backend_naD  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%   r6   r7   r   r   r   )test_to_numeric_dtype_backend_downcasting\  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.  rW   r+  r   r   r  r   r2   r3   )smallerr$  r%   r6   r7   r   r   r   .test_to_numeric_dtype_backend_downcasting_uintt  s   
r2  )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#  r0  )r*   r%   r6   r7   r   r   r   .test_to_numeric_dtype_backend_already_nullable  s   
r3  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)rm   rn   r   r   rS   r#  r   )r$  r   r
   r)  zdouble[pyarrow]r  r/   )
r   rv   rW   rX   rY   r   r2   r3   r&   r~   )r$  r%   r7   r6   r*   r   r   r   #test_to_numeric_dtype_backend_error  s   r4  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.rS   numpyr#  rV   )r%   rZ   r   r   r   test_invalid_dtype_backend  s   "r6  c                  C   sX   t d} ttdt|  d}t|ddd}tg dt|  d}t	|| d S )Nr)  12xr/   r
   )r   r$  )r?   r   N)
rW   r+  r   rM   r   r   r   r   r2   r3   )par%   r6   r7   r   r   r   test_coerce_pyarrow_backend  s
   
r9  )grs   r5  r&   r   rW   pandasr   r   r   r   r   r   pandas._testing_testingr2   fixturer   r   r   r   r   r   assert_index_equalr3   rd   r)   r   parametrizer   r   r8   rB   rN   r[   r~   r]   rb   rf   rh   rk   r{   rt   r'   r|   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r*   float32charr   r   r   r   r   filterwarningsr   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/  r2  r3  r4  r6  r9  r   r   r   r   <module>   sZ   






	

	


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

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

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