
    ,ix              	          d Z ddlZddlZddlZddlmZ ddlmZ ddl	m
Z
mZ ddlmc mZ ddlmZ ddlZddlmZ ddlmZ ddlmZmZ ej8                  d	        Zej8                  d
        Zej8                  d        Zd Z d Z!d Z"d Z#d Z$d Z%d Z&d Z'd Z(d Z)d Z*d Z+d Z,d Z-ej\                  j_                  d      d        Z0ej\                  j_                  d      d        Z1d Z2d Z3d  Z4d! Z5 ejl                  d"      d#        Z7d$ Z8d% Z9ej\                  ju                  d&ejv                   ejx                  d'       e=d'      dej|                  g      d(        Z?ej\                  ju                  d)d*d+g      d,        Z@d- ZAd. ZBd/ ZCej\                  ju                  d0d*d+g      d1        ZDej\                  ju                  d0d*d+g      d2        ZEej\                  ju                  d3d4d5g      ej\                  ju                  d0d*d+g      d6               ZFej\                  ju                  d3d4d5g      ej\                  ju                  d7ej                  ej                  g      d8               ZId9 ZJd: ZKej\                  j                  d;      d<        ZMej\                  j                  d;      d=        ZNej\                  j                  d;      d>        ZOd? ZPd@ ZQej\                  ju                  dAg dB ej                  g dC      fg dD ej                  g dE      fg      dF        ZRdG ZSdH ZTej\                  ju                  dIej                  ej                  ejx                  g      dJ        ZWdK ZXdL ZYdM ZZdN Z[dO Z\dP Z]dQ Z^dR Z_ej\                  ju                  d7ej                  ej                  g      dS        Z`y)Tz
This module tests the functionality of StringArray and ArrowStringArray.
Tests for the str accessors are in pandas/tests/strings/test_string_array.py
    N)using_string_dtype)HAS_PYARROW)pa_version_under12p0pa_version_under19p0)is_dtype_equal)StringArrayNumpySemantics)ArrowStringArrayArrowStringArrayNumpySemanticsc                 :    | \  }}t        j                  ||      S )zKFixture giving StringDtype from parametrized storage and na_value argumentsstoragena_valuepdStringDtype)string_dtype_argumentsr   r   s      v/var/www/system.tvplus.app.br/jogos/scrap/venv/lib/python3.12/site-packages/pandas/tests/arrays/string_/test_string.pydtyper      s     /GX>>'H==    c                 :    | \  }}t        j                  ||      S )Nr   r   )string_dtype_arguments2r   r   s      r   dtype2r   %   s    /GX>>'H==r   c                 "    | j                         S )z3Fixture giving array type from parametrized 'dtype')construct_array_typer   s    r   clsr   +   s     %%''r   c                 *   t         rt        j                  dt        j                        t        j                  dt        j                        t        j                  dt        j
                        t        j                  dt        j
                        g}nJt        j                  dt        j                        t        j                  dt        j
                        g}|j                  |       }|j                  |      }|t        ||         S )Npythonr   pyarrow)r   r   r   npnanNAindexmax)dtype1r   DTYPE_HIERARCHYh1h2s        r   string_dtype_highest_priorityr*   1   s    NN8bff5NN9rvv6NN8bee4NN9ruu5	
 NN8bff5NN8bee4

 
		v	&B			v	&B3r2;''r   c                     t        j                  d       t        j                  t              5  t        j                  d      } d d d         t        j                  dt        j                        k(  sJ y # 1 sw Y   4xY w)Nr    pyarrow_numpyr   )	pytestimportorskiptmassert_produces_warningFutureWarningr   r   r!   r"   r   s    r   test_dtype_constructorr2   D   s^    
	"		#	#M	2 0/0BNN9rvv>>>>0 0s   A88Bc                  f   t        j                  d       t        j                  d      } t        j                  d      }t        j                  dt        j
                        }| t        j                  dt        j                        k(  sJ | |k7  sJ | |k7  sJ |t        j                  dt        j                        k(  sJ || k7  sJ ||k7  sJ |t        j                  dt        j
                        k(  sJ |t        j                  dt        d            k(  sJ || k7  sJ ||k7  sJ y )Nr    r   r   r"   )r-   r.   r   r   r!   r"   r#   float)r&   r   dtype3s      r   test_dtype_equalityr6   L   s   
	"^^H%F^^I&F^^I7FR^^Hruu====VVR^^I>>>>VVR^^I????R^^IeEEEEVVr   c                    t        j                  dt        j                  dt         j                  dg|       i      }| j                  t
        j                  u rd}nd}t        |      |k(  sJ | j                  t
        j                  u rd}nd}t        |j                        |k(  sJ | j                  d	k(  r%| j                  t         j                  u r	d
}d| d}np| j                  d	k(  r%| j                  t
        j                  u r	d}d| d}n<| j                  dk(  r%| j                  t
        j                  u r	d}d| d}nd}d| d}t        |j                  j                        |k(  sJ y )NAabr   z     A
