
    뾙h)r              	       4   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,ejZ                  j]                  d      d        Z/ejZ                  j]                  d      d        Z0d Z1d Z2d Z3d  Z4 ejj                  d!      d"        Z6d# Z7d$ Z8ejZ                  js                  d%ejt                   ejv                  d&       e<d&      dejz                  g      d'        Z>ejZ                  js                  d(d)d*g      d+        Z?d, Z@d- ZAd. ZBejZ                  js                  d/d)d*g      d0        ZCejZ                  js                  d/d)d*g      d1        ZDejZ                  js                  d2d3d4g      ejZ                  js                  d/d)d*g      d5               ZEejZ                  js                  d2d3d4g      ejZ                  js                  d6ej                  ej                  g      d7               ZHd8 ZId9 ZJejZ                  j                  d:      d;        ZLejZ                  j                  d:      d<        ZMejZ                  j                  d:      d=        ZNd> ZOd? ZPejZ                  js                  d@g dA ej                  g dB      fg dC ej                  g dD      fg      dE        ZQdF ZRdG ZSejZ                  js                  dHej                  ej                  ejv                  g      dI        ZVdJ ZWdK ZXdL ZYdM ZZdN Z[dO Z\dP Z]dQ Z^y)Rz
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      c/var/www/Befach/backend/env/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                 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_nanrG   ~   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 'strrE      )rF   r-   raises	TypeErrorr!   r>   )r   r   arrmsgs       r   test_setitem_validatesrQ      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   rO   rA   s      r   test_setitem_with_scalar_stringrW      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:   rS   r   r8   r   rE   rS   )r   r>   r!   copyr#   r/   rV   assert_numpy_array_equal)r   rO   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_roundtripro      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:   rS   NNr   )xyNzN)axbyNNN)xaybNNN-)
fill_value)rt   ru   zc-z-zN)r   rd   r/   rg   addradd)r   r9   r:   rk   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'>rM   reasonrY   r   z3 != 1rI   )r   r-   markxfailapplymarkerr   r>   r!   objectrM   
ValueErrorrd   )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   )rq   Nrr   N)rt   NNN)rv   NNNrU   )r   r9   otherrk   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   rL   )aabbNrU   )r   r9   rk   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:   rS   rT   r   )trr   vw)atru   cvdw)tarw   vcwd)	r   r>   r=   r   __add__NotImplementedrf   r/   assert_frame_equalr   rO   r@   rk   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   rq   rr   rt   rv   )
r   r>   r!   r"   r=   r   r   rf   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   NrS   r   r9   TrE   Fr    boolean[pyarrow]boolean)__name__r   r>   getattrr   r!   r"   operatorner/   r[   rf   bool_r   r   rV   )	comparison_opr   op_namer9   r   rk   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   rV   )r   r   r   r9   rk   rA   r   s          r   $test_comparison_methods_scalar_pd_nar   &  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 betweenrI   r   r   )FNF)TNTr    r   r   )r   r   r>   r-   rM   rN   r   r   r!   r"   r/   r[   r   rV   )	r   r   r   r9   r   rk   expected_datarA   r   s	            r   )test_comparison_methods_scalar_not_stringr   8  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   NNrS   TTFr   rc   r   r   bool[pyarrow]r   ry   r   )r   r   r>   r/   assert_equalr   r!   r"   r   r   r   r[   r*   r   fulllenrV   )r   r   r   r   r9   r   rk   rn   rA   	max_dtyper   s              r   test_comparison_methods_arrayr   V  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   rc   )
r    r   r   
ArrowDtypestringr>   r/   r   r   rV   )
r   r   par   r   r9   r   rk   rn   rA   s
             r   -test_comparison_methods_array_arrow_extensionr   v  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   rc   r    r   r   r   r   )r   r   r>   r/   r   r   r!   r"   r   r   r   r[   r   r   r   rV   )	r   r   r   r9   r   rk   rn   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 ArrowExtensionArrayrI   r9   r:   S1r   NaTns)r   arraysr<   r   r-   rM   r   r!   r>   r"   r   r   
