
    bMh(s                        d dl Z d dlZd dlmZ d dlZd dlmc 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             Z ej        ddg          d	             Z ej        d
 egddg          d             Z ej        ddg          d             Z ej        ddg          d             Z ej        d ej        fd ej        fd ej        fg          d             Zej                             di dej!        ifddddej"        ifg          d             Z#ej                             dd ej$        d ej%        d                    g          ej                             d d!d"g          d#                         Z&ej                             d$g d%g d&g d'g          d(             Z'ej                             d)g d*d+fg d,d-fg          d.             Z(ej                             d/d0g d*fdd1d2ej)        gfg          ej        *                    d3          d4                         Z+ej                             d5d6d0g d7fdd8d9ej)        gfg          ej        *                    d3          d:                         Z,d; Z-ej                             d<g d%dej!        ifg d&i fg d'i fg          d=             Z.ej                             d>dd?ii g          d@             Z/ej                             dAdBdBdCgg          dD             Z0ej                             dE e j1        dF          d8g e j1        dG          dHgdFd8gdGdHgf ej2         e j1        dF          d8g          dHgdFd8gdHgfg          dI             Z3dJ Z4ej        *                    d3          dK             Z5ej                             dLg dM          dN             Z6ej        *                    d3          dO             Z7ej        *                    d3          dP             Z8ej        *                    d3          dQ             Z9ej                             dRdSd0dT fddU fg          ej        *                    d3          dV                         Z:ej                             d$g dWd8ej)        dXej)        gg          dY             Z;ej                             dZg d[ ej2        g dWd\]          fg d^ ej2        g d_          fg          d`             Z<da Z=db Z>dc Z?ej                             ddded0 edfdggd8dhg          fd eej)        d8ej)        g          fg          ej        *                    d3          di                         Z@dj ZAdk ZBej                             d$g dlg dW ej2        g dmdn]          g          ej                             doi ej!        fdpdiej!        fdpdqi ejC        ejD                  jE        fdpdri ejC        ejF        ds         d                    fg          dt                         ZGej                             duddvg          ej                             d$g dlg dW ej2        g dmdn]          g          dw                         ZHdx ZIdy ZJej        *                    dz          ej                             dpg d{          ej                             d|g d} ej2        g d~ejK        ]          fg d ej2        g dejK        ]          fg          d                                     ZLej                             ddejM        fdvejM        fdrejN        fg          d             ZOej                             ddd eej"                  jP         eej"                  jQ        gfdd eejM                  jP         eejM                  jQ        gfdd eejR                  jP         eejR                  jQ        gfd\d eej!                  jP         eej!                  jQ        gfddr eejS                  jP         eejS                  jQ        gfddr eejN                  jP         eejN                  jQ        gfddr eejT                  jP         eejT                  jQ        gfddr eejU                  jP         eejU                  jQ        gfdd eej"                  jP         eej"                  jQ        d1z   gfdd eejM                  jP         eejM                  jQ        d1z   gfd\d eejR                  jP         eejR                  jQ        d1z   gfdd eej"                  jP        d1z
   eejM                  jQ        gfdd eejM                  jP        d1z
   eejR                  jQ        gfd\d eejR                  jP        d1z
   eej!                  jQ        gfddr eejS                  jP         eejS                  jQ        d1z   gfddr eejN                  jP         eejN                  jQ        d1z   gfddr eejT                  jP         eejT                  jQ        d1z   gfg          d             ZVd ZWej                             d ed dg           ed dgejU        ]          fg          d             ZXej                             dEg dddej)        ej)        dgfg dddej)        gfg          d             ZYej                             d5d0 eg d          fdg          ej        *                    d3          d                         ZZej                             dg d          ej                             dg d          d                         Z[d Z\ej                             dg d          d             Z]ej                             dg d ed1dgej)        gd]          fg d[ eg dWd]          fg d eg dWd]          fg d eg dd]          fg d ed1ej)        dgd]          fg d eg dd]          fg          d             Z^d Z_d Z`ej                             dd1d1gdddfd8e
ja        gdddfd8dgdddfd1e
ja        gdddfddgdddfd1d1gdddf ej        ej!                  jQ        d1z
  d1gdddfd1d1gddvdfd8d8gddvdfd8dgddvdfd1e
ja        gddvdfddgddvdf ej        ejU                  jQ        d1z
  d1gddvdfd1d1gddrdfd8d8gddrdfd8dgddrdfd1e
ja        gddrdfddgddrdfddgddrdfd1d1gddqdfd1dgddqdfd1d1gddqdfd1dgddqdff          d             Zbd Zcd Zdej                             dLddg          d             Zeej                             dg d          d             Zfej                             dg dâ          dĄ             Zgej                             dg dƢ          dǄ             Zhej                             dddgddgg          d˄             Ziej                             dg d̢          d̈́             Zjd΄ Zkdτ ZldЄ ZmdS )    N)iinfo)
ArrowDtype	DataFrameIndexSeriesoption_context
to_numeric)Nignoreraisecoerce)paramsc                     | j         S Nparamrequests    b/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/pandas/tests/tools/test_to_numeric.pyerrorsr      
    =    TFc                     | j         S r   r   r   s    r   signedr      r   r   c                     | S r    xs    r   <lambda>r      s    ! r   identitystr)r   idsc                     | j         S r   r   r   s    r   	transformr#      r   r   l   N"2) l      Fx:^V c                     | j         S r   r   r   s    r   	large_valr%   $   r   r   c                     | j         S r   r   r   s    r   multiple_eltsr'   )   r   r   c                 $    t          | d          S )Nidxname)r   r   s    r   r   r   0   s    5''' r   c                 $    t          | d          S )Nserr*   )r   r   s    r   r   r   1   s    6!%((( r   c                 N    t          j        t          |           j                  S r   )nparrayr   valuesr   s    r   r   r   2   s    28E!HHO,, r   c                     | j         S r   r   r   s    r   transform_assert_equalr3   .   s     =r   zinput_kwargs,result_kwargsdtyper   integerr   downcastc                     t          g t                    }t          |fi | }t          g fi |}t          j        ||           d S Nr4   r   objectr	   tmassert_series_equal)input_kwargsresult_kwargsr-   resultexpecteds        r   
test_emptyrC   9   sY     6
"
"
"C,,|,,Fb**M**H68,,,,,r   infer_stringpyarrow)markslast_val7   c                     t          d|          5  t          dd| g          }t          |          }d d d            n# 1 swxY w Y   t          g d          }t          j        ||           d S )Nzfuture.infer_string1-3.14   Q	rI   )r   r   r	   r=   r>   )rG   rD   r-   rA   rB   s        r   test_seriesrP   I   s    
 
-|	<	< ! !c7H-..C! ! ! ! ! ! ! ! ! ! ! ! ! ! ! mmm$$H68,,,,,s   "?AAdata)rN            )      ?      @      @g      @)TFTTc                     t          | t          d          d          }t          |          }t          j        ||           d S )NABCDEFG)indexr+   )r   listr	   r=   r>   )rQ   r-   rA   s      r   test_series_numericr]   V   sB     T&\\
6
6
6C__F63'''''r   zdata,msgrN   rO   apple,Unable to parse string "apple" at position 2)orangerN   rO   r_   z-Unable to parse string "orange" at position 0c                     t          |           }t          j        t          |          5  t	          |d           d d d            d S # 1 swxY w Y   d S )Nmatchr   r   r   pytestraises
ValueErrorr	   )rQ   msgr-   s      r   
test_errorrk   f   s     ,,C	z	-	-	- ( (3w''''( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( (s   A

AAzerrors,exp_datar
   rN   rO   z2ignore:errors='ignore' is deprecated:FutureWarningc                     t          g d          }t          ||           }t          |          }t          j        ||           d S )Nr^   re   r   r	   r=   r>   )r   exp_datar-   rA   rB   s        r   test_ignore_errorro   w   sP    
 $$$
%
%CF+++FhH68,,,,,r   z
errors,exp)r   r`   TFr_   rU   g        c                 J   t          g d          }t          |t                    rGt          j        t
          |          5  t          ||            d d d            d S # 1 swxY w Y   d S t          ||           }t          |          }t          j        ||           d S )Nrp   rc   re   	r   