0    a
1  NaN
2    bz      A
0     a
1  <NA>
2     bz.0      a
1    NaN
2      b
Name: A, dtype: strz40       a
1    <NA>
2       b
Name: A, dtype: stringr    r	   <z+>
['a', <NA>, 'b']
Length: 3, dtype: stringr
   z'>
['a', nan, 'b']
Length: 3, dtype: strr   r   StringArray)
r   	DataFramearrayr#   r   r!   r"   reprr8   r   )r   dfexpectedarr_names       r   	test_reprrC   a   sC   	sBHHc255#%6eDE	FB~~378x~~FL:!!!}}	!enn&=%xj MN	)	#"&&(@3xj IJ	(	"u~~'?.xj IJ xj MN

x'''r   c                    | j                   dk(  r>| j                  t        j                  u rt	        |       dk(  sJ t	        |       dk(  sJ y y | j                  t        j                  u rt	        |       dk(  sJ y t	        |       dk(  sJ y )Nr    zstring[pyarrow]z<StringDtype(na_value=nan)>zstring[python]z-<StringDtype(storage='python', na_value=nan)>)r   r   r   r#   r?   r   s    r   test_dtype_reprrE   ~   s    }}	!>>RUU";"3333;"???? 4 
255	 E{....E{MMMMr   c                 v    | j                  g d|      }|d   J |d   |j                  j                  u sJ y )N)r9   Nr:   r      )_from_sequencer   r   )r   r   r9   s      r   test_none_to_nanrI      sD    +59AQ4Q4177#####r   c                 4   | j                  ddg|      }d}t        j                  t        |      5  d|d<   d d d        d}t        j                  t        |      5  t	        j
                  d	d
g      |d d  d d d        y # 1 sw Y   JxY w# 1 sw Y   y xY w)Nr9   r:   r   z!Invalid value '10' for dtype 'strmatch
   r   zInvalid value for dtype 'strrG      )rH   r-   raises	TypeErrorr!   r>   )r   r   arrmsgs       r   test_setitem_validatesrS      s    


c3Zu

5C
-C	y	, A )C	y	, "1a&!A" "	 " "s   BBBBc                     t        j                  ddg|       }d|d<   t        j                  ddg|       }t        j                  ||       y )Nr9   cr   dr   r   r>   r/   assert_extension_array_equal)r   rQ   rA   s      r   test_setitem_with_scalar_stringrY      sE     ((C:U
+CCFxxc
%0H##C2r   c                 :   t        j                  g d|       }t        j                  dd g      }|j                         }||ddg<   t        j                  dt         j                  dg|       }t        j                  ||       t        j                  ||       y )Nr9   r:   rU   r   r8   r   rG   rU   )r   r>   r!   copyr#   r/   rX   assert_numpy_array_equal)r   rQ   value
value_origrA   s        r   $test_setitem_with_array_with_missingr`      sy     ((?%
0CHHc4[!EJCAKxxbeeS)7H##C2z2r   c                    t        j                  t        j                  dd            }d |d<   |j                  |       }t	        |j
                  |       sJ |j                  d      }t        j                  ||       ||j                  d   z
  }|j                  |       }t	        |j
                  |       sJ |j                  |j
                        }t        j                  ||       y )N2000   )periodsr   zdatetime64[ns])	r   Series
date_rangeastyper   r   r/   assert_series_equaliloc)r   sercastedresultser2casted2result2s          r   test_astype_roundtriprq      s    
))BMM&"5
6CCFZZF&,,...]]+,F63' "Dkk% G'--///nnTZZ(G7D)r   c                 "   t        j                  g d|       }t        j                  g d|       }||z   }t        j                  g d|       }t        j                  ||       |j	                  |      }t        j                  ||       |j                  |      }t        j                  g d|       }t        j                  ||       |j	                  |d      }t        j                  g d|       }t        j                  ||       y )	N)r9   r:   rU   NNr   )xyNzN)axbyNNN)xaybNNN-)
fill_value)rv   rw   zc-z-zN)r   rf   r/   ri   addradd)r   r9   r:   rm   rA   s        r   test_addr~      s    
		-U;A
		-U;AUFyy7uEH68,UU1XF68,VVAYFyy7uEH68,UU1U%Fyy7uEH68,r   c                    | j                   dk(  r4d}t        j                  j                  d |      }|j	                  |       t        j                  g d|       }t        j                  g dgt              }t        j                  t        d      5  ||z    d d d        t        j                  |      }t        j                  t        d      5  ||z    d d d        y # 1 sw Y   HxY w# 1 sw Y   y xY w)Nr    z*Failed: DID NOT RAISE <class 'ValueError'>rO   reasonr[   r   z3 != 1rK   )r   r-   markxfailapplymarkerr   r>   r!   objectrO   
ValueErrorrf   )r   requestr   r   r9   r:   ss          r   test_add_2dr      s    }}	!={{  V <D!
.A
/"&1A	z	2 	A 			!A	z	2 	A 	  s   C#C/#C,/C8c                    t        j                  g d|       }g d}||z   }t        j                  g d|       }t        j                  ||       ||z   }t        j                  g d|       }t        j                  ||       y )N)r9   r:   NNr   )rs   Nrt   N)rv   NNN)rx   NNNrW   )r   r9   otherrm   rA   s        r   test_add_sequencer      sl    
'u5A"EYFxx0>H##FH5QYFxx0>H##FH5r   c                     t        j                  g d|       }|dz  }t        j                  g d|       }t        j                  ||       d|z  }t        j                  ||       y )Nr9   r:   Nr   rN   )aabbNrW   )r   r9   rm   rA   s       r   test_mulr      sV    
!/AUFxx*%8H##FH5UF##FH5r   zGH-28527)r   c                    t        j                  g d|       }t        j                  g dgt              }|j	                  |      t
        u sJ ||z   }t        j                  g dg      j                  |       }t        j                  ||       ||z   }t        j                  g dg      j                  |       }t        j                  ||       y )N)r9   r:   rU   rV   r   )trt   vw)atrw   cvdw)tary   vcwd)	r   r>   r=   r   __add__NotImplementedrh   r/   assert_frame_equalr   rQ   r@   rm   rA   s        r   test_add_stringsr      s    
(('u
5C	+,F	;B;;r?n,,,2XF||567>>uEH&(+#XF||567>>uEH&(+r   c                    t        j                  ddt        j                  t        j                  g|       }t        j                  dt        j                  dt        j                  gg      }|j                  |      t        u sJ ||z   }t        j                  dt        j                  t        j                  t        j                  gg      j                  |       }t        j                  ||       ||z   }t        j                  dt        j                  t        j                  t        j                  gg      j                  |       }t        j                  ||       y )Nr9   r:   r   rs   rt   rv   rx   )
r   r>   r!   r"   r=   r   r   rh   r/   r   r   s        r   test_add_framer     s    
((Cbffbff-U
;C	RVVS"&&12	3B;;r?n,,,2XF||dBFFBFFBFF;<=DDUKH&(+#XF||dBFFBFFBFF;<=DDUKH&(+r   c           
         d| j                    d}t        j                  g d|      }d} t        ||      |      }|j                  t
        j                  u rt        j                  |D cg c]  } t        ||      |       c}      }| t        j                  k(  rd|d<   nd|d<   t        j                  ||j                  t
        j                               y |j                  dk(  rd	nd
}t        j                  |D cg c]  } t        ||      |       c}t              }t        j                  ||      }t        j                  ||       y c c}w c c}w )N__r9   NrU   r   r9   TrG   Fr    boolean[pyarrow]boolean)__name__r   r>   getattrr   r!   r"   operatorner/   r]   rh   bool_r   r   rX   )	comparison_opr   op_namer9   r   rm   itemrA   expected_dtypes	            r   test_comparison_methods_scalarr     s   =))*"-G
!/AE WQ 'F~~88qIt3WT73E:IJHKK'HQKHQK
##FHOOBHH,EF/4}}	/I+y88qIt3WT73E:IQWX88HN;
''9 J Js   -EEc                 0   d| j                    d}t        j                  g d|      } t        ||      t        j                        }|j
                  t        j                  u rYt        j                  | k(  rt        j                  g d      }nt        j                  g d      }t        j                  ||       y |j                  dk(  rdnd}t        j                  g d	|      }t        j                  ||       t        j                  ||       y )
Nr   r   r   TTTFFFr    r   r   )NNN)r   r   r>   r   r#   r   r!   r"   r   r   r/   r]   r   rX   )r   r   r   r9   rm   rA   r   s          r   $test_comparison_methods_scalar_pd_nar   2  s    =))*"-G
!/A WQ 'F~~;;-'xx 23Hxx 56H
##FH5/4}}	/I+y88.nE
''9
''9r   c                 L   d| j                    d}t        j                  g d|      }d}|dvr7t        j                  t
        d      5   t        ||      |       d d d        y  t        ||      |      }|j                  t        j                  u r8g dg d	d|   }t        j                  |      }t        j                  ||       y g d
g dd|   }|j                  dk(  rdnd}t        j                  ||      }t        j                  ||       y # 1 sw Y   y xY w)Nr   r   r   *   )__eq____ne__z(Invalid comparison|not supported betweenrK   r   r   )FNF)TNTr    r   r   )r   r   r>   r-   rO   rP   r   r   r!   r"   r/   r]   r   rX   )	r   r   r   r9   r   rm   expected_datarA   r   s	            r   )test_comparison_methods_scalar_not_stringr   D  s   =))*"-G
!/AE**]]9,VW 	'GAw&	' 	 WQ 'F~~+(
  88M*
##FH5#7CUV
 05}}	/I+y88M@
''9)	' 	s   DD#c                 B   d| j                    d}t        j                  g d|      }t        j                  g d|      } | ||      } | ||      }t        j                  ||       |j
                  t        j                  u r|j
                  t        j                  u rtt        j                  | k(  rt        j                  g d      }n2t        j                  g d      } t        |d   |      |d         |d<   t        j                  ||       y t        ||      }	|	j                  dk(  rd	}
nd
}
t        j                  t        |      d d      } t        |d   |      |d         |d<   t        j                  ||
      }t        j                   ||       y )Nr   r   r   NNrU   TTFr   re   r   r   bool[pyarrow]r   r{   r   )r   r   r>   r/   assert_equalr   r!   r"   r   r   r   r]   r*   r   fulllenrX   )r   r   r   r   r9   r   rm   rp   rA   	max_dtyper   s              r   test_comparison_methods_arrayr   b  sT   =))*"-G
!/AHH&f5E1e$F E1%GOOFG$~~FOOrvv$=;;-'xx 34Hxx 56H6759g6qu=HRL
##FH5 2%@	(&N,N773q6d(C2wuRy'21R5988HN;
''9r   r    c                    dd l }d| j                   d}t        j                  |j	                               }t        j
                  g d|      }t        j
                  g d|      } | ||      } | ||      }t        j                  ||       t        j
                  g dd      }	 t        |d   |      |d         |	d<   t        j                  ||	       y )	Nr   r   r   r   r   )NNTr   re   )
r    r   r   
ArrowDtypestringr>   r/   r   r   rX   )
r   r   par   r   r9   r   rm   rp   rA   s
             r   -test_comparison_methods_array_arrow_extensionr     s     =))*"-GMM"))+&E
!/AHH&f5E1e$F E1%GOOFG$xx*/BH.759g.qu5HRL##FH5r   c                    d| j                    d}t        j                  g d|      }g d} | ||      } | ||      }t        j                  ||       |j
                  t        j                  u rtt        j                  | k(  rt        j                  g d      }n2t        j                  g d      } t        |d   |      |d         |d<   t        j                  ||       y |j                  dk(  rd	nd
}t        j                  t        |      d d      } t        |d   |      |d         |d<   t        j                  ||      }t        j                  ||       y )Nr   r   r   r   r   r   re   r    r   r   r   r   )r   r   r>   r/   r   r   r!   r"   r   r   r   r]   r   r   r   rX   )	r   r   r   r9   r   rm   rp   rA   r   s	            r   test_comparison_methods_listr     s(   =))*"-G
!/AE1e$F E1%GOOFG$~~;;-'xx 34Hxx 56H6759g6qu=HRL
##FH5 05}}	/I+y773q6d(C2wuRy'21R5988HN;
''9r   c           
      P   | t         j                  j                  u rd}n| t        u rd}nd}t	        j
                  t        |      5   | t        j                  ddgd             d d d        t	        j
                  t        |      5   | t        j                  g              d d d        | t         j                  j                  u s| t        u rU | t        j                  dt        j                  gt                      | t        j                  dd gt                     nt	        j
                  t        |      5   | t        j                  dt        j                  gt                     d d d        t	        j
                  t        |      5   | t        j                  dd gt                     d d d        t	        j
                  t        |      5   | t        j                  dt         j                  gt                     d d d        t	        j
                  t        |      5   | t        j                  dt        j                  d	d
      gt                     d d d        t	        j
                  t        |      5   | t        j                  dt        j                  d	d
      gt                     d d d        y # 1 sw Y   jxY w# 1 sw Y   8xY w# 1 sw Y   wxY w# 1 sw Y   =xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   y xY w)Nz7StringArray requires a sequence of strings or pandas.NAz?StringArrayNumpySemantics requires a sequence of strings or NaNzBUnsupported type '<class 'numpy.ndarray'>' for ArrowExtensionArrayrK   r9   r:   S1r   NaTns)r   arraysr<   r   r-   rO   r   r!   r>   r"   r   r   
datetime64timedelta64)r   rR   s     r   test_constructor_raisesr     sA   
bii###G	)	)OR	z	- .BHHc3Zt,-. 
z	- BHHRL bii###s.G'G 	BHHc266]&12BHHc4[/0]]:S1 	7#rvvf56	7]]:S1 	5#tF34	5 
z	- 3BHHc266]&123 
z	- GBHHc2==56fEFG 
z	- HBHHc2>>%67vFGH H/. . 	7 	7	5 	53 3G GH HsT    KK2K*$K72L48L8LKK'*K47LLLL%nar"   c                    t         j                  j                  t        j                  dt         j
                  g            }t        j                  t         j                  j                  t        j                  d| gd            |       y )Nr9   r   r   )r   r   r<   r!   r>   r#   r/   rX   )r   rA   s     r   test_constructor_nan_liker     sX    yy$$RXXsBEEl%;<H##
		bhhRyABHr   r\   TFc                    t        j                  dt         j                  gt              }|j	                         }t        j                  dt
        j                  gt              }|j                  |||       }|t        t        fv r-dd l
} ||j                  ||j                         d            }n|t        u r	 ||      }n ||      }t        j                  ||       t        j                  ||       y )Nr9   r   )r   r\   r   Ttypefrom_pandas)r!   r>   r"   r   r\   r   r#   rH   r	   r
   r    r   r   r/   rX   r]   )	r\   r   r   nan_arrexpected_inputna_arrrm   r   rA   s	            r   test_from_sequence_no_mutater     s    hhRVV}F3G\\^NXXsBEEl&1Fu4@F
!?@@rxxRYY[dxKL	)	)w<v;##FH58r   c                    t        j                  g d|       }|j                  d      }t        j                  g dd      }t	        j
                  ||       t        j                  dt         j                  dg|       }| j                  t        j                  u r	t        }d}nt        }d}t        j                  ||	      5  |j                  d       d d d        y # 1 sw Y   y xY w)
N)123r   int64rG   rN      r   r   z#cannot convert float NaN to integerzJint\(\) argument must be a string, a bytes-like object or a( real)? numberrK   )r   r>   rh   r!   r/   r]   r#   r   r"   r   rP   r-   rO   )r   rQ   rm   rA   errrR   s         r   test_astype_intr     s    
((?%
0CZZ Fxx	1H1
((C$E
2C~~3* 	 
s#	& 

7  s   C!!C*c                     t        j                  dt         j                  dg|       }|j                  d      }t        j                  dt         j                  dgd      }t	        j
                  ||       y )Nr   r   r   Int64rG   r   )r   r>   r#   rh   r/   rX   r   rQ   rm   rA   s       r   test_astype_nullable_intr     sU    
((C$E
2CZZ FxxBEE1W5H##FH5r   c                     t        j                  dt         j                  dg|       }|j                  |      }t        j                  dt        j
                  dg|      }t        j                  ||       y )Nz1.1z3.3r   g?gffffff
@)r   rf   r#   rh   r!   r"   r/   ri   )r   any_float_dtyperk   rm   rA   s        r   test_astype_floatr     sV    
))UBEE5)
7CZZ(Fyy#rvvs+?CH68,r   skipnac                 h    t        j                  g d|      }|j                  |       }|dk(  sJ y )Nr[   r   r   abc)r   rf   sumr   r   rQ   rm   s       r   test_reducer     s.    
))O5
1CWWFW#FU??r   c                     t        j                  g d|      }|j                  |       }| r|dk(  sJ y t        j                  |      sJ y )N)Nr9   Nr:   rU   Nr   r   r   )r   rf   r   isnar   s       r   test_reduce_missingr     sB    
))5U
CCWWFW#Fwwvr   methodminr%   c                     t        j                  g d|      } t        ||       |      }|r| dk(  rdnd}||k(  sJ y ||j                  j                  u sJ y )Nr9   r:   rU   Nr   r   r   r9   rU   )r   rf   r   r   r   )r   r   r   rQ   rm   rA   s         r   test_min_maxr   &  s^     )))
7C!WS&!0F E/3s!!!+++++r   boxc                 D   |j                   dk(  r_|t        j                  u rM|t        j                  u rd}nd}t        j                  j                  t        |      }|j                  |        |g d|      } t        t        |       |      }| dk(  rdnd	}||k(  sJ y )
Nr    z<'<=' not supported between instances of 'str' and 'NoneType'z0'ArrowStringArray' object has no attribute 'max'r   r   r   r   r9   rU   )
r   r   r>   r-   r   r   rP   r   r   r!   )	r   r   r   r   r   r   rQ   rm   rA   s	            r   test_min_max_numpyr  2  s     }}	!cRXXo"((?SFGF{{  	& AD!
#5
1C WR %Fos3HXr   c                    t        j                  dt         j                  g|       }|j                  d      }t        j                  ddg|       }t	        j
                  ||       |j                  t        j                  d            }t        j                  ddg|       }t	        j
                  ||       d}t        j                  t        |      5  |j                  d       d d d        y # 1 sw Y   y xY w)Nr9   r   r:   )r^    Invalid value '1' for dtype 'strrK   rG   )r   r>   r#   fillnar/   rX   r!   str_r-   rO   rP   )r   rQ   resrA   rR   s        r   test_fillna_argsr  C  s     ((C<u
-C
**3*
Cxxc
%0H##C2
**2773<*
(Cxxc
%0H##C2
,C	y	, 


  s   C66C?c                    t        j                  d      }dd lm} t	        j
                  g d|       }|j                  |      }|j                  t        |      |j                         d      }| j                  dk(  rt        r|j                  |      }| j                  dk(  r |j                  ||j                               }|j                  |      sJ y )Nr    r   r[   r   Tr   r   )r-   r.   pyarrow.computecomputer   r>   listlarge_stringr   r   chunked_arraycastr   equals)r   r   pcdatarQ   rA   s         r   test_arrow_arrayr  U  s    			Y	'B 88O51D
((4.CxxT
):xMH}}	!&:##H-}} 778RYY[1::hr   z0ignore:Passing a BlockManager:DeprecationWarningc                    t        j                  d      }t        j                  g d|       }t        j                  d|i      }|j                  |      }| j                  dk(  r |j                  d      j                  dk(  s"J |j                  d      j                  dk(  sJ t        j                  d|      5  |j                         }d d d        | j                  t        j                  u r|sd   j                  d	k(  sJ y t        d   j                  t        j                         sJ |j#                  t        j                   || j                  
            }|rC|j$                  j#                  t        j                   |t        j                  
            |_        t'        j(                  ||       |j*                  d   |d   j                  j                  u sJ y # 1 sw Y   xY w)Nr    r   r   r9   r   r   r  string_storager   r   )rN   r9   )r-   r.   r   r>   r=   tabler   fieldr   option_context	to_pandasr   r!   r"   r   
isinstancer   rh   columnsr/   r   loc	r   r  using_infer_stringr   r  r@   r  rm   rA   s	            r   test_arrow_roundtripr  d  s    
		Y	'B88$E2D	sDk	"BHHRLE}} {{3$$000{{3$$666			+^	< #"#~~(:c{  H,,,&+++R^^<<<99R^^NU^^TU'//66~? H 	fh/zz&!VC[%6%6%?%????# #s   <G''G1c                 `   t        j                  d      }|j                  d|j                  g d|j	                               i      }|j                         }| r"t        st        j                  dg did      }nt        j                  dg did      }t        j                  ||       y )Nr    r9   r   r   strr   r   )r-   r.   r  r>   r   r  r   r   r=   r/   r   )r  r   r  rm   rA   s        r   test_arrow_from_stringr"    s     
		Y	'BHHc288$4299;8GHIE__F"6<<&6 7uE<<&6 7xH&(+r   c                    t        j                  d      }t        j                  g |       }t        j                  d|i      }|j                  |      }| j                  dk(  r |j                  d      j                  dk(  s"J |j                  d      j                  dk(  sJ |j                  |j                  g |j                               g|j                        }t        j                  d	|      5  |j                         }d d d        | j                  t        j                   u rt#               sd   j$                  d
k(  sJ y t'        d   j$                  t        j(                        sJ |j+                  t        j(                  || j                              }|rC|j,                  j+                  t        j(                  |t        j                               |_        t/        j0                  ||       y # 1 sw Y   xY w)Nr    r   r9   r   r   r  r   )schemar  r   r   )r-   r.   r   r>   r=   r  r   r  r   r  r   r$  r  r  r   r!   r"   r   r   r  r   rh   r  r/   r   r  s	            r    test_arrow_load_from_zero_chunksr%    s    
		Y	'B88Be$D	sDk	"BHHRLE}} {{3$$000{{3$$666HHb&&r		&<=ellHSE			+^	< #"# ~~(:(<c{  H,,,&+++R^^<<<99R^^NU^^TU'//66~? H 	fh/# #s   7H  H	c                    | j                   t        j                  u rd}n| j                  dk(  rd}nd}t	        j
                  dddt        j                  g|       }|j                  d	      }t	        j                  g d
|g d   |d      }t        j                  ||       |j                  d	      }t	        j                  ddg|d d |d      }t        j                  ||       y )Nr   r    int64[pyarrow]r   r9   r:   r   F)dropna)rN   rG   rG   )r   rG   r   countr$   r   nameTrN   rG   )r   r!   r"   r   r   r>   r#   value_countsrf   r/   ri   )r   	exp_dtyperQ   rm   rA   s        r   test_value_counts_nar.    s    ~~		)	#$		
((Cc255)
7CU+Fyy#i.	PWXH68,T*Fyy!Qs2AwigNH68,r   c                 j   | j                   t        j                  u rt        j                  }n| j                  dk(  rd}nd}t        j                  dddt
        j                  g|       }|j                  d      }t        j                  d	d
g|d d	 |d      dz  }t        j                  ||       y )Nr    zdouble[pyarrow]Float64r9   r:   r   T)	normalizerN   rG   
proportionr*  r   )r   r!   r"   float64r   r   rf   r#   r,  r/   ri   r   r-  rk   rm   rA   s        r    test_value_counts_with_normalizer5    s    ~~JJ		)	#%		
))S#sBEE*%
8C-Fyy!Qs2AwilSVWWH68,r   zvalues, expectedr[   r   r   )FFTc                 p   t        j                  | |      } d}t        j                  t        |      5  t        j
                  dd      5  | j                         }t        j                  ||       t        j                  |       j                         }t        j                  |      }t        j                  ||       t        j                  |       j                         }t        j                  |      }t        j                  ||       d d d        d d d        y # 1 sw Y   xY w# 1 sw Y   y xY w)Nr   z"use_inf_as_na option is deprecatedrK   zmode.use_inf_as_naT)r   r>   r/   r0   r1   r  r   r]   rf   ri   r=   r   )valuesrA   r   rR   rm   s        r   test_use_inf_as_nar8    s     XXfE*F
.C		#	#M	= 43T: 
	4[[]F''9YYv&++-Fyy*H""684\\&)..0F||H-H!!&(3
	44 4
	4 
	44 4s$   D,CD D, D)	%D,,D5c                 (   | j                   t        j                  u rd}n| j                  dk(  rd}nd}t	        j
                  g d|       }|j                  d      }t	        j
                  g d	|d d
 |d      }t        j                  ||       y )Nr   r    r'  r   )r9   r:   rU   r:   r   F)sort)rG   rN   rG   r   r)  r*  )	r   r!   r"   r   r   rf   r,  r/   ri   r4  s        r   test_value_counts_sort_falser;    s{    ~~		)	#$		
))(
6C5)Fyy#bq'QH68,r   c                    | j                   dk(  r"t        j                  d| j                           t        j                  g d|       }d|j
                  cxk  r*|j                         cxk  r|j                  d      k  sJ  J y )Nr    znot applicable for r[   r   r   T)deep)r   r-   skipr   rf   nbytesmemory_usage)r   seriess     r   test_memory_usagerB    sr     }}	!)%--9:YYe4Fv}}V 3 3 5V8K8KQU8K8VVVVVVr   float_dtypec                     t        j                  dg|       }|j                  |      }t        j                  dg|      }t        j                  ||       y )Ng?r   z0.1)r   rf   rh   r/   ri   )rC  r   rk   rm   rA   s        r   test_astype_from_float_dtyperE    sF     ))SE
-CZZFyy%.H68,r   c                     t        j                  dt         j                  dg|       }t        j                  |      }t        j                  d| j                  dgt
              }t        j                  ||       y )Nr9   r:   r   )r   r>   r#   r!   r   r   r/   r]   r   s       r   "test_to_numpy_returns_pdna_defaultrG    sU    
((C$E
2CXXc]Fxxennc2&AH1r   c                     |}t        j                  dt         j                  dg|       }|j                  |      }t	        j                  d|dgt
              }t        j                  ||       y )Nr9   r:   r   r   )r   r>   r#   to_numpyr!   r   r/   r]   )r   nulls_fixturer   rQ   rm   rA   s         r   test_to_numpy_na_valuerK    sY    H
((C$E
2C\\8\,Fxxh,F;H1r   c                    t        j                  g d|       }|j                  ddg      }t        j                  g d      }t        j                  ||       |j                  dt         j
                  g      }t        j                  g d      }t        j                  ||       |j                  g       }t        j                  g d      }t        j                  ||       |j                  d|g      }t        j                  g d      }t        j                  ||       |j                  |g      }t        j                  g d      }t        j                  ||       y )Nr   r   r9   rU   TFFTFTr   )r   rf   isinr/   ri   r#   )r   fixed_now_tsr   rm   rA   s        r   	test_isinrQ    s   
		"%0AVVS#JFyy-.H68,VVS"%%L!Fyy,-H68,VVBZFyy./H68,VVS,'(Fyy-.H68,VV\N#Fyy./H68,r   c                    t        j                  g d|       }|j                  t        j                  ddg|            }t        j                  g d      }t	        j
                  ||       |j                  t        j                  dd g|            }t        j                  g d      }t	        j
                  ||       y )Nr   r   r9   rU   rM  rN  )r   rf   rO  r>   r/   ri   )r   r   r   rm   rA   s        r   test_isin_string_arrayrS  +  s    
		"%0AVVBHHc3Zv67Fyy-.H68,VVBHHc4[78Fyy,-H68,r   c           	      8   t        j                  d      }t        j                  g d|       }|j	                  t        j
                  ddgt        j                  |j                                           }t        j                  g d      }t        j                  ||       |j	                  t        j
                  dd gt        j                  |j                                           }t        j                  g d      }t        j                  ||       y )Nr    r   r   r9   rU   rM  rN  )
r-   r.   r   rf   rO  r>   r   r   r/   ri   )r   r   r   rm   rA   s        r   test_isin_arrow_string_arrayrU  7  s    			Y	'B
		"%0AVVBHHc3Zr}}RYY[/IJKFyy-.H68,VVBHHc4[biik0JKLFyy,-H68,r   c                 \   t        j                  g d|       }t        j                  g d      }d ||<   |j                  d   |j                  j
                  u sJ t        j                  g d|       }d}t        j                  t        |      5  d||<   d d d        y # 1 sw Y   y xY w)Nr[   r   )FTFrG   r  rK   )	r   rf   r!   r>   r   r   r-   rO   rP   )r   rk   maskrR   s       r   (test_setitem_scalar_with_mask_validationrX  D  s     ))O5
1C88()DCI99Q<399----- ))O5
1C
,C	y	, D	  s   B""B+c                     g d}t        j                  |t         j                        }t        j                  ||       }t        j                  ||       }t	        j
                  ||       y Nr[   r   )r!   r>   r  r   r/   rX   r   valsrQ   rm   rA   s        r   test_from_numpy_strr]  U  sK    D
((4rww
'CXXc'FxxE*H##FH5r   c                     g d}t        j                  ||       }|j                         }|}t        j                  ||       y rZ  )r   r>   tolistr/   r   r[  s        r   test_tolistr`  ]  s5    D
((4u
%CZZ\FHOOFH%r   c                 <    |g d|       }t        j                  d dd      } ||      }|t        j                  u rt        j                  nt         j                  } |g dt
              }t        j                  ||       t        j                  d dd      } ||      } |g d|       }| j                  dk(  rG|t        j                  u rt        j                  g dt
              }nt        j                  g d      }t        j                  ||       y )	N)r9   r   cccr   c                     t        |       S )N)r   rs   s    r   <lambda>z(test_numpy_array_ufunc.<locals>.<lambda>j  s
    CF r   rG   r   c                     | dz  S )NrN    rd  s    r   re  z(test_numpy_array_ufunc.<locals>.<lambda>r  s
    Q r   )r   bbbbccccccr    )	r!   
frompyfuncr   rf   r>   r   r/   r   r   )r   r   rQ   str_len_ufuncrm   expected_clsrA   str_multiply_ufuncs           r   test_numpy_array_ufuncrn  e  s    
 
.C MM"2Aq9M3F #ryy 0299bhhLIV4HOOFH% 1=$F+59H}}	!"((?xx 8GH yy!9:HOOFH%r   )a__doc__r   numpyr!   r-   pandas._configr   pandas.compatr   pandas.compat.pyarrowr   r   pandas.util._test_decoratorsutil_test_decoratorstdpandas.core.dtypes.commonr   pandasr   pandas._testing_testingr/   pandas.core.arrays.string_r   pandas.core.arrays.string_arrowr	   r
   fixturer   r   r   r*   r2   r6   rC   rE   rI   rS   rY   r`   rq   r~   r   r   r   r   r   r   r   r   r   r   r   
skip_if_nor   r   r   parametrizer"   r3  r4   r#   r   r   r   r   r   r   r   r   rf   r>   r  r  r  filterwarningsr  r"  r%  r.  r5  r8  r;  rB  float16float32rE  rG  rK  rQ  rS  rU  rX  r]  r`  rn  rg  r   r   <module>r     s1      - % * ) 4   @ > > > >
 ( (
(&?*(:	N$	"3
3*&-( 
66 *%, &, *%, &,:&:$:<:@ y6 6&:6 HF 


5(95<ruuUV W $/9 09((6- D%=1 2 D%=1 2 E5>2D%=1, 2 3, E5>2BHH 56 7 3$  NO@ P@6 NO, P, NO0 P08-"
- 	("((#89:	8288$89:44$
-W RZZ(LM- N-22-0	-
-"6& BHH 56& 7&r   