datetime64timedelta64)r   rP   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/   rV   )r   rA   s     r   test_constructor_nan_liker     sX    yy$$RXXsBEEl%;<H##
		bhhRyABHr   rZ   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   rZ   r   Ttypefrom_pandas)r!   r>   r"   r   rZ   r   r#   rF   r	   r
   r    r   r   r/   rV   r[   )	rZ   r   r   nan_arrexpected_inputna_arrrk   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)rE   rL      r   r   z#cannot convert float NaN to integerzJint\(\) argument must be a string, a bytes-like object or a( real)? numberrI   )r   r>   rf   r!   r/   r[   r#   r   r"   r   rN   r-   rM   )r   rO   rk   rA   errrP   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   Int64rE   r   )r   r>   r#   rf   r/   rV   r   rO   rk   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   rd   r#   rf   r!   r"   r/   rg   )r   any_float_dtyperi   rk   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 )NrY   r   r   abc)r   rd   sumr   r   rO   rk   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:   rS   Nr   r   r   )r   rd   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:   rS   Nr   r   r   r9   rS   )r   rd   r   r   r   )r   r   r   rO   rk   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   rS   )
r   r   r>   r-   r   r   rN   r   r   r!   )	r   r   r   r   r   r   rO   rk   rA   s	            r   test_min_max_numpyr   &  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 'strrI   rE   )r   r>   r#   fillnar/   rV   r!   str_r-   rM   rN   )r   rO   resrA   rP   s        r   test_fillna_argsr  7  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   rY   r   Tr   r   )r-   r.   pyarrow.computecomputer   r>   listlarge_stringr   r   chunked_arraycastr   equals)r   r   pcdatarO   rA   s         r   test_arrow_arrayr  I  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   )rL   r9   )r-   r.   r   r>   r=   tabler   fieldr   option_context	to_pandasr   r!   r"   r   
isinstancer   rf   columnsr/   r   loc	r   r  using_infer_stringr   r  r@   r  rk   rA   s	            r   test_arrow_roundtripr  X  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  rk   rA   s        r   test_arrow_from_stringr  t  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   rf   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)rL   rE   rE   )r   rE   r   countr$   r   nameTrL   rE   )r   r!   r"   r   r   r>   r#   value_countsrd   r/   rg   )r   	exp_dtyperO   rk   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)	normalizerL   rE   
proportionr'  r   )r   r!   r"   float64r   r   rd   r#   r)  r/   rg   r   r*  ri   rk   rA   s        r    test_value_counts_with_normalizer2    s    ~~JJ		)	#%		
))S#sBEE*%
8C-Fyy!Qs2AwilSVWWH68,r   zvalues, expectedrY   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 deprecatedrI   zmode.use_inf_as_naT)r   r>   r/   r0   r1   r  r   r[   rd   rg   r=   r   )valuesrA   r   rP   rk   s        r   test_use_inf_as_nar5    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:   rS   r:   r   F)sort)rE   rL   rE   r   r&  r'  )	r   r!   r"   r   r   rd   r)  r/   rg   r1  s        r   test_value_counts_sort_falser8    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 rY   r   r   T)deep)r   r-   skipr   rd   nbytesmemory_usage)r   seriess     r   test_memory_usager?    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   rd   rf   r/   rg   )r@  r   ri   rk   rA   s        r   test_astype_from_float_dtyperB    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_defaultrD    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   rO   rk   rA   s         r   test_to_numpy_na_valuerH    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   rS   TFFTFTr   )r   rd   isinr/   rg   r#   )r   fixed_now_tsr   rk   rA   s        r   	test_isinrN    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   rS   rJ  rK  )r   rd   rL  r>   r/   rg   )r   r   r   rk   rA   s        r   test_isin_string_arrayrP    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   rS   rJ  rK  )
r-   r.   r   rd   rL  r>   r   r   r/   rg   )r   r   r   rk   rA   s        r   test_isin_arrow_string_arrayrR  +  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)NrY   r   )FTFrE   r   rI   )	r   rd   r!   r>   r   r   r-   rM   rN   )r   ri   maskrP   s       r   (test_setitem_scalar_with_mask_validationrU  8  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 NrY   r   )r!   r>   r  r   r/   rV   r   valsrO   rk   rA   s        r   test_from_numpy_strrZ  I  sK    D
((4rww
'CXXc'FxxE*H##FH5r   c                     g d}t        j                  ||       }|j                         }|}t        j                  ||       y rW  )r   r>   tolistr/   r   rX  s        r   test_tolistr]  Q  s5    D
((4u
%CZZ\FHOOFH%r   )___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   rG   rQ   rW   r^   ro   r|   r   r   r   r   r   r   r   r   r   r   r   
skip_if_nor   r   r   parametrizer"   r0  r4   r#   r   r   r   r   r   r   r   r   rd   r>   r   r  r  filterwarningsr  r  r"  r+  r2  r5  r8  r?  float16float32rB  rD  rH  rN  rP  rR  rU  rZ  r]   r   r   <module>rt     s      - % * ) 4   @ > > > >
 ( (
(&?*(:$	"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&r   