isinstancer    rg   rh   ri   r	   r=   r>   )r   expr-   rA   rB   s        r   test_bool_handlingru      s     '''
(
(C#s 1]:S111 	+ 	+s6****	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ C///#;;
vx00000   A!!A%(A%c                      g d} t          |           }t          j        g d          }t          j        ||           d S )N)rK   rL   rH   rM   r	   r/   r0   r=   assert_numpy_array_equal)r-   resrB   s      r   	test_listr{      sD    


C
S//Cx&&HX.....r   zdata,arr_kwargsc                 r    t          |           }t          j        | fi |}t          j        ||           d S r   rx   )rQ   
arr_kwargsrA   rB   s       r   test_list_numericr~      sA     Fx++
++H11111r   kwargsOc                     g d}t          |fi | }t          |          }t          |          }t          j        ||           d S )NrM   rm   )r   rQ   r-   rA   rB   s        r   test_numericr      sO    ==D

 
 
 
 C__Fd||H68,,,,,r   columnsabc                 Z   t          dt          j        d          t          j        d          dgg dd          }t          ddt          j        dgg dd          }|                                }||                              t                    || <   t          j	        ||           d S )Ng333333?Q	@infinityz0.1)rU   g       @rV   rW   r   r   皙?)
r   decimalDecimalr/   infcopyapplyr	   r=   assert_frame_equal)r   dfrB   df_copys       r   test_numeric_df_columnsr      s     
wt,,goj.I.I5Q%%%	
 	

 
B T2637>R>R>RSSTTHggiiGw'--j99GG'8,,,,,r   zdata,exp_datar   g?r   c                     t          d| i          }|d                             t                    |d<   t          d|i          }t          j        ||           d S )Nr   )r   r   r	   r=   r   )rQ   rn   r   rB   s       r   test_numeric_embedded_arr_likesr      sX     
C;		BgmmJ''BsG#x))H"h'''''r   c                      t          g d          } t          | d          }t          t          j        t          j        t          j        g          }t	          j        ||           d S )N)r   r   cr   re   )r   r	   r/   nanr=   r>   )r-   rA   rB   s      r   test_all_nanr      sX    

