U
    -en                  1   @   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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.d/gd0d1d2d3gd
dd
d
ggd4d5 Z ejd6d,d7d8gd9fd:d,d7d8gd;fgd<d= Z!ejd>dd,d7d8gfdd,d7ej"gfgd?d@ Z#ejdAdBdd
dd8gfdd0dCej"gfgdDdE Z$dFdG Z%ejdHd,d-d.d/gd!ejifd0d1d2d3gi fd
dd
d
gi fgdIdJ Z&ejdKd!dLii gdMdN Z'ejdOdPdPdQggdRdS Z(ejdTe )dUd0ge )dVdWgdUd0gdVdWgfe*e )dUd0gdWgdUd0gdWgfgdXdY Z+dZd[ Z,d\d] Z-ejd^d,d_d`gdadb Z.dcdd Z/dedf Z0dgdh Z1ejdidjddkd fddld fgdmdn Z2ejd+d,dod-gd0ej"d-ej"ggdpdq Z3ejdrdsdtdugej*d,dod-gdvdwfdxdydzge*d{d|d}gfgd~d Z4dd Z5dd Z6dd Z7ejddde
ddogd0d8gfde
ej"d0ej"gfgdd Z8dd Z9dd Z:ejd+dsdod-gd,dod-gej*dddgddw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+dsdod-gd,dod-gej*dddgddwgdd Z@dd ZAdd ZBejCdejdd"ddgejdddod-gej*d_dod-gejDdwfddddddgej*ddddddgejDdw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dvd"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dvd"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dvd"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jNdwfgdd ZQejdTdddddgddej"ej"dgfdddgddej"gfgddʄ ZRejdAde
dddgfdgdd̈́ ZSejdd"ddgejdd"ddgddф ZTddӄ ZUejddddddddddddddddddddddddddddddddddddddddddddd ddg.dd ZVejddsdtdge
d,doej"gddwfdsdtduge
d,dod-gddwfdsdtd-ge
d,dod-gddwfdsdtdge
d,dodgddwfdsddge
d,ej"dgddwfdsdtd	ge
d,dodgddwfgd
d ZWdd ZXdd ZYejdd,d,gdd"dfd0ejZgdd"dfd0d_gdd"dfd,ejZg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d0d0gdddfd0d_gdddfd,ejZgdddfddgdddfeejNjJd, d,gdddfd,d,gdddfd0d0gdddfd0d_gdddfd,ejZg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d,d,gdddfd,d_gdddffdd Z[dd Z\dd Z]ejd^d d!gd"d# Z^ejd$d%d&d'gd(d) Z_ejd$d%d&d'd*d+d,gd-d. Z`ejd/d0d1d2d3d4d5gd6d7 Zaejd8dd9gd:d;ggd<d= Zbejd!dddd>d?d@dAdBgdCdD ZcdEdF ZddGdH ZedIdJ ZfdS (K      N)iinfo)
ArrowDtype	DataFrameIndexSeries
to_numericignoreraisecoerce)paramsc                 C   s   | j S Nparamrequest r   c/var/www/html/Darija-Ai-Train/env/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   /   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_empty6   s    	r2   last_val7   c                 C   s4   t dd| g}t|}t dddg}t|| d S )N1-3.14   Q	r5   r   r   r.   r/   )r3   r!   r0   r1   r   r   r   test_seriesF   s    r;   datar8                  ?      @      @g      @c                 C   s*   t | tddd}t|}t|| d S )NZABCDZEFG)indexr    )r   listr   r.   r/   )r<   r!   r0   r   r   r   test_series_numericO   s    
rE   zdata,msgr9   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    rP   zerrors,exp_datac                 C   s2   t dddg}t|| d}t |}t|| d S )Nr8   r9   rF   rJ   r:   )r   exp_datar!   r0   r1   r   r   r   test_ignore_errorp   s    rR   z
errors,exp)r	   rG   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 )NTFrF   rH   rJ   	r   
isinstancer   rL   rM   rN   r   r.   r/   )r   expr!   r0   r1   r   r   r   test_bool_handling{   s    

rV   c                  C   s2   dddg} t | }tdddg}t|| d S )Nr6   r7   r4   r8   r9   r5   r   r"   r#   r.   assert_numpy_array_equal)r!   resr1   r   r   r   	test_list   s    
rZ   zdata,arr_kwargsc                 C   s&   t | }tj| f|}t|| d S r   rW   )r<   Z
arr_kwargsr0   r1   r   r   r   test_list_numeric   s    
r[   kwargsOc                 C   s6   dddg}t |f| }t|}t |}t|| d S )Nr8   r9   r5   r:   )r\   r<   r!   r0   r1   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       @rA   rB   r`   ra   皙?)
r   decimalDecimalr"   infcopyapplyr   r.   assert_frame_equal)r_   dfr1   Zdf_copyr   r   r   test_numeric_df_columns   s    
 rm   zdata,exp_datarb   g?re   c                 C   s:   t d| i}|d t|d< t d|i}t|| d S )Nr`   )r   rj   r   r.   rk   )r<   rQ   rl   r1   r   r   r   test_numeric_embedded_arr_likes   s    rn   c                  C   s>   t dddg} t| dd}t tjtjtjg}t|| d S )Nr`   ra   cr
   rJ   )r   r   r"   nanr.   r/   )r!   r0   r1   r   r   r   test_all_nan   s    rq   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 )Nr8   r9   r5   456rd   r   z	1-d arrayrH   )r   rL   rM   	TypeErrorr   )r   rl   r\   r   r   r   test_type_check   s    rv   valg?i!N  c                 C   s*   |r
|  n| } t || t| ks&td S r   r   floatAssertionError)rw   r   r   r   r   r   test_scalar   s    r{   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 0rH   r
   )	rT   r   rL   rM   rN   r   ry   r.   assert_almost_equal)	r   r   r   r   r\   rw   val_is_stringrO   r1   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
   r|   r}   z-Unable to parse string "string" at position 1rH   r+   )rT   r   rL   rM   rN   r   ry   appendr"   rp   r-   intr.   r~   r#   )r   r   r   r   r   r\   rw   Z	extra_eltarrr   ZcoercingrO   r0   Zexp_valr1   	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   r|   z"Integer out of range. at position rH   r
   c                 S   s   g | ]}t |qS r   )ry   ).0ir   r   r   
<listcomp>C  s     z7test_really_large_in_arr_consistent.<locals>.<listcomp>r+   )r   insertr   rL   rM   rN   r   ry   r-   r.   r~   r"   r#   )r   r   r   r   r\   r   rC   rO   r0   r1   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  r   c                 C   s
   t | S r   )r"   isnanr   r   r   r   r   Q  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   rH   rJ   )rT   r   rL   rM   rN   r   rz   )r   checkerZscalarr   r   r   test_scalar_failL  s
    	
r      c                 C   s&   |\}}|| } t | }|||  d S r   r   )r<   r%   r   assert_equalr0   r   r   r   test_numeric_dtypes^  s    r   zdata,expr6   23int64r+   z1.5z2.7z3.4      ?g@g333333@c                 C   s*   |\}}t || }||}||| d S r   r   )r<   rU   r%   r   r   r0   r1   r   r   r   test_strg  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   r0   r1   r   r   r   test_datetime_likev  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   r0   r1   r   r   r   test_timedelta  s
    
r   c                 C   sb   |\}}t jddddd}||}t|tsB| j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_rangerT   r   nodeZ
add_markerrL   markZxfailr   r   )r   r%   r   r   r   Zinpr0   r1   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@   rF   rH   rJ   )	r   rT   r   rL   rM   ru   r   r.   r/   )r   r1   r!   r0   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 )Nr6   r   r=   zunsigned-integerz#invalid downcasting method providedrH   r)   rL   rM   rN   r   )r<   Zinvalid_downcastrO   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 )Nr6   r   r=   invalidzinvalid error value specifiedrH   rJ   r   )r<   Zinvalid_error_valuerO   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)   ry   unsignedZUnsignedIntegerc                 C   s0   t | f|}tjdddg|d}t|| d S )Nr8   r   r=   r+   rW   )r<   r\   r   r0   r1   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   r8   r   r=   r+   r   )r"   r&   	typecodesr#   r   r.   rX   )r<   r   Zsmallest_int_dtyper1   rY   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.   rX   r<   r1   rY   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.   rX   r   r   r   r   $test_ignore_downcast_neg_to_unsigned  s    
r   z7ignore:invalid value encountered in cast:RuntimeWarningzdata,expectedz1.1g     @i N  i  gR@iP  g     j@c                 C   s   t | |d}t|| d S Nr   )r   r.   rX   )r<   r1   r)   rY   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.   rX   )r)   expected_dtyper<   r1   rY   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&   rz   )r&   r)   Z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<td S )Ng     pAr+   ry   r   )	r   r"   Zfinfofloat64maxrp   r   r&   rz   )r   r0   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   r.   r/   )r!   r1   r0   r   r   r   test_downcast_uint64H  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
   rJ   r+   )r   r   ry   r.   r/   )r<   rQ   r0   r1   r   r   r   test_coerce_uint64_conflictZ  s    r   )r	   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   rH   rJ   rS   )r   rU   r!   r0   r   r   r   test_non_coerce_uint64_conflictq  s    
r   dc1dc2c                 C   s$   t jtg | dtg |ddd d S )Nr   F)Zcheck_dtype)r.   rX   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
   rJ       @   Z32Z64)r   r"   r   rz   r   rp   r.   r/   )r0   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   rx   )r   r0   r   r   r   test_precision_float_conversion  s    5r   zvalues, expectedInt64g      @Float64z3.5c                 C   s$   t | |d}t|}t|| d S r*   r:   )r$   nullable_string_dtyper1   sr0   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 )Nr`   r6   r+   r
   rJ   r8   r   )r   r   r   NAr.   r/   )r   r$   r!   r0   r1   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 )Nr`   r6   r+   r   rJ   )r   ri   r   r.   r/   )r   r$   r!   r1   r0   r   r   r   +test_to_numeric_from_nullable_string_ignore  s
    r   z+data, input_dtype, downcast, expected_dtypeInt8i  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   r0   r1   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 )Nr8   r   r   r+   r'   r   r   )r   r#   r   r   r.   r   )r   r0   r1   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"   r   rz   )r0   r1   r   r   r   #test_to_numeric_scientific_notation*  s    
r   g  PeBg      Gc                 C   s&   t | g}t|dd}t|| d S )Nry   r   r:   )rw   r1   r0   r   r   r   4test_to_numeric_large_float_not_downcast_to_float_321  s    
r   z
val, dtype)r8   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,   )rw   r&   r!   r0   r1   r   r   r   test_to_numeric_dtype_backend9  s    r   )r8   int64[pyarrow])r   float64[pyarrow])Tbool[pyarrow]c                 C   sZ   d|k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   	rL   importorskipr   r-   r   r   r   r.   r/   )rw   r&   r   r!   r0   r1   r   r   r    test_to_numeric_dtype_backend_naD  s    
r   zval, dtype, downcast)r8   r   r'   )r   r   ry   )r8   r   r   )r8   int8[pyarrow]r'   )r   zfloat[pyarrow]ry   )r8   r   r   c                 C   s\   d|k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   )rw   r&   r)   r   r!   r0   r1   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   r8   r   r+   r   r   rL   r   r   r   r   r   r.   r/   )Zsmallerr   r!   r0   r1   r   r   r   .test_to_numeric_dtype_backend_downcasting_uintt  s    
r   r   r   zuint64[pyarrow]r   r   c                 C   sR   d| krt d tdtjg| d}t|dd}tdtjg| d}t|| d S )Nr   r8   r+   r   r   r   )r&   r!   r0   r1   r   r   r   .test_to_numeric_dtype_backend_already_nullable  s    
r   c              	   C   s   t dddg}| }tjtdd t|| d W 5 Q R X t|| dd}t|| t|| d	d}| d
krrd}nd}t tj	tj	tj	g|d}t|| d S )Nr`   ra   r   r   rH   r   r   )r   r   r
   r   zdouble[pyarrow]r   r+   )
