a
    Pf(s                     @   sX  d dl Z d dlZd dlmZ d dlZd dlm  mZ d dl	Z
d dl	mZ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	ej$de%d&d'gej d(d)d*gd+d, Z&ej d-g d.g d/g d0gd1d2 Z'ej d3g d4d5fg d6d7fgd8d9 Z(ej d:d;g d4fd d<d=ej)gfgej*d>d?d@ Z+ej dAdBd;g dCfd dDdEej)gfgej*d>dFdG Z,dHdI Z-ej dJg d.dej!ifg d/i fg d0i fgdKdL Z.ej dMddNii gdOdP Z/ej dQdRdRdSggdTdU Z0ej dVe 1dWdDge 1dXdYgdWdDgdXdYgfe2e 1dWdDgdYgdWdDgdYgfgdZd[ Z3d\d] Z4ej*d>d^d_ Z5ej d`g dadbdc Z6ej*d>ddde Z7ej*d>dfdg Z8ej*d>dhdi Z9ej djdkd;dld fd dmd fgej*d>dndo Z:ej d-g dpdDej)dqej)ggdrds Z;ej dtg duej2g dpdvdwfg dxe2g dyfgdzd{ Z<d|d} Z=d~d Z>dd Z?ej ddd;eddgdDdgfd eej)dDej)gfgej*d>dd Z@dd ZAdd ZBej d-g dg dpej2g dddwgej di ej!fddiej!fddieCejDjEfddieCejFd d  fgdd ZGej dd!dgej d-g dg dpej2g dddwgdd ZHdd ZIdd ZJej*dej dg dej dg dej2g dejKdwfg dej2g dejKdwfgdd ZLej dd!ejMfdejMfdejNfgdd ZOej ddd!eej"jPeej"jQgfdd!eejMjPeejMjQgfdd!eejRjPeejRjQgfdvd!eej!jPeej!jQgfddeejSjPeejSjQgfddeejNjPeejNjQgfddeejTjPeejTjQgfddeejUjPeejUjQgfdd!eej"jPeej"jQd< gfdd!eejMjPeejMjQd< gfdvd!eejRjPeejRjQd< gfdd!eej"jPd< eejMjQgfdd!eejMjPd< eejRjQgfdvd!eejRjPd< eej!jQgfddeejSjPeejSjQd< gfddeejNjPeejNjQd< gfddeejTjPeejTjQd< gfgdd ZVdd ZWej ded dged dgejUdwfgdd ZXej dVg dddej)ej)dgfg dddej)gfgdd ZYej dAd;eg dfdgej*d>ddĄ ZZej dg dƢej dg dƢddɄ Z[dd˄ Z\ej dg d͢ddτ Z]ej dg dѢed<dej)gddwfg dueg dpddwfg dӢeg dpddwfg dԢeg dբddwfg dעed<ej)dgddwfg d٢eg dբddwfgddۄ Z^dd݄ Z_dd߄ Z`ej dd<d<gdd!dfdDe
jagdd!dfdDdgdd!dfd<e
jagdd!dfddgdd!dfd<d<gdd!dfeej!jQd< d<gdd!dfd<d<gdddfdDdDgdddfdDdgdddfd<e
jagdddfddgdddfeejUjQd< d<gdddfd<d<gdddfdDdDgdddfdDdgdddfd<e
jagdddfddgdddfddgdddfd<d<gdddfd<dgdddfd<d<gdddfd<dgdddffdd Zbdd Zcdd Zdej d`ddgdd Zeej dg ddd Zfej dg ddd Zgej dg ddd Zhej d ddgdd&ggdd Ziej dg ddd Zjdd	 Zkd
d Zldd ZmdS (      N)iinfo)
ArrowDtype	DataFrameIndexSeriesoption_context
to_numeric)Nignoreraisecoerce)paramsc                 C   s   | j S Nparamrequest r   [/var/www/ai-form-bot/venv/lib/python3.9/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   0   r   c                 C   s   t | ddS )Nserr    )r   r   r   r   r   r   1   r   c                 C   s   t t| jS r   )nparrayr   valuesr   r   r   r   r   2   r   c                 C   s   | j S 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)Zinput_kwargsZresult_kwargsr"   resultexpectedr   r   r   
test_empty9   s    	r3   infer_stringpyarrow)Zmarkslast_val7   c                 C   s\   t d|& tdd| g}t|}W d    n1 s60    Y  tg d}t|| d S )Nzfuture.infer_string1-3.14   Q	r8   )r   r   r   r/   r0   )r6   r4   r"   r1   r2   r   r   r   test_seriesI   s
    &r>   data)r<            )      ?      @      @g      @)TFTTc                 C   s*   t | tddd}t|}t|| d S )NZABCDZEFG)indexr!   )r   listr   r/   r0   )r?   r"   r1   r   r   r   test_series_numericV   s    
rH   zdata,msgr<   r=   apple,Unable to parse string "apple" at position 2)Zoranger<   r=   rJ   z-Unable to parse string "orange" at position 0c                 C   sF   t | }tjt|d t|dd W d    n1 s80    Y  d S )Nmatchr
   r   r   pytestraises
ValueErrorr   )r?   msgr"   r   r   r   
test_errorf   s    rT   zerrors,exp_datar	   r<   r=   z2ignore:errors='ignore' is deprecated:FutureWarningc                 C   s0   t g d}t|| d}t |}t|| d S )NrI   rN   r   r   r/   r0   )r   exp_datar"   r1   r2   r   r   r   test_ignore_errorw   s    rW   z
errors,exp)r
   rK   TFrJ   rC   g        c                 C   sv   t g d}t|trRtjt|d t|| d W d    qr1 sF0    Y  n t|| d}t |}t|| d S )NrX   rL   rN   	r   
isinstancer   rP   rQ   rR   r   r/   r0   )r   expr"   r1   r2   r   r   r   test_bool_handling   s    
,r\   c                  C   s.   g d} t | }tg d}t|| d S )N)r9   r:   r7   r;   r   r#   r$   r/   assert_numpy_array_equal)r"   resr2   r   r   r   	test_list   s    r`   zdata,arr_kwargsc                 C   s*   t | }tj| fi |}t|| d S r   r]   )r?   Z
arr_kwargsr1   r2   r   r   r   test_list_numeric   s    
ra   kwargsOc                 C   s8   g d}t |fi | }t|}t |}t|| d S )Nr;   rU   )rb   r?   r"   r1   r2   r   r   r   test_numeric   s
    rd   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)rC   g       @rD   rE   rf   rg   皙?)