!
!CH---Frvrvrv.//H68,,,,,r   c                     t          g dg dd          }| d| ini }t          j        t          d          5  t	          |fi | d d d            d S # 1 swxY w Y   d S )NrM   )456r   r   z	1-d arrayrc   )r   rg   rh   	TypeErrorr	   )r   r   r   s      r   test_type_checkr      s     
___==	>	>B#)#5h2F	y	4	4	4 ! !2     ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !s   AAAval)rN   皙?i!N  c                 j    |r|  n| } t           ||                     t          |           k    sJ d S r   r	   float)r   r   r#   s      r   test_scalarr      s?    
!3$$cCiinn%%s333333r   c                 l   |d|ini }|r|  n| } ||          }t          |t                    }|rI|dv rEd}t          j        t          |          5  t          |fi | d d d            d S # 1 swxY w Y   d S |dk    r|rt          |          n|}t          j        t          |fi ||           d S )Nr   Nr   #Integer out of range. at position 0rc   r   )	rs   r    rg   rh   ri   r	   r   r=   assert_almost_equal)	r%   r   r#   r   r   r   val_is_stringrj   rB   s	            r   test_really_large_scalarr      s4    $*#5h2F
-9**IC
)C..CsC((M D?223]:S111 	& 	&s%%f%%%	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& #)H"4"4"45:::S
z#8888(CCCCCs   A..A25A2c                    |d|ini }|r|  n| } ||          }d}|g||gz  z   }t          |t                    }	|dk    }
|dv rN|	s|rJ|	rd}nd}t          j        t          |          5  t          |fi | d d d            d S # 1 swxY w Y   d S t          |fi |}|
r|	rt          |          n|}|g}|rF|
r'|                    t          j	                   t          }nG|                    |           t          }n*t          |t          t          f          rt          nt          }t          j        |t          j        ||                     d S )	Nr   stringr   r   r   z-Unable to parse string "string" at position 1rc   r:   )rs   r    rg   rh   ri   r	   r   appendr/   r   r<   intr=   r   r0   )r%   r   r#   r'   r   r   r   	extra_eltarrr   coercingrj   rA   exp_valrB   	exp_dtypes                   r   test_really_large_in_arrr     s    $*#5h2F
-9**IC
)C..CI%-9+-
-CsC((M!H  m }  	B7CCAC]:S111 	& 	&s%%f%%%	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& C**6**!)EmE%***#9 	O #'''!			***"		!+Gc5\!B!BNI
vrx	'J'J'JKKKKKs   ,BBBc                    |d|ini }t          |r|  n|           g}|r|                    d|            |dv rWt          |          }d| }t          j        t
          |          5  t          |fi | d d d            d S # 1 swxY w Y   d S t          |fi |}|dk    rd |D             }	t          }
