U
    +ifY                  1   @   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ddddg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,d-d.d/d0gd1d2d3d4gddddggd5d6 Z!ejd7d-d8d9gd:fd;d-d8d9gd<fgd=d> Z"ejd?dd-d8d9gfdd-d8ej#gfgd@dA Z$ejdBdCdddd9gfdd1dDej#gfgdEdF Z%dGdH Z&ejdId-d.d/d0gd"ejifd1d2d3d4gi fddddgi fgdJdK Z'ejdLd"dMii gdNdO Z(ejdPdQdQdRggdSdT Z)ejdUe *dVd1ge *dWdXgdVd1gdWdXgfe+e *dVd1gdXgdVd1gdXgfgdYdZ Z,d[d\ Z-d]d^ Z.ejd_d-d`dagdbdc Z/ddde Z0dfdg Z1dhdi Z2ejdjdkddld fddmd fgdndo Z3ejd,d-dpd.gd1ej#d.ej#ggdqdr Z4ejdsdtdudvgej+d-dpd.gdwdxfdydzd{ge+d|d}d~gfgdd Z5dd Z6dd Z7dd Z8ejdddeddpgd1d9gfdeej#d1ej#gfgdd Z9dd Z:dd Z;ejd,dtdpd.gd-dpd.gej+dddgddx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,dtdpd.gd-dpd.gej+dddgddxgdd ZAdd ZBdd ZCejdd#ddgejdddpd.gej+d`dpd.gejDdxfddddddgej+ddddddgejDdx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dwd#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dwd#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dwd#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 ZOejded dged dgejNdxfgdd ZPejdUdddddgddej#ej#dgfdddgddej#gfgddȄ ZQejdBdedddgfdgdd˄ ZRejdd#ddgejdd#ddgddτ ZSddф ZTejddddddddddddddddddddddddddddddddddddddddddddddd g.dd ZUejddtdudged-dpej#gfdtdudvged-dpd.gfdtdud.ged-dpd.gfdtdudged-dpdgfdtddged-ej#dgfdtdudged-dpdgfgdd ZVejdd-d-gd	d#d