r   decimalDecimalr#   infcopyapplyr   r/   assert_frame_equal)re   dfr2   Zdf_copyr   r   r   test_numeric_df_columns   s    rs   zdata,exp_datarh   g?rk   c                 C   s:   t d| i}|d t|d< t d|i}t|| d S )Nrf   )r   rp   r   r/   rq   )r?   rV   rr   r2   r   r   r   test_numeric_embedded_arr_likes   s    rt   c                  C   s<   t g d} t| dd}t tjtjtjg}t|| d S )N)rf   rg   cr   rN   )r   r   r#   nanr/   r0   )r"   r1   r2   r   r   r   test_all_nan   s    rw   c                 C   sl   t g dg dd}| d ur&d| ini }tjtdd  t|fi | W d    n1 s^0    Y  d S )Nr;   )456rj   r   z	1-d arrayrL   )r   rP   rQ   	TypeErrorr   )r   rr   rb   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}|r|dv rd}tjt|d  t|fi | W d    q1 sx0    Y  n0|dkr|rt|n|}tt|fi || d S )Nr   Nr
   #Integer out of range. at position 0rL   r   )	rZ   r   rP   rQ   rR   r   r   r/   assert_almost_equal)	r   r   r   r   rb   r}   val_is_stringrS   r2   r   r   r   test_really_large_scalar   s    