r   ri   rL   rM   rN   r   r.   r/   r"   rp   )r   r!   r1   r0   r&   r   r   r   #test_to_numeric_dtype_backend_error  s    r   c               	   C   s<   t dddg} d}tjt|d t| dd W 5 Q R X d S )Nr8   r   r=   zPdtype_backend numpy is invalid, only 'numpy_nullable' and 'pyarrow' are allowed.rH   numpyr   rK   )r!   rO   r   r   r   test_invalid_dtype_backend  s
    r   c                  C   sZ   t d} ttdt|  d}t|ddd}tddd gt|  d}t	|| d S )Nr   Z12xr+   r
   )r   r   r8   r   )
rL   r   r   rD   r   r   r   r   r.   r/   )par!   r0   r1   r   r   r   test_coerce_pyarrow_backend  s
    
r  )grf   r   r"   r   rL   Zpandasr   r   r   r   r   r   Zpandas._testingZ_testingr.   Zfixturer   r   r   r   r   r   Zassert_index_equalr/   rX   r%   r   Zparametrizer   r   r2   r;   rE   rP   rp   rR   rV   rZ   r[   r^   rm   rg   r#   rn   rq   rv   r{   r   r   r   r   r   r   r   r   r   r   r   r   r&   Z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   r   r   r   r   r  r   r   r   r   <module>   s  






	



	



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

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

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

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




3 " 		   