fd1ejWgdd#d
fd1d`gdd#dfd-ejWgd	d#d
fddgd	d#dfd-d-gdd#d
feejjJd- d-gd	d#d	fd-d-gd	dd
fd1d1gddd
fd1d`gdddfd-ejWgd	dd
fddgd	ddfejXeejNjJd- d-gdddejjYe  dddd-d-gd	ddfd1d1gdddfd1d`gdddfd-ejWgd	ddfddgd	dd	fddgdddfd-d-gdddfd-d`gdddffdd ZZdd Z[dd Z\dS (      N)iinfo)is_platform_arm)	DataFrameIndexSeries
to_numericignoreraisecoerce)paramsc                 C   s   | j S Nparamrequest r   U/home/mars/bis/venv/lib/python3.8/site-packages/pandas/tests/tools/test_to_numeric.pyerrors   s    r   TFc                 C   s   | j S r   r   r   r   r   r   signed   s    r   c                 C   s   | S r   r   xr   r   r   <lambda>       r   identitystr)r   Zidsc                 C   s   | j S r   r   r   r   r   r   	transform   s    r   l   N"2) l      Fx:^V c                 C   s   | j S r   r   r   r   r   r   	large_val"   s    r   c                 C   s   | j S r   r   r   r   r   r   multiple_elts'   s    r   c                 C   s   t | ddS )Nidxname)r   r   r   r   r   r   .   r   c                 C   s   t | ddS )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   r   c                 C   s   | j S r   r   r   r   r   r   transform_assert_equal,   s    r%   zinput_kwargs,result_kwargsdtypeintegerr   downcastc                 C   s4   t g td}t|f| }t g f|}t|| d S Nr&   )r   objectr   tmassert_series_equal)Zinput_kwargsZresult_kwargsr!   resultexpectedr   r   r   
test_empty7   s    	r1   last_val7   c                 C   s4   t dd| g}t|}t dddg}t|| d S )N1-3.14   Q	r4   r   r   r-   r.   )r2   r!   r/   r0   r   r   r   test_seriesG   s    r:   datar7                  ?      @      @g      @c                 C   s*   t | tddd}t|}t|| d S )NZABCDZEFG)indexr    )r   listr   r-   r.   )r;   r!   r/   r   r   r   test_series_numericP   s    
rD   zdata,msgr8   apple,Unable to parse string "apple" at position 2Zorangez-Unable to parse string "orange" at position 0c              	   C   s2   t | }tjt|d t|dd W 5 Q R X d S )Nmatchr	   r   )r   pytestraises
ValueErrorr   )r;   msgr!   r   r   r   
test_error`   s    rN   zerrors,exp_datac                 C   s2   t dddg}t|| d}t |}t|| d S )Nr7   r8   rE   rI   r9   )r   exp_datar!   r/   r0   r   r   r   test_ignore_errorq   s    rP   z
errors,exp)r	   rF   g        c              	   C   sd   t dddg}t|tr@tjt|d t|| d W 5 Q R X n t|| d}t |}t|| d S )NTFrE   rG   rI   	r   
isinstancer   rJ   rK   rL   r   r-   r.   )r   expr!   r/   r0   r   r   r   test_bool_handling|   s    

rT   c                  C   s2   dddg} t | }tdddg}t|| d S )Nr5   r6   r3   r7   r8   r4   r   r"   r#   r-   assert_numpy_array_equal)r!   resr0   r   r   r   	test_list   s    
rX   zdata,arr_kwargsc                 C   s&   t | }tj| f|}t|| d S r   rU   )r;   Z
arr_kwargsr/   r0   r   r   r   test_list_numeric   s    
rY   kwargsOc                 C   s6   dddg}t |f| }t|}t |}t|| d S )Nr7   r8   r4   r9   )rZ   r;   r!   r/   r0   r   r   r   test_numeric   s
    
r\   columnsabc                 C   st   t dtdtddgddddgd	}t ddtjd
gddddgd	}| }||  t|| < t	|| d S )Ng333333?Q	@infinityz0.1r?   g       @r@   rA   r^   r_   皙?)
r   decimalDecimalr"   infcopyapplyr   r-   assert_frame_equal)r]   dfr0   Zdf_copyr   r   r   test_numeric_df_columns   s    
 rk   zdata,exp_datar`   g?rc   c                 C   s:   t d| i}|d t|d< t d|i}t|| d S )Nr^   )r   rh   r   r-   ri   )r;   rO   rj   r0   r   r   r   test_numeric_embedded_arr_likes   s    rl   c                  C   s>   t dddg} t| dd}t tjtjtjg}t|| d S )Nr^   r_   cr
   rI   )r   r   r"   nanr-   r.   )r!   r/   r0   r   r   r   test_all_nan   s    ro   c              	   C   sX   t dddgdddgd}| d k	r*d| ini }tjtd	d
 t|f| W 5 Q R X d S )Nr7   r8   r4   456rb   r   z	1-d arrayrG   )r   rJ   rK   	TypeErrorr   )r   rj   rZ   r   r   r   test_type_check   s    rt   valg?i!N  c                 C   s*   |r
|  n| } t || t| ks&td S r   r   floatAssertionError)ru   r   r   r   r   r   test_scalar   s    ry   c           	   	   C   s   |d k	rd|ini }|r|  n| }||}t |t}|rl|dkrld}tjt|d t|f| W 5 Q R X n,|dkr|rt|n|}tt|f|| d S )Nr   Nr	   #Integer out of range. at position 0rG   r
   )	rR   r   rJ   rK   rL   r   rw   r-   assert_almost_equal)	r   r   r   r   rZ   ru   val_is_stringrM   r0   r   r   r   test_really_large_scalar   s    
