o
    iZ                     @   s
  d dl Z d dlZd dlmZ d dl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 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/d0 Z!ejd1g d2d3fg d4d5fgd6d7 Z"ejd8d9g d2fd!d:d;ej#gfgd<d= Z$ejd>d?d9g d@fd!dAdBej#gfgdCdD Z%dEdF Z&ejdGg d,d ejifg d-i fg d.i fgdHdI Z'ejdJd dKii gdLdM Z(ejdNdOdOdPggdQdR Z)ejdSe *dTdAge *dUdVgdTdAgdUdVgfe+e *dTdAgdVgdTdAgdVgfgdWdX Z,dYdZ Z-d[d\ Z.ejd]g d^d_d` Z/dadb Z0dcdd Z1dedf Z2ejdgdhd9did fd!djd fgdkdl Z3ejd+g dmdAej#dnej#ggdodp Z4ejdqg drej+g dmdsdtfg due+g dvfgdwdx Z5dydz Z6d{d| Z7d}d~ Z8ejddd9eddgdAdgfd!eej#dAej#gfgdd Z9dd Z:dd Z;ejd+g dg dmej+g dddt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 dmej+g dddtgdd ZAdd ZBdd ZCejdg dejdg dej+g dejDdtfg dej+g dejDdt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dsd"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jJd: gfdd"eejFjIeejFjJd: gfdsd"eejKjIeejKjJd: gfdd"eejjId: eejFjJgfdd"eejFjId: eejKjJgfdsd"eejKjId: eejjJgfddeejLjIeejLjJd: gfddeejGjIeejGjJd: gfddeejMjIeejMjJd: gfgdd ZOdd ZPejded dged dgejNdtfgdd ZQejdSg dddej#ej#dgfg dddej#gfgdd ZRejd>d9e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d:dej#gfg dreg dmfg d΢eg dmfg dϢeg dТfg dѢed:ej#dgfg dӢeg dТfgddՄ ZWejdd:d:gdd"dfdAejXgdd"dfdAdgdd"dfd:ejXgdd"dfddgdd"dfd:d:gdd"dfeejjJd: d:gdd"dfd:d:gdddfdAdAgdddfdAdgdddfd:ejXgdddfddgdddfejYeejNjJd: d:gdddejjZe  dddd:d:gdddfdAdAgdddfdAdgdddfd:ejXgdddfddgdddfddgdddfd:d:gdddfd:dgdddfd:d:gdddfd:dgdddffdd Z[dd Z\dd Z]dS )    N)iinfo)is_platform_arm)	DataFrameIndexSeries
to_numeric)Nignoreraisecoerce)paramsc                 C      | j S Nparamrequest r   ]/var/www/edux/Edux_v2/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   0   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_empty7   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_seriesG   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_numericP   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   "rY   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_errorq   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   rU   rV   rW   r   r1   r2   )r   expr%   r5   r6   r   r   r   test_bool_handling|   s   

"r`   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   rd   zdata,arr_kwargsc                 C   s*   t | }tj| fi |}t|| d S r   ra   )rB   
arr_kwargsr5   r6   r   r   r   test_list_numeric   s   
rf   kwargsOc                 C   s8   g d}t |fi | }t|}t |}t|| d S )Nr=   r@   )rg   rB   r%   r5   r6   r   r   r   test_numeric   s
   ri   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   rk   rl   皙?)
r   decimalDecimalr&   infcopyapplyr   r1   assert_frame_equal)rj   dfr6   df_copyr   r   r   test_numeric_df_columns   s   ry   zdata,exp_datarm   g?rp   c                 C   s:   t d| i}|d t|d< t d|i}t|| d S )Nrk   )r   ru   r   r1   rv   )rB   rZ   rw   r6   r   r   r   test_numeric_embedded_arr_likes   s   rz   c                  C   s<   t g d} t| dd}t tjtjtjg}t|| d S )N)rk   rl   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6ro   r   z	1-d arrayrR   )r   rU   rV   	TypeErrorr   )r   rw   rg   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   rU   rV   rW   r   r   r1   assert_almost_equal)	r   r   r   r   rg   r   val_is_stringrX   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   rU   rV   rW   r   r   appendr&   r|   r0   intr1   r   r'   )r   r   r   r   r   rg   r   	extra_eltarrr   coercingrX   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>D  s    z7test_really_large_in_arr_consistent.<locals>.<listcomp>r/   )r   insertr   rU   rV   rW   r   r   r0   r1   r   r&   r'   )r   r   r   r   rg   r   rK   rX   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   Q  s    c                 C   s
   t | S r   )r&   isnanr   r   r   r   r   R  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   rU   rV   rW   r   )r   checkerscalarr   r   r   test_scalar_failM  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      ?g@g333333@c                 C   s*   |\}}t || }||}||| d S r   r   )rB   r_   r)   r   r   r5   r6   r   r   r   test_strh  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_likew  
   
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_markerrU   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   rU   rV   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-   rU   rV   rW   r   )rB   invalid_downcastrX   r   r   r   test_downcast_invalid_cast     "r   c                  C   r   )Nr   invalidzinvalid error value specifiedrR   rT   r   )rB   invalid_error_valuerX   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/   ra   )rB   rg   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   rb   )rB   r   smallest_int_dtyper6   rc   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   rb   rB   r6   rc   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   rb   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   rb   )rB   r6   r-   rc   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   rb   )r-   expected_dtyperB   r6   rc   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_uint64G  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   rZ   r5   r6   r   r   r   test_coerce_uint64_conflictY  s   r   )r	   z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_conflictp  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   rb   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)r;   r   rC   )r;   r         @)r>   r   r  )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	  z+data, input_dtype, downcast, expected_dtypeInt64Int8Float64r   i  Int16Float32iUInt64GH38798r   )marks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'   NAr   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  )^rq   numpyr&   r   rU   pandas.compatr   pandasr   r   r   r   r   pandas._testing_testingr1   fixturer   r   r   r   r   r   assert_index_equalr2   rb   r)   r   parametrizer   r   r7   rA   rM   rY   r|   r[   r`   rd   rf   ri   ry   rr   r'   rz   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   <module>   s(   






	

	


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

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

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