n	|}	t          }
t          j
        |t          j        |	|
                     d S )	Nr   r   r   z"Integer out of range. at position rc   r   c                 ,    g | ]}t          |          S r   )r   ).0is     r   
<listcomp>z7test_really_large_in_arr_consistent.<locals>.<listcomp>P  s    ...Qa...r   r:   )r    insertr   rg   rh   ri   r	   r   r<   r=   r   r/   r0   )r%   r   r'   r   r   r   r[   rj   rA   rB   r   s              r   #test_really_large_in_arr_consistentr   :  sq    $*#5h2FV2	zz33
4C !

1i     M"":5::]:S111 	& 	&s%%f%%%	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& C**6**X..#...HIIHI
vrx	'J'J'JKKKKKs   )BBBzerrors,checker)r   z+Unable to parse string "fail" at position 0c                     | dk    S )Nfailr   r   s    r   r   r   ]  s
    Q&[ r   c                 *    t          j        |           S r   )r/   isnanr   s    r   r   r   ^  s    RXa[[ r   c                     d}t          |t                    rGt          j        t          |          5  t          ||            d d d            d S # 1 swxY w Y   d S  |t          ||                     sJ d S )Nr   rc   re   )rs   r    rg   rh   ri   r	   )r   checkerscalars      r   test_scalar_failr   Y  s     F'3 :]:W555 	. 	.vf----	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. wz&8889999999s   AAArN      rR   rR   c                 \    |\  }} ||           } t          |           } |||            d S r   r	   )rQ   r3   r#   assert_equalrA   s        r   test_numeric_dtypesr   l  s>    4I|9T??DFLr   zdata,exp)rK   23int64r:   )z1.5z2.7z3.4)      ?g@g333333@c                 n    |\  }}t           ||                     } ||          } |||           d S r   r   )rQ   rt   r3   r#   r   rA   rB   s          r   test_strr   u  sH     5I|		$((Fy~~HL"""""r   c                     |\  }}t          j        dd|           }t           ||                    } ||j                  } |||           d S )N20130101rR   )periodstz)pd
date_ranger	   asi8)tz_naive_fixturer3   r#   r   r)   rA   rB   s          r   test_datetime_liker     sa    4I|
-
A2B
C
C
CC		#''Fy""HL"""""r   c                     | \  }}t          j        ddd          }t           ||                    } ||j                  } |||           d S )Nz1 daysrR   D)r   freq)r   timedelta_ranger	   r   )r3   r#   r   r)   rA   rB   s         r   test_timedeltar     sa    4I|

Xqs
;
;
;C		#''Fy""HL"""""r   c                 <   |\  }}t          j        dddd          } ||          }t          |t                    s3|                     t
          j                            d                     t          |          } ||j	                  } |||           d S )Nz2011-01rR   M )r   r   r+   z)Missing PeriodDtype support in to_numeric)reason)
