
    o[weo                     @   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          d3             Z*ej                             d4d5d0g d6fdd7d8ej)        gfg          d9             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                             d@dAdAdBgg          dC             Z/ej                             dD e j0        dE          d7g e j0        dF          dGgdEd7gdFdGgf ej1         e j0        dE          d7g          dGgdEd7gdGgfg          dH             Z2dI Z3dJ Z4ej                             dKg dL          dM             Z5dN Z6dO Z7dP Z8ej                             dQdRd0dS fddT fg          dU             Z9ej                             d$g dVd7ej)        dWej)        gg          dX             Z:ej                             dYg dZ ej1        g dVd[\          fg d] ej1        g d^          fg          d_             Z;d` Z<da Z=db Z>ej                             dcddd0 ededfgd7dgg          fd eej)        d7ej)        g          fg          dh             Z?di Z@dj ZAej                             d$g dkg dV ej1        g dldm\          g          ej                             dni ej!        fdodiej!        fdodpi ejB        ejC                  jD        fdodqi ejB        ejE        dr         d                    fg          ds                         ZFej                             dtddug          ej                             d$g dkg dV ej1        g dldm\          g          dv                         ZGdw ZHdx ZIej        J                    dy          ej                             dog dz          ej                             d{g d| ej1        g d}ejK        \          fg d~ ej1        g d~ejK        \          fg          d                                     ZLej                             ddejM        fduejM        fdqe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ddq eejS                  jP         eejS                  jQ        gfddq eejN                  jP         eejN                  jQ        gfddq eejT                  jP         eejT                  jQ        gfddq 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ddq eejS                  jP         eejS                  jQ        d1z   gfddq eejN                  jP         eejN                  jQ        d1z   gfddq 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                             dDg dddej)        ej)        dgfg dddej)        gfg          d             ZYej                             d4d0 eg d          fdg          d             ZZej                             dg d          ej                             dg d          d                         Z[d Z\ej                             dg d          d             Z]ej                             dg d ed1dfej)        gd\          fg dZ eg dVd\          fg d eg dV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d7e
ja        gdddfd7dgdddfd1e
ja        gdddfddgdddfd1d1gdddf ej        ej!                  jQ        d1z
  d1gdddfd1d1gddudfd7d7gddudfd7dgddudfd1e
ja        gddudfddgddudf ej        ejU                  jQ        d1z
  d1gddudfd1d1gddqdfd7d7gddqdfd7dgddqdfd1e
ja        gddqdfddgddqdfddgddqdfd1d1gddpdfd1dgddpdfd1d1gddpdfd1dgddpdff          d             Zbd Zcd Zdej                             dKddg          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    Blib/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   c                     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      s2   #)#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>J  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   5  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   W  s
    Q&[ r   c                 *    t          j        |           S r   )r/   isnanr   s    r   r   r   X  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   S  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   e  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   n  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                 F   |\  }}t          j        dddd          } ||          }t          |t                    s8| j                            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   node
add_markerrg   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                    }t          | dd          }t	          j        ||           d S )N)foor   rR   r:   r
   r   r6   )r/   r0   r<   r	   r=   ry   rQ   rB   rz   s      r   !test_ignore_downcast_invalid_datar    sN     ==DxF+++H
T(Z
@
@
@CX.....r   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   r  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  +  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"  G  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$  O  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.  a  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_conflictr1  x  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	   )r2  r3  s     r   test_downcast_emptyr6    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   rA  Float64)rK   NrA  rA  )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_stringrF    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   r@  )r   r	   r   NAr=   r>   )rD  r1   r-   rA   rB   s        r   +test_to_numeric_from_nullable_string_coercerI    sa    3ZF
4
5
5
5CH---Fruaj000H68,,,,,r   c                     ddg}t          ||           }|                                }t          |d          }t          j        ||           d S )Nr   rK   r:   r
   re   )r   r   r	   r=   r>   )rD  r1   r-   rB   rA   s        r   +test_to_numeric_from_nullable_string_ignorerK    sV    3ZF
4
5
5
5CxxzzHH---F68,,,,,r   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_numericrU    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   r@  r:   r5   r   rL  )r   r0   rH  r	   r=   rS  )r   rA   rB   s      r   %test_downcast_nullable_mask_is_copiedrW  $  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_notationrY  1  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[  8  s<     se}}H7333F68,,,,,r   z
val, dtype)rN   r@  r   rB  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_backendrd  @  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   ra  r:   rb  	rg   importorskipr   r<   r	   r   rH  r=   r>   )r   r4   rc  r-   rA   rB   s         r    test_to_numeric_dtype_backend_nark  K  s     EI&&&!(
#tF
+
+
+C=999FsBEl%000H68,,,,,r   zval, dtype, downcast))rN   rL  r5   )r   rN  r   )rN   rL  r   )rN   int8[pyarrow]r5   )r   zfloat[pyarrow]r   )rN   rl  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   ra  r:   rc  r7   ri  )r   r4   r7   rc  r-   rA   rB   s          r   )test_to_numeric_dtype_backend_downcastingro  c  s     EI&&&!(
#tF
+
+
+C=8LLLFsBEl%000H68,,,,,r   zsmaller, dtype_backendra  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   rO  r:   r   rn  rg   rj  r   r   rH  r	   r=   r>   )smallerrc  r-   rA   rB   s        r   .test_to_numeric_dtype_backend_downcasting_uintrs  {  s}     	!!I&&&
!RU8
,
,
,C=:NNNFq"%j000H68,,,,,r   )r@  rO  rB  r_  re  zuint64[pyarrow]rf  rg  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:   ra  rb  rq  )r4   r-   rA   rB   s       r   .test_to_numeric_dtype_backend_already_nullableru    s|     EI&&&
!RU5
)
)
)C+;<<<Fq"%j...H68,,,,,r   c                    t          g d          }|                                }t          j        t          d          5  t          ||            d d d            n# 1 swxY w Y   t          || d          }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   r/  rc   rb  r
   )rc  r   r   rE   zdouble[pyarrow]rB  r:   )
r   r   rg   rh   ri   r	   r=   r>   r/   r   )rc  r-   rB   rA   r4   s        r   #test_to_numeric_dtype_backend_errorrw    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 =JJJF68,,,=JJJF	!!!rvrvrv.e<<<H68,,,,,s   AA#&A#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   numpyrb  rf   )r-   rj   s     r   test_invalid_dtype_backendrz    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   rc  )rN   r   N)
rg   rj  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   ry  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   ro   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  filterwarningsr   r  r  r  r  minr!  r  r  r  r  r  r"  r$  r.  r1  r6  r<  r?  rF  rI  rK  rH  rU  rW  rY  r[  rd  rk  ro  rs  ru  rw  rz  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 - - - A	)))*	Cbf%&	 
1 
1 
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	 	( (	 	(- - -! ! ! 004 4 104
D D D"$L $L $LNL L L< @	(()	(() : : : )))c261bf-E!FGG  HG 	("(999G<<<=			 9 9: # # ## # ## # ## # # 6	66D!9c73445	66263/001 	1 	1 	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+ , , ,  @ @ @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   