r~   c              	   C   s  |d k	rd|ini }|r|  n| }||}d}|g||g  }t |t}	|dk}
|dkr|	s`|r|	rjd}nd}tjt|d t|f| W 5 Q R X n|t|f|}|
r|	rt|n|}|g}|r|
r|tj	 t}q|| t
}nt |ttfrtnt
}t|tj||d d S )	Nr   stringr
   rz   r{   z-Unable to parse string "string" at position 1rG   r+   )rR   r   rJ   rK   rL   r   rw   appendr"   rn   r,   intr-   r|   r#   )r   r   r   r   r   rZ   ru   Z	extra_eltarrr}   ZcoercingrM   r/   Zexp_valr0   	exp_dtyper   r   r   test_really_large_in_arr  s0    

r   c              	   C   s   |d k	rd|ini }t |r |  n| g}|r8|d|  |dkrzt|}d| }tjt|d t|f| W 5 Q R X nFt|f|}|dkrdd |D }	t}
n|}	t}
t	
|tj|	|
d	 d S )
Nr   r   rz   z"Integer out of range. at position rG   r
   c                 S   s   g | ]}t |qS r   )rw   ).0ir   r   r   
<listcomp>D  s     z7test_really_large_in_arr_consistent.<locals>.<listcomp>r+   )r   insertr   rJ   rK   rL   r   rw   r,   r-   r|   r"   r#   )r   r   r   r   rZ   r   rB   rM   r/   r0   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  r   c                 C   s
   t | S r   )r"   isnanr   r   r   r   r   R  r   c              	   C   sN   d}t |tr6tjt|d t|| d W 5 Q R X n|t|| dsJtd S )Nr   rG   rI   )rR   r   rJ   rK   rL   r   rx   )r   checkerZscalarr   r   r   test_scalar_failM  s
    	
r      c                 C   s&   |\}}|| } t | }|||  d S r   r   )r;   r%   r   assert_equalr/   r   r   r   test_numeric_dtypes_  s    r   zdata,expr5   23int64r+   z1.5z2.7z3.4g      ?g@g333333@c                 C   s*   |\}}t || }||}||| d S r   r   )r;   rS   r%   r   r   r/   r0   r   r   r   test_strh  s    r   c                 C   s<   |\}}t jdd| d}t||}||j}||| d S )NZ20130101r<   )periodstz)pdZ
date_ranger   asi8)Ztz_naive_fixturer%   r   r   r   r/   r0   r   r   r   test_datetime_likew  s
    
r   c                 C   s<   | \}}t jdddd}t||}||j}||| d S )Nz1 daysr<   D)r   freq)r   Ztimedelta_ranger   r   )r%   r   r   r   r/   r0   r   r   r   test_timedelta  s
    
r   c                 C   sX   | \}}t jddddd}||}t|trJt|}||j}||| n
td d S )Nz2011-01r<   M )r   r   r    z)Missing PeriodDtype support in to_numeric)r   Zperiod_rangerR   r   r   r   rJ   skip)r%   r   r   r   Zinpr/   r0   r   r   r   test_period  s    

r   zerrors,expected)r	   z!Invalid object type at position 0      $@c              	   C   s`   t ddgddg}t|trDtjt|d t|| d W 5 Q R X nt|| d}t|| d S )Nr   r   r?   rE   rG   rI   )	r   rR   r   rJ   rK   rs   r   r-   r.   )r   r0   r!   r/   r   r   r   test_non_hashable  s    

r   c               	   C   s<   dddg} d}d}t jt|d t| |d W 5 Q R X d S )Nr5   r   r<   zunsigned-integerz#invalid downcasting method providedrG   r)   rJ   rK   rL   r   )r;   Zinvalid_downcastrM   r   r   r   test_downcast_invalid_cast  s
    
r   c               	   C   s<   dddg} d}d}t jt|d t| |d W 5 Q R X d S )Nr5   r   r<   invalidzinvalid error value specifiedrG   rI   r   )r;   Zinvalid_error_valuerM   r   r   r   test_errors_invalid_value  s
    