r   period_rangers   r   applymarkerrg   markxfailr	   r   )r   r3   r#   r   r)   inprA   rB   s           r   test_periodr     s    4I|
/)QSr
B
B
BC
)C..Cc5!! 
K%PQQ	
 	
 	
 __Fy""HL"""""r   zerrors,expected)r   z!Invalid object type at position 0      $@r   r_   c                 2   t          ddgddg          }t          |t                    rGt          j        t
          |          5  t          ||            d d d            d S # 1 swxY w Y   d S t          ||           }t          j        ||           d S )Nr   r   rU   r_   rc   re   )	r   rs   r    rg   rh   r   r	   r=   r>   )r   rB   r-   rA   s       r   test_non_hashabler     s     4)S'*
+
+C(C   1]9H555 	+ 	+s6****	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ C///
vx00000s   A$$A(+A(c                      g d} d}d}t          j        t          |          5  t          | |           d d d            d S # 1 swxY w Y   d S )NrK   r   rR   zunsigned-integerz#invalid downcasting method providedrc   r7   rg   rh   ri   r	   )rQ   invalid_downcastrj   s      r   test_downcast_invalid_castr     s    ;;D)
/C	z	-	-	- 4 44"233334 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4   AA
Ac                      g d} d}d}t          j        t          |          5  t          | |           d d d            d S # 1 swxY w Y   d S )Nr   invalidzinvalid error value specifiedrc   re   r   )rQ   invalid_error_valuerj   s      r   test_errors_invalid_valuer     s    ;;D#
)C	z	-	-	- 5 54 344445 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5r   r   )z
1970-01-02z
1970-01-03z
1970-01-04zdatetime64[D]zkwargs,exp_dtyper7   r   unsignedUnsignedIntegerc                 z    t          | fi |}t          j        g d|          }t          j        ||           d S )Nr   r:   rx   )rQ   r   r   rA   rB   s        r   test_downcast_basicr     sJ    , ''''Fx			333H11111r   signed_downcastr   c                     t          j        t           j        d         d                   }t          j        g d|          }t	          | |          }t          j        ||           d S )NIntegerr   r   r:   r   )r/   r4   	typecodesr0   r	   r=   ry   )rQ   r   smallest_int_dtyperB   rz   s        r   test_signed_downcastr     sd     ",y"9!"<==x			);<<<H
TO
4
4
4CX.....r   c                      g d} t          j        | t                    }d}t          j        t
          |          5  t          | dd          }d d d            n# 1 swxY w Y   t          j        ||           d S )N)foor   rR   r:   errors='ignore' is deprecatedrc   r
   r   r6   )r/   r0   r<   r=   assert_produces_warningFutureWarningr	   ry   )rQ   rB   rj   rz   s       r   !test_ignore_downcast_invalid_datar    s     ==DxF+++H
)C		#M	=	=	= E EhDDDE E E E E E E E E E E E E E EX.....s   AA #A c                      g d} t          j        g dt           j                  }t          | d          }t	          j        ||           d S )N)z-1r   rR   )r   rR   r:   r   r   )r/   r0   r   r	   r=   ry   )rQ   rB   rz   s      r   $test_ignore_downcast_neg_to_unsignedr	    sR     <<Dx


"(333H
TJ
/
/
/CX.....r   z7ignore:invalid value encountered in cast:RuntimeWarning)r5   r   r   zdata,expected)z1.1r   rR   )r   r   rR   )g     @i N  i  gR@iP  g     j@c                 R    t          | |          }t          j        ||           d S Nr   )r	   r=   ry   )rQ   rB   r7   rz   s       r   )test_ignore_downcast_cannot_convert_floatr    s/    " TH
-
-
-CX.....r   zdowncast,expected_dtypec                     g d}t          j        g d|          }t          ||           }t          j        ||           d S )N)256    )   r  r  r:   r   )r/   r0   r	   r=   ry   )r7   expected_dtyperQ   rB   rz   s        r   test_downcast_not8bitr  (  sR     Dx~>>>H
TH
-
-
-CX.....r   zdtype,downcast,min_maxint8int16int32uint8uint16uint32uint64c                 \    t          t          |          |          }|j        | k    sJ d S r  )r	   r   r4   )r4   r7   min_maxseriess       r   test_downcast_limitsr  5  s5    0 w(;;;F<5      r   c                      t          dt          j        t          j                  j        t          j        gt          j                  } t          | d          }| j        |j        k    sJ d S )Ng     pAr:   r   r   )r   r/   finfofloat64maxr   r	   r4   )r  rA   s     r    test_downcast_float64_to_float32r#  Q  s[    Z"*!5!5!926B"*UUUF111F<6<''''''r   zser,expectedl            c                 R    t          | d          }t          j        ||           d S )Nr   r   )r	   r=   r>   )r-   rB   rA   s      r   test_downcast_uint64r%  Y  s/     j111F68,,,,,r   )   ,  r   NaN     p;6$ r&  r'  r)  12345678901234567890
1234567890ITEMl   
>V3&Z
 iIc                     t          t          |           d          }t          |t                    }t          j        ||           d S )Nr   re   r:   )r	   r   r   r=   r>   )rQ   rn   rA   rB   s       r   test_coerce_uint64_conflictr/  k  sG    $ tX666Fhe,,,H68,,,,,r   )r   Unable to parse stringc                 ,   t          g d          }t          |t                    rGt          j        t
          |          5  t          ||            d d d            d S # 1 swxY w Y   d S t          ||           }t          j        ||           d S )Nr*  rc   re   rr   )r   rt   r-   rA   s       r   test_non_coerce_uint64_conflictr2    s     ???
@
@C#s ,]:S111 	+ 	+s6****	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ C///
vs+++++rv   dc1)r5   r   r   dc2c                 p    t          j        t          g |           t          g |          d           d S )Nr   F)check_dtype)r=   ry   r	   )r3  r4  s     r   test_downcast_emptyr7    sK    
 2$$$2$$$     r   c                      t          dd          } t          j        |           sJ t          ddt          j        g          }t          t          g d          d          } t          j        | |           d S )Nr  r   re       @   )3264r  )r	   r/   r   r   r   r=   r>   )rA   r-   s     r   ,test_failure_to_convert_uint64_string_to_NaNr=    sz    222F8F
"b"&!
"
"C55566xHHHF63'''''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                 N    t          |           }|t          |           k    sJ d S r   r   )r>  rA   s     r   test_precision_float_conversionr@    s/    j FU6]]""""""r   zvalues, expected)rK   r   NInt64)rK   r   rR   )rK   r         @)rN   r   rB  Float64)rK   NrB  rB  )rK   r   z3.5c                 p    t          | |          }t          |          }t          j        ||           d S r9   rm   )r1   nullable_string_dtyperB   srA   s        r   $test_to_numeric_from_nullable_stringrG    s;     	v2333A]]F68,,,,,r   c                     ddg}t          ||           }t          |d          }t          t          j        dgd          }t	          j        ||           d S )Nr   rK   r:   r   re   rN   rA  )r   r	   r   NAr=   r>   )rE  r1   r-   rA   rB   s        r   +test_to_numeric_from_nullable_string_coercerJ    sa    3ZF
4
5
5
5CH---Fruaj000H68,,,,,r   c                    ddg}t          ||           }|                                }d}t          j        t          |          5  t          |d          }d d d            n# 1 swxY w Y   t          j        ||           d S )Nr   rK   r:   r  rc   r
   re   )r   r   r=   r  r  r	   r>   )rE  r1   r-   rB   rj   rA   s         r   +test_to_numeric_from_nullable_string_ignorerL    s    3ZF
4
5
5
5CxxzzH
)C		#M	=	=	= 2 2C1112 2 2 2 2 2 2 2 2 2 2 2 2 2 268,,,,,s   A%%A),A)z+data, input_dtype, downcast, expected_dtypeInt8r   i  Int16Float32iUInt64UInt8r  Int32c                     t          j        | |          }t          ||          }t          j        | |          }t          j        ||           d S )Nr:   r   )r   r0   r	   r=   assert_extension_array_equal)rQ   input_dtyper7   r  r   rA   rB   s          r   test_downcast_nullable_numericrV    sW    : (4{
+
+
+Ch///FxN333H#FH55555r   c                  &   t          j        ddt           j        gd          } t          | d          }t          j        ddt           j        gd          }t	          j        ||           t           j        | d<   t	          j        ||           d S )NrN   r   rA  r:   r5   r   rM  )r   r0   rI  r	   r=   rT  )r   rA   rB   s      r   %test_downcast_nullable_mask_is_copiedrX  1  s     (Aq"%=
0
0
0Ci000FxAruV444H#FH555UCF#FH55555r   c                  \    t          d          } t          j        d          }| |k    sJ d S )Nz1.7e+308gv;w0B)r	   r/   r!  )rA   rB   s     r   #test_to_numeric_scientific_notationrZ  >  s5    
##Fz'""HXr   g  PeBg      Gc                 r    t          | g          }t          |d          }t          j        ||           d S )Nr   r   rm   )r   rB   rA   s      r   4test_to_numeric_large_float_not_downcast_to_float_32r\  E  s<     se}}H7333F68,,,,,r   z
val, dtype)rN   rA  r   rC  Tbooleanc                     t          | gt                    }t          |d          }t          | g|          }t          j        ||           d S )Nr:   numpy_nullabledtype_backendr;   )r   r4   r-   rA   rB   s        r   test_to_numeric_dtype_backendre  M  sX    
 #f
%
%
%C+;<<<Fse5)))H68,,,,,r   )r]  r^  r_  )rN   int64[pyarrow])r   float64[pyarrow])Tbool[pyarrow]c                     d|v rt          j        d           d}nd}t          | d gt                    }t	          ||          }t          | t
          j        g|          }t          j        ||           d S )NrE   rb  r:   rc  	rg   importorskipr   r<   r	   r   rI  r=   r>   )r   r4   rd  r-   rA   rB   s         r    test_to_numeric_dtype_backend_narl  X  s     EI&&&!(
#tF
+
+
+C=999FsBEl%000H68,,,,,r   zval, dtype, downcast))rN   rM  r5   )r   rO  r   )rN   rM  r   )rN   int8[pyarrow]r5   )r   zfloat[pyarrow]r   )rN   rm  r   c                     d|v rt          j        d           d}nd}t          | d gt                    }t	          |||          }t          | t
          j        g|          }t          j        ||           d S )NrE   rb  r:   rd  r7   rj  )r   r4   r7   rd  r-   rA   rB   s          r   )test_to_numeric_dtype_backend_downcastingrp  p  s     EI&&&!(
#tF
+
+
+C=8LLLFsBEl%000H68,,,,,r   zsmaller, dtype_backendrb  zuint8[pyarrow]c                     |dk    rt          j        d           t          dt          j        gd          }t          ||d          }t          dt          j        g|           }t          j        ||           d S )NrE   rN   rP  r:   r   ro  rg   rk  r   r   rI  r	   r=   r>   )smallerrd  r-   rA   rB   s        r   .test_to_numeric_dtype_backend_downcasting_uintrt    s}     	!!I&&&
!RU8
,
,
,C=:NNNFq"%j000H68,,,,,r   )rA  rP  rC  r`  rf  zuint64[pyarrow]rg  rh  c                     d| v rt          j        d           t          dt          j        g|           }t          |d          }t          dt          j        g|           }t          j        ||           d S )NrE   rN   r:   rb  rc  rr  )r4   r-   rA   rB   s       r   .test_to_numeric_dtype_backend_already_nullablerv    s|     EI&&&
!RU5
)
)
)C+;<<<Fq"%j...H68,,,,,r   c                 X   t          g d          }|                                }t          j        t          d          5  t          ||            d d d            n# 1 swxY w Y   d}t          j        t          |          5  t          || d          }d d d            n# 1 swxY w Y   t          j	        ||           t          || d          }| d	k    rd
}nd}t          t          j        t          j        t          j        g|          }t          j	        ||           d S )N)r   r   r   r0  rc   rc  r  r
   )rd  r   r   rE   zdouble[pyarrow]rC  r:   )r   r   rg   rh   ri   r	   r=   r  r  r>   r/   r   )rd  r-   rB   rj   rA   r4   s         r   #test_to_numeric_dtype_backend_errorrx    s   

 
 CxxzzH	z)A	B	B	B 5 53m44445 5 5 5 5 5 5 5 5 5 5 5 5 5 5 *C		#M	=	=	= O OC}XNNNO O O O O O O O O O O O O O O68,,,=JJJF	!!!rvrvrv.e<<<H68,,,,,s$   AA#&A#B&&B*-B*c                      t          g d          } d}t          j        t          |          5  t	          | d           d d d            d S # 1 swxY w Y   d S )Nr   zPdtype_backend numpy is invalid, only 'numpy_nullable' and 'pyarrow' are allowed.rc   numpyrc  rf   )r-   rj   s     r   test_invalid_dtype_backendr{    s    


C	!  
z	-	-	- / /3g..../ / / / / / / / / / / / / / / / / /s   AAAc                  Z   t          j        d          } t          t          d          t	          |                                                     }t          |dd          }t          g dt	          |                                                     }t          j	        ||           d S )NrE   12xr:   r   )r   rd  )rN   r   N)
rg   rk  r   r\   r   r   r	   r   r=   r>   )par-   rA   rB   s       r   test_coerce_pyarrow_backendr    s    		Y	'	'B
eJryy{{$;$;
<
<
<CHIFFFFlll*RXXZZ*@*@AAAH68,,,,,r   )nr   rz  r/   r   rg   pandas.util._test_decoratorsutil_test_decoratorstdpandasr   r   r   r   r   r   r	   pandas._testing_testingr=   fixturer   r   r    r#   r%   r'   assert_index_equalr>   ry   r3   r   parametrizer   r  rC   r   
skip_if_norP   r]   rk   r   filterwarningsro   ru   r{   r~   r   r   r   r0   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r4   float32charr   r   r   r  r	  r!  r  r  r  r  minr"  r  r  r  r  r  r#  r%  r/  r2  r7  r=  r@  rG  rJ  rL  rI  rV  rX  rZ  r\  re  rl  rp  rt  rv  rx  r{  r  r   r   r   <module>r     s               ) ) ) ) ) ) ) ) )                          :::;;;  <; e}%%%  &% S)
E/BCCC  DC ,.CDEEE  FE e}%%%  &% 	'	')>?	(	("*@A	,	,b.IJ      	grx !)	4	4w6HI - - - ULFL]R]95M5MNNNO  c1X..- - /. - 
!!!	 ( ( ( 			LM)));	
	 	( (	 	( #6#6#67(QrvDV9WX  PQQ- - RQ - A	)))*	Cbf%&	  PQQ
1 
1 RQ 
1/ / / 	*+			r"	"	"	"B'	 2 2 2 WcNB#788- - 98-  		c
	 - - -"  god##S)?7?3+?+?EC[#s#	
 "(OGOD))3/
0
0#	6$c8JK	 	( (	 	(- - - PQQ! ! RQ! 004 4 104
 PQQD D RQD" PQQ$L $L RQ$LN PQQL L RQL< @	(()	(()  PQQ: : RQ : )))c261bf-E!FGG  HG 	("(999G<<<=			 9 9: # # ## # ## # ## # # 6	66D!9c73445	66263/001  PQQ	1 	1 RQ 	14 4 45 5 5 
		;;;?SSS   
RX
d	RX&
g	 4 4 9:
j	!828BL9J,KA,N#O#OP 2 2  (2 *Y,ABB
		;;;?SSS / /  CB/
/ 
/ 
// / / UVV%F%F%FGG	BJ???@===BHAAA  	
 / /  HG WV/ Xrx0:ry2IJ / /	 / 	UU27^^/rw1CDE	)eeBHoo155??3FGH	)eeBHoo155??3FGH	)eeBHoo155??3FGH	*uuRX2EE"(OO4GHI	:bi 0 0 4eeBI6F6F6JKL	:bi 0 0 4eeBI6F6F6JKL	:bi 0 0 4eeBI6F6F6JKL	)eeBGnn0%%..2Dq2HIJ	)eeBHoo155??3F3JKL	)eeBHoo155??3F3JKL	)eeBGnn014eeBHoo6IJK	)eeBHoo1A5uuRX7JKL	)eeBHoo1A5uuRX7JKL	:bh 3UU28__5H15LMN	:bi 0 0 4eeBI6F6F6JQ6NOP	:bi 0 0 4eeBI6F6F6JQ6NOP# ,! !- ,!( ( (  FA*+,,FA*+29===	
 - - -  877#rvrv';<	

 ;::!:rv6	
	 - - - 	66HHHIIJ+  PQQ, , RQ ,  @ @ @AA @ @ @AA  BA BA( ( ( / / /2 2f# #g2 2f# 			661a.@@@A	&&':::;	yyy8889	&&I>>>?			661bfc"2)DDDE			FF;;;i@@@A
 
- -
 
-- - -- - - 1
Q)V,
ruy)V4
sY	95
RUWi0
sWi1
QIv.
"(28


 1
$a	('9gF
Q(F+
sY&1
sY)4
RUWh/
tgx1
"(29


!A
%q	)8XxH
Q*g.
sY
G4
sY
I6
RUWj'2
tgz73
b7J0
QGY/
S9gy1
QGY/
S9gy1/ 86 69 86
6 
6 
6   x 899- - :9- EEE - - -   
 

- 
-
 

-   
 

- 
-
 

-  #3Y"?@ - -	 - 	 	 	 - - -- - -*/ / /- - - - -r   