0r   c                 C   s6  |d urd|ini }|r|  n| }||}d}|g||g  }t |t}	|dk}
|dv r|	s`|r|	rjd}nd}tjt|d  t|fi | W d    n1 s0    Y  nt|fi |}|
r|	rt|n|}|g}|r|
r|tj	 t}n|| t
}nt |ttfrtnt
}t|tj||d d S )	Nr   stringr   r   r   z-Unable to parse string "string" at position 1rL   r,   )rZ   r   rP   rQ   rR   r   r   appendr#   rv   r.   intr/   r   r$   )r   r   r   r   r   rb   r}   Z	extra_eltarrr   ZcoercingrS   r1   Zexp_valr2   	exp_dtyper   r   r   test_really_large_in_arr  s0    
0
r   c                 C   s   |d urd|ini }t |r |  n| g}|r8|d|  |dv rt|}d| }tjt|d  t|fi | W d    q1 s0    Y  nJt|fi |}|dkrdd |D }	t}
n|}	t}
t	
|tj|	|
d	 d S )
Nr   r   r   z"Integer out of range. at position rL   r   c                 S   s   g | ]}t |qS r   )r   ).0ir   r   r   
<listcomp>P  r   z7test_really_large_in_arr_consistent.<locals>.<listcomp>r,   )r   insertr   rP   rQ   rR   r   r   r.   r/   r   r#   r$   )r   r   r   r   rb   r   rF   rS   r1   r2   r   r   r   r   #test_really_large_in_arr_consistent:  s     
0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   ]  r   c                 C   s
   t | S r   )r#   isnanr   r   r   r   r   ^  r   c                 C   sb   d}t |trJtjt|d t|| d W d    q^1 s>0    Y  n|t|| ds^J d S )Nr   rL   rN   )rZ   r   rP   rQ   rR   r   )r   checkerZscalarr   r   r   test_scalar_failY  s
    

,r   r<      r@   r@   c                 C   s&   |\}}|| } t | }|||  d S r   r   )r?   r&   r   assert_equalr1   r   r   r   test_numeric_dtypesl  s    r   zdata,exp)r9   23int64r,   )z1.5z2.7z3.4)      ?g@g333333@c                 C   s*   |\}}t || }||}||| d S r   r   )r?   r[   r&   r   r   r1   r2   r   r   r   test_stru  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   r1   r2   r   r   r   test_datetime_like  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   r1   r2   r   r   r   test_timedelta  s
    
r   c                 C   s`   |\}}t jddddd}||}t|ts@| tjjdd t|}||j	}||| d S )Nz2011-01r@   M )r   r   r!   z)Missing PeriodDtype support in to_numeric)reason)
r   Zperiod_rangerZ   r   ZapplymarkerrP   markZxfailr   r   )r   r&   r   r   r   inpr1   r2   r   r   r   test_period  s    

r   zerrors,expected)r
   z!Invalid object type at position 0      $@r   rJ   c                 C   st   t ddgddg}t|trXtjt|d t|| d W d    qp1 sL0    Y  nt|| d}t|| d S )Nr   r   rC   rJ   rL   rN   )	r   rZ   r   rP   rQ   r{   r   r/   r0   )r   r2   r"   r1   r   r   r   test_non_hashable  s    
,r   c                  C   sN   g d} d}d}t jt|d t| |d W d    n1 s@0    Y  d S )Nr9   r   r@   zunsigned-integerz#invalid downcasting method providedrL   r*   rP   rQ   rR   r   )r?   Zinvalid_downcastrS   r   r   r   test_downcast_invalid_cast  s
    r   c                  C   sN   g d} d}d}t jt|d t| |d W d    n1 s@0    Y  d S )Nr   invalidzinvalid error value specifiedrL   rN   r   )r?   Zinvalid_error_valuerS   r   r   r   test_errors_invalid_value  s
    r   r   )z
1970-01-02z
1970-01-03z
1970-01-04zdatetime64[D]zkwargs,exp_dtyper*   r   unsignedZUnsignedIntegerc                 C   s2   t | fi |}tjg d|d}t|| d S )Nr   r,   r]   )r?   rb   r   r1   r2   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   r/   r^   )r?   r   Zsmallest_int_dtyper2   r_   r   r   r   test_signed_downcast  s    r   c                  C   sf   g d} t j| td}d}tjt|d t| ddd}W d    n1 sL0    Y  t|| d S )N)Zfoor   r@   r,   errors='ignore' is deprecatedrL   r	   r   r)   )r#   r$   r.   r/   assert_produces_warningFutureWarningr   r^   )r?   r2   rS   r_   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   r@   )r   r@   r,   r   r   )r#   r$   r   r   r/   r^   )r?   r2   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   r@   )r~   r   r@   )g     @i N  i  gR@iP  g     j@c                 C   s   t | |d}t|| d S Nr   )r   r/   r^   )r?   r2   r*   r_   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   r/   r^   )r*   expected_dtyper?   r2   r_   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*   Zmin_maxseriesr   r   r   test_downcast_limits5  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#   Zfinfofloat64maxrv   r   r'   )r   r1   r   r   r    test_downcast_float64_to_float32Q  s     r   zser,expectedl            c                 C   s   t | dd}t|| d S )Nr   r   )r   r/   r0   )r"   r2   r1   r   r   r   test_downcast_uint64Y  s    r   )   ,  r   NaN     p;6$ r   r   r   Z12345678901234567890Z
1234567890ZITEMl   
>V3&Z
 iIc                 C   s,   t t| dd}t|td}t|| d S )Nr   rN   r,   )r   r   r   r/   r0   )r?   rV   r1   r2   r   r   r   test_coerce_uint64_conflictk  s    r   )r
   Unable to parse stringc                 C   sn   t g d}t|trRtjt|d t|| d W d    qj1 sF0    Y  nt|| d}t|| d S )Nr   rL   rN   rY   )r   r[   r"   r1   r   r   r   test_non_coerce_uint64_conflict  s    
,r   dc1)r(   r   r   dc2c                 C   s$   t jtg | dtg |ddd d S )Nr   F)Zcheck_dtype)r/   r^   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   rN       @   )Z32Z64r   )r   r#   r   r   rv   r/   r0   )r1   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   r1   r   r   r   test_precision_float_conversion  s    5r   zvalues, expected)r9   r   NInt64)r9   r   r@   )r9   r         @)r<   r   r   Float64)r9   Nr   r   )r9   r   z3.5c                 C   s$   t | |d}t|}t|| d S r+   rU   )r%   nullable_string_dtyper2   sr1   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 )Nrf   r9   r,   r   rN   r<   r   )r   r   r   NAr/   r0   )r   r%   r"   r1   r2   r   r   r   +test_to_numeric_from_nullable_string_coerce  s
    r   c                 C   sj   ddg}t || d}| }d}tjt|d t|dd}W d    n1 sP0    Y  t|| d S )Nrf   r9   r,   r   rL   r	   rN   )r   ro   r/   r   r   r   r0   )r   r%   r"   r2   rS   r1   r   r   r   +test_to_numeric_from_nullable_string_ignore  s    *r   z+data, input_dtype, downcast, expected_dtypeInt8r~   i  ZInt16Float32iUInt64Z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   r1   r2   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   r/   r   )r   r1   r2   r   r   r   %test_downcast_nullable_mask_is_copied1  s    