r   z
1970-01-02z
1970-01-03z
1970-01-04zdatetime64[D]zkwargs,exp_dtyper)   rw   unsignedZUnsignedIntegerc                 C   s0   t | f|}tjdddg|d}t|| d S )Nr7   r   r<   r+   rU   )r;   rZ   r   r/   r0   r   r   r   test_downcast_basic  s    r   signed_downcastc                 C   sD   t t jd d }t jdddg|d}t| |d}t|| d S )NIntegerr   r7   r   r<   r+   r   )r"   r&   	typecodesr#   r   r-   rV   )r;   r   Zsmallest_int_dtyper0   rW   r   r   r   test_signed_downcast  s    r   c                  C   s6   dddg} t j| td}t| ddd}t|| d S )NZfoor   r<   r+   r   r   r(   )r"   r#   r,   r   r-   rV   r;   r0   rW   r   r   r   !test_ignore_downcast_invalid_data  s    
r   c                  C   s<   dddg} t jdddgt jd}t| dd}t|| d S )Nz-1r   r<   r+   r   r   )r"   r#   r   r   r-   rV   r   r   r   r   $test_ignore_downcast_neg_to_unsigned  s    
r   zdata,expectedz1.1g     @i N  i  gR@iP  g     j@c                 C   s   t | |d}t|| d S Nr   )r   r-   rV   )r;   r0   r)   rW   r   r   r   )test_ignore_downcast_cannot_convert_float  s    r   zdowncast,expected_dtypec                 C   s:   dddg}t jdddg|d}t|| d}t|| d S )N256i  i     r+   r   )r"   r#   r   r-   rV   )r)   expected_dtyper;   r0   rW   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td S r   )r   r   r&   rx   )r&   r)   Zmin_maxZseriesr   r   r   test_downcast_limits#  s    r   zser,expectedl            c                 C   s   t | dd}t|| d S )Nr   r   )r   r-   r.   )r!   r0   r/   r   r   r   test_downcast_uint64?  s    r      i,  r   NaNl     p;6$ 12345678901234567890
1234567890ITEMl   
>V3&Z
 iIc                 C   s,   t t| dd}t|td}t|| d S )Nr
   rI   r+   )r   r   rw   r-   r.   )r;   rO   r/   r0   r   r   r   test_coerce_uint64_conflictQ  s    r   )r	   zUnable to parse stringc              	   C   s\   t dddg}t|tr@tjt|d t|| d W 5 Q R X nt|| d}t|| d S )Nr   r   r   rG   rI   rQ   )r   rS   r!   r/   r   r   r   test_non_coerce_uint64_conflicth  s    
r   dc1dc2c                 C   s$   t jtg | dtg |ddd d S )Nr   F)Zcheck_dtype)r-   rV   r   )r   r   r   r   r   test_downcast_empty}  s
    

r   c                  C   sP   t ddd} t| sttddtjg}t tdddgdd} t| | d S )Nr   r
   rI       @   Z32Z64)r   r"   r   rx   r   rn   r-   r.   )r/   r!   r   r   r   ,test_failure_to_convert_uint64_string_to_NaN  s
    r   strrepz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td S r   rv   )r   r/   r   r   r   test_precision_float_conversion  s    5r   zvalues, expectedg      @z3.5c                 C   s$   t | |d}t|}t|| d S r*   r9   )r$   Znullable_string_dtyper0   sr/   r   r   r   $test_to_numeric_from_nullable_string  s    r   z+data, input_dtype, downcast, expected_dtypeInt64Int8ZFloat64i  ZInt16ZFloat32iZUInt64ZGH38798)reason)ZmarksZUInt8r   ZInt32c                 C   s8   t j| |d}t||d}t j| |d}t|| d S )Nr+   r   )r   r#   r   r-   assert_extension_array_equal)r;   Zinput_dtyper)   r   r   r/   r0   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 )Nr7   r   r   r+   r'   r   r   )r   r#   NAr   r-   r   )r   r/   r0   r   r   r   %test_downcast_nullable_mask_is_copied  s    
r   c                  C   s"   t d} td}| |kstd S )Nz1.7e+308gv;w0B)r   r"   float64rx   )r/   r0   r   r   r   #test_to_numeric_scientific_notation  s    
r   )]rd   numpyr"   r   rJ   Zpandas.compatr   Zpandasr   r   r   r   r   Zpandas._testingZ_testingr-   Zfixturer   r   r   r   r   r   Zassert_index_equalr.   rV   r%   markZparametrizer   r   r1   r:   rD   rN   rn   rP   rT   rX   rY   r\   rk   re   r#   rl   ro   rt   ry   r~   r   r   r   r   r   r   r   r   r   r   r   r&   Zfloat32charr   r   r   r   r   r   r   r   r   r   minmaxr   r   r   r   r   r   r   r   r   r   r   r   r   r   Zxfailr   r   r   r   r   r   r   <module>   s  






	



	



 
	
	


	
"

	
'



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




3  