r   c                  C   s"   t d} td}| |ksJ d S )Nz1.7e+308gv;w0B)r   r#   r   )r1   r2   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   rU   )r}   r2   r1   r   r   r   4test_to_numeric_large_float_not_downcast_to_float_32E  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"   r1   r2   r   r   r   test_to_numeric_dtype_backendM  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 )Nr5   r   r,   r   	rP   importorskipr   r.   r   r   r   r/   r0   )r}   r'   r   r"   r1   r2   r   r   r    test_to_numeric_dtype_backend_naX  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 )Nr5   r   r,   r   r*   r  )r}   r'   r*   r   r"   r1   r2   r   r   r   )test_to_numeric_dtype_backend_downcastingp  s    
r  zsmaller, dtype_backendr   zuint8[pyarrow]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 )Nr5   r<   r   r,   r   r  rP   r  r   r   r   r   r/   r0   )Zsmallerr   r"   r1   r2   r   r   r   .test_to_numeric_dtype_backend_downcasting_uint  s    
r
  )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 )Nr5   r<   r,   r   r   r	  )r'   r"   r1   r2   r   r   r   .test_to_numeric_dtype_backend_already_nullable  s    
r  c                 C   s   t g d}| }tjtdd t|| d W d    n1 sD0    Y  d}tjt|d t|| dd}W d    n1 s0    Y  t	|| t|| dd}| d	krd
}nd}t t
jt
jt
jg|d}t	|| d S )N)rf   rg   r   r   rL   r   r   r	   )r   r   r   r5   zdouble[pyarrow]r   r,   )r   ro   rP   rQ   rR   r   r/   r   r   r0   r#   rv   )r   r"   r2   rS   r1   r'   r   r   r   #test_to_numeric_dtype_backend_error  s    *,r  c                  C   sN   t g d} d}tjt|d t| dd W d    n1 s@0    Y  d S )Nr   zPdtype_backend numpy is invalid, only 'numpy_nullable' and 'pyarrow' are allowed.rL   numpyr   rO   )r"   rS   r   r   r   test_invalid_dtype_backend  s
    r  c                  C   sX   t d} ttdt|  d}t|ddd}tg dt|  d}t	|| d S )Nr5   Z12xr,   r   )r   r   )r<   r   N)
rP   r  r   rG   r   r   r   r   r/   r0   )par"   r1   r2   r   r   r   test_coerce_pyarrow_backend  s
    
r  )nrl   r  r#   r   rP   Zpandas.util._test_decoratorsutilZ_test_decoratorstdZpandasr   r   r   r   r   r   r   Zpandas._testingZ_testingr/   Zfixturer   r   r   r   r   r   Zassert_index_equalr0   r^   r&   r   Zparametrizer   r   r3   r   Z
skip_if_nor>   rH   rT   rv   filterwarningsrW   r\   r`   ra   rd   rs   rm   r$   rt   rw   r|   r   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   minr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r
  r  r  r  r  r   r   r   r   <module>   sr   






			



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

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

	






'





 

		


	


	         

	
	





3

	







