
     	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j        d	             Zej        d
             Zej        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.        /                    d          d             Z0ej.        /                    d          d             Z1d Z2d Z3d  Z4d! Z5 ej6        d"          d#             Z7d$ Z8d% Z9ej.        :                    d&ej;         ej<        d'           e=d'          dej>        g          d(             Z?ej.        :                    d)d*d+g          d,             Z@d- ZAd. ZBd/ ZCej.        :                    d0d*d+g          d1             ZDej.        :                    d0d*d+g          d2             ZEej.        :                    d3d4d5g          ej.        :                    d0d*d+g          d6                         ZFej.        :                    d3d4d5g          ej.        :                    d7ejG        ejH        g          d8                         ZId9 ZJd: ZKej.        L                    d;          d<             ZMej.        L                    d;          d=             ZNej.        L                    d;          d>             ZOd? ZPd@ ZQej.        :                    dAg dB ejH        g dC          fg dD ejH        g dE          fg          dF             ZRdG ZSdH ZTej.        :                    dIejU        ejV        ej<        g          dJ             ZWdK ZXdL ZYdM ZZdN Z[dO Z\dP Z]dQ Z^dR Z_ej.        :                    d7ejG        ejH        g          dS             Z`dS )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                 8    | \  }}t          j        ||          S )zKFixture giving StringDtype from parametrized storage and na_value argumentsstoragena_valuepdStringDtype)string_dtype_argumentsr   r   s      _/srv/django_bis/venv311/lib/python3.11/site-packages/pandas/tests/arrays/string_/test_string.pydtyper      s#     /GX>'H====    c                 8    | \  }}t          j        ||          S )Nr   r   )string_dtype_arguments2r   r   s      r   dtype2r   %   s!    /GX>'H====r   c                 *    |                                  S )z3Fixture giving array type from parametrized 'dtype')construct_array_typer   s    r   clsr   +   s     %%'''r   c                    t           rt          j        dt          j                  t          j        dt          j                  t          j        dt          j                  t          j        dt          j                  g}n@t          j        dt          j                  t          j        dt          j                  g}|                    |           }|                    |          }|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     
N8bf555N9rv666N8be444N9ru555	
 N8bf555N8be444

 
		v	&	&B			v	&	&B3r2;;''r   c                     t          j        d           t          j        t                    5  t          j        d          } d d d            n# 1 swxY w Y   | t          j        dt          j                  k    sJ d S )Nr    pyarrow_numpyr   )	pytestimportorskiptmassert_produces_warningFutureWarningr   r   r!   r"   r   s    r   test_dtype_constructorr2   D   s    
	"""		#M	2	2 0 0//0 0 0 0 0 0 0 0 0 0 0 0 0 0 0BN9rv>>>>>>>>>s   AAAc                  T   t          j        d           t          j        d          } t          j        d          }t          j        dt          j                  }| t          j        dt          j                  k    sJ | |k    sJ | |k    sJ |t          j        dt          j                  k    sJ || k    sJ ||k    sJ |t          j        dt          j                  k    sJ |t          j        dt          d                    k    sJ || k    sJ ||k    sJ d S )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777FR^Hru=======VVR^I>>>>>>>VVR^I???????R^IeEEEEEEEVVr   c                 j   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}nV| 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 d S )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   sb   	sBHc25#%6eDDDE	F	FB~3788x~FL::!!!!}	!!en&=&=%NxNNN	)	#	#"&(@(@3JxJJJ	(	"	"u~'?'?.JxJJJ NxNNN
x''''''r   c                    | j         dk    rA| j        t          j        u rt	          |           dk    sJ d S t	          |           dk    sJ d S | j        t          j        u rt	          |           dk    sJ d S t	          |           dk    sJ d S )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    }	!!>RU"";;"3333333;;"???????	25	 	 E{{.......E{{MMMMMMMr   c                 x    |                      g d|          }|d         J |d         |j        j        u sJ d S )N)r9   Nr:   r      )_from_sequencer   r   )r   r   r9   s      r   test_none_to_nanrI      sQ    +++599AQ4Q417#######r   c                 N   |                      ddg|          }d}t          j        t          |          5  d|d<   d d d            n# 1 swxY w Y   d}t          j        t          |          5  t	          j        d	d
g          |d d <   d d d            d S # 1 swxY w Y   d S )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      s1   


c3Zu

5
5C
-C	y	,	,	,  A               )C	y	,	,	, " "1a&!!AAA" " " " " " " " " " " " " " " " " "s#   A		AA1BB!Bc                     t          j        ddg|           }d|d<   t          j        ddg|           }t          j        ||           d S )Nr9   cr   dr   r   r>   r/   assert_extension_array_equal)r   rQ   rA   s      r   test_setitem_with_scalar_stringrY      sV     (C:U
+
+
+CCFxc
%000H#C22222r   c                 2   t          j        g d|           }t          j        dd g          }|                                }||ddg<   t          j        dt           j        dg|           }t          j        ||           t          j        ||           d S )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`      s     (???%
0
0
0CHc4[!!EJCAKxbeS)777H#C222z22222r   c                    t          j        t          j        dd                    }d |d<   |                    |           }t	          |j        |           sJ |                    d          }t          j        ||           ||j        d         z
  }|                    |           }t	          |j        |           sJ |                    |j                  }t          j        ||           d S )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    
)BM&"555
6
6CCFZZF&,.....]]+,,F63''' "Dkk%  G'-/////nnTZ((G7D)))))r   c                 *   t          j        g d|           }t          j        g d|           }||z   }t          j        g d|           }t          j        ||           |                    |          }t          j        ||           |                    |          }t          j        g d|           }t          j        ||           |                    |d          }t          j        g d|           }t          j        ||           d S )	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y777uEEEH68,,,UU1XXF68,,,VVAYYFy777uEEEH68,,,UU1U%%Fy777uEEEH68,,,,,r   c                    | j         dk    r8d}t          j                            d |          }|                    |           t          j        g d|           }t          j        g dgt                    }t          j	        t          d          5  ||z    d d d            n# 1 swxY w Y   t          j        |          }t          j	        t          d          5  ||z    d d d            d S # 1 swxY w Y   d S )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      sy   }	!!={  V <<D!!!
...A
///"&111A	z	2	2	2  	A               		!A	z	2	2	2  	A                 s$   B''B+.B+!C44C8;C8c                    t          j        g d|           }g d}||z   }t          j        g d|           }t          j        ||           ||z   }t          j        g d|           }t          j        ||           d S )N)r9   r:   NNr   )rs   Nrt   N)rv   NNN)rx   NNNrW   )r   r9   otherrm   rA   s        r   test_add_sequencer      s    
'''u555A"""EYFx000>>>H#FH555QYFx000>>>H#FH55555r   c                     t          j        g d|           }|dz  }t          j        g d|           }t          j        ||           d|z  }t          j        ||           d S )Nr9   r:   Nr   rN   )aabbNrW   )r   r9   rm   rA   s       r   test_mulr      sv    
!!!///AUFx***%888H#FH555UF#FH55555r   zGH-28527)r   c                    t          j        g d|           }t          j        g dgt                    }|                    |          t
          u sJ ||z   }t          j        g dg                              |           }t          j        ||           ||z   }t          j        g dg                              |           }t          j        ||           d S )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
5
5
5C	+++,F	;	;	;B;;r??n,,,,2XF|555677>>uEEH&(+++#XF|555677>>uEEH&(+++++r   c                    t          j        ddt          j        t          j        g|           }t          j        dt          j        dt          j        gg          }|                    |          t          u sJ ||z   }t          j        dt          j        t          j        t          j        gg                              |           }t          j	        ||           ||z   }t          j        dt          j        t          j        t          j        gg                              |           }t          j	        ||           d S )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bfbf-U
;
;
;C	RVS"&12	3	3B;;r??n,,,,2XF|dBFBFBF;<==DDUKKH&(+++#XF|dBFBFBF;<==DDUKKH&(+++++r   c                 P   d| j          dt          j        g d|          }d t          |                    }|j        t
          j        u rpt          j        fd|D                       }| t          j        k    rd|d<   nd|d<   t          j
        ||                    t
          j                             d S |j        d	k    rd
nd}t          j        fd|D             t                    }t          j        ||          }t          j        ||           d S )N__r9   NrU   r   r9   c                 B    g | ]} t          |                    S  getattr.0itemop_namer   s     r   
<listcomp>z2test_comparison_methods_scalar.<locals>.<listcomp>%  .    IIIt3WT733E::IIIr   TrG   Fr    boolean[pyarrow]booleanc                 B    g | ]} t          |                    S r   r   r   s     r   r   z2test_comparison_methods_scalar.<locals>.<listcomp>-  r   r   )__name__r   r>   r   r   r!   r"   operatorner/   r]   rh   bool_r   r   rX   )comparison_opr   r9   rm   rA   expected_dtyper   r   s         @@r   test_comparison_methods_scalarr     s?   -=)---G
!!!///AE WQ  ''F~8IIIIIqIIIJJHK''HQKKHQK
#FHOOBH,E,EFFFFF/4}	/I/I++y8IIIIIqIIIQWXXX8HN;;;
'99999r   c                    d| j          d}t          j        g d|          } t          ||          t          j                  }|j        t          j        u rTt          j	        | k    rt          j        g d          }nt          j        g d          }t          j        ||           d S |j        dk    rdnd}t          j        g d	|          }t          j        ||           t          j        ||           d S )
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~;-''x 2 2 233HHx 5 5 566H
#FH55555/4}	/I/I++y8...nEEE
'999
'99999r   c                 R   d| j          d}t          j        g d|          }d}|dvrNt          j        t
          d          5   t          ||          |           d d d            n# 1 swxY w Y   d S  t          ||          |          }|j        t          j	        u r:g dg d	d|         }t          j        |          }t          j        ||           d S g d
g dd|         }|j        dk    rdnd}t          j        ||          }t          j        ||           d S )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WW 	' 	'GAw&&&	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	 WQ  ''F~+++(((
 
  8M**
#FH55555#7#7#7CUCUCUVV
 05}	/I/I++y8M@@@
'99999s   A++A/2A/c                 H   d| j          d}t          j        g d|          }t          j        g d|          } | ||          } | ||          }t          j        ||           |j        t          j        u r|j        t          j        u r|t          j	        | k    rt          j        g d          }n>t          j        g d          } t          |d         |          |d                   |d<   t          j        ||           d S t          ||          }	|	j        dk    rd	}
nd
}
t          j        t          |          d d          } t          |d         |          |d                   |d<   t          j        ||
          }t          j        ||           d S )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  s   -=)---G
!!!///AH&&&f555E]1e$$F mE1%%GOFG$$$~FOrv$=$=;-''x 3 3 344HHx 5 5 566H6759g66qu==HRL
#FH55555 2%@@	((&NN,N73q66d(CCC2wuRy'221R5998HN;;;
'99999r   r    c                    dd l }d| j         d}t          j        |                                          }t          j        g d|          }t          j        g d|          } | ||          } | ||          }t          j        ||           t          j        g dd          }	 t          |d         |          |d                   |	d<   t          j	        ||	           d S )	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M"))++&&E
!!!///AH&&&f555E]1e$$F mE1%%GOFG$$$x***/BBBH.759g..qu55HRL#FH55555r   c                    d| j          d}t          j        g d|          }g d} | ||          } | ||          }t          j        ||           |j        t          j        u r|t          j	        | k    rt          j        g d          }n>t          j        g d          } t          |d         |          |d                   |d<   t          j        ||           d S |j        dk    rd	nd
}t          j        t          |          d d          } t          |d         |          |d                   |d<   t          j        ||          }t          j        ||           d S )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 mE1%%GOFG$$$~;-''x 3 3 344HHx 5 5 566H6759g66qu==HRL
#FH55555 05}	/I/I++y73q66d(CCC2wuRy'221R5998HN;;;
'99999r   c           
      l   | 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            n# 1 swxY w Y   t	          j        t          |          5   | t          j        g                      d d d            n# 1 swxY w Y   | t           j        j        u s	| t          u rW | 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            n# 1 swxY w Y   t	          j        t          |          5   | t          j        dd gt                               d d d            n# 1 swxY w Y   t	          j        t          |          5   | t          j        dt           j        gt                               d d d            n# 1 swxY w Y   t	          j        t          |          5   | t          j        dt          j        d	d
          gt                               d d d            n# 1 swxY w Y   t	          j        t          |          5   | t          j        dt          j        d	d
          gt                               d d d            d S # 1 swxY w Y   d S )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     s   
bi###G	)	)	)OR	z	-	-	- . .BHc3Zt,,,---. . . . . . . . . . . . . . . 
z	-	-	-  BHRLL               bi###s.G'G'G 	BHc26]&111222BHc4[///0000]:S111 	7 	7C#rvf555666	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7]:S111 	5 	5C#tF333444	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 
z	-	-	- 3 3BHc26]&1112223 3 3 3 3 3 3 3 3 3 3 3 3 3 3 
z	-	-	- G GBHc2=556fEEEFFFG G G G G G G G G G G G G G G 
z	-	-	- H HBHc2>%667vFFFGGGH H H H H H H H H H H H H H H H H Hs~    "A..A25A2B>>CC1FFF:'G--G14G11III6:J<<K K ":L))L-0L-nar"   c                    t           j                            t          j        dt           j        g                    }t          j        t           j                            t          j        d| gd                    |           d S )Nr9   r   r   )r   r   r<   r!   r>   r#   r/   rX   )r   rA   s     r   test_constructor_nan_liker     sn    y$$RXsBEl%;%;<<H#
	bhRyAAABBH    r   r\   TFc                    t          j        dt           j        gt                    }|                                }t          j        dt
          j        gt                    }|                    |||           }|t          t          fv r8dd l
} ||                    ||                                d                    }n |t          u r ||          }n ||          }t          j        ||           t          j        ||           d S )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    hRV}F333G\\^^NXsBEl&111Fu4@@F
!?@@@3rxxRYY[[dxKKLL	)	)	)3w<<3v;;#FH55588888r   c                    t          j        g d|           }|                    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  |                    d           d d d            d S # 1 swxY w Y   d S )
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*   
(???%
0
0
0CZZ  Fx			111H111
(C$E
2
2
2C~3* 	 
s#	&	&	&  

7                 s   :CC!$C!c                     t          j        dt           j        dg|           }|                    d          }t          j        dt           j        dgd          }t	          j        ||           d S )Nr   r   r   Int64rG   r   )r   r>   r#   rh   r/   rX   r   rQ   rm   rA   s       r   test_astype_nullable_intr     se    
(C$E
2
2
2CZZ  FxBE1W555H#FH55555r   c                     t          j        dt           j        dg|           }|                    |          }t          j        dt          j        dg|          }t          j        ||           d S )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     sf    
)UBE5)
7
7
7CZZ((Fy#rvs+?CCCH68,,,,,r   skipnac                 r    t          j        g d|          }|                    |           }|dk    sJ d S )Nr[   r   r   abc)r   rf   sumr   r   rQ   rm   s       r   test_reducer     s>    
)OOO5
1
1
1CWWFW##FU??????r   c                     t          j        g d|          }|                    |           }| r
|dk    sJ d S t          j        |          sJ d S )N)Nr9   Nr:   rU   Nr   r   r   )r   rf   r   isnar   s       r   test_reduce_missingr    sb    
)555U
C
C
CCWWFW##F wvr   methodminr%   c                     t          j        g d|          } t          ||           |          }|r| dk    rdnd}||k    sJ d S ||j        j        u sJ d S )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     ))))
7
7
7C!WS&!!000F , E//33s!!!!!!+++++++r   boxc                 R   |j         dk    r\|t          j        u rN|t          j        u rd}nd}t          j                            t          |          }|                    |            |g d|          } t          t          |           |          }| dk    rdnd	}||k    sJ d S )
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     }	!!cRXoo"(??SFFGF{  	& AAD!!!
####5
1
1
1C WR  %%Fooss3HXr   c                    t          j        dt           j        g|           }|                    d          }t          j        ddg|           }t	          j        ||           |                    t          j        d                    }t          j        ddg|           }t	          j        ||           d}t          j	        t          |          5  |                    d           d d d            d S # 1 swxY w Y   d S )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  s4    (C<u
-
-
-C
**3*

Cxc
%000H#C222
**273<<*
(
(Cxc
%000H#C222
,C	y	,	,	,  


                 s   C<<D D c                    t          j        d          }dd lm} t	          j        g d|           }|                    |          }|                    t          |          |                                d          }| j        dk    rt          r|
                    |          }| j        dk    r(|                    ||                                          }|                    |          sJ d S )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      8OOO5111D
((4..CxxT

):):xMMH}	!!&:!##H--}  778RYY[[11::hr   z0ignore:Passing a BlockManager:DeprecationWarningc                    t          j        d          }t          j        g d|           }t          j        d|i          }|                    |          }| j        dk    r!|                    d          j        dk    sJ n |                    d          j        dk    sJ t          j	        d|          5  |
                                }d d d            n# 1 swxY w Y   | j        t          j        u r|s|d         j        d	k    sJ d S t          |d         j        t          j                  sJ |                    t          j        || j        
                    }|r=|j                            t          j        |t          j        
                    |_        t'          j        ||           |j        d         |d         j        j        u sJ d S )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8$$$E222D	sDk	"	"BHHRLLE}  {{3$00000{{3$6666		+^	<	< # #""# # # # # # # # # # # # # # #~(:c{ H,,,,,,&++R^<<<<<99R^NU^TTTUU 	'/66~???   H 	fh///z&!VC[%6%???????s   9CC!Cc                 |   t          j        d          }|                    d|                    g d|                                          i          }|                                }| r"t          st          j        dg did          }nt          j        dg did          }t          j
        ||           d S )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$4$4$4299;;8GGHIIE__F I"6 I<&6&6&6 7uEEE<&6&6&6 7xHHH&(+++++r   c                    t          j        d          }t          j        g |           }t          j        d|i          }|                    |          }| j        dk    r!|                    d          j        dk    sJ n |                    d          j        dk    sJ |                    |	                    g |
                                          g|j                  }t          j        d	|          5  |                                }d d d            n# 1 swxY w Y   | j        t          j        u r#t#                      s|d         j        d
k    sJ d S t'          |d         j        t          j                  sJ |                    t          j        || j                            }|r=|j                            t          j        |t          j                            |_        t/          j        ||           d S )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8Be$$$D	sDk	"	"BHHRLLE}  {{3$00000{{3$6666HHb&&r		&<<=elHSSE		+^	<	< # #""# # # # # # # # # # # # # # # ~(:(<(<c{ H,,,,,,&++R^<<<<<99R^NU^TTTUU 	'/66~???   H 	fh/////s   ;DD #D c                    | j         t          j        u rd}n| j        dk    rd}nd}t	          j        dddt          j        g|           }|                    d	          }t	          j        g d
|g d         |d          }t          j
        ||           |                    d	          }t	          j        ddg|d d         |d          }t          j
        ||           d S )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_nar6    s    ~			)	#	#$			
(Cc25)
7
7
7CU++Fy#iii.	PWXXXH68,,,T**Fy!Qs2A2wigNNNH68,,,,,r   c                 N   | j         t          j        u rt          j        }n| j        dk    rd}nd}t          j        dddt
          j        g|           }|                    d          }t          j        d	d
g|d d	         |d          dz  }t          j
        ||           d S )Nr    zdouble[pyarrow]Float64r9   r:   r   T)	normalizerN   rG   
proportionr2  r   )r   r!   r"   float64r   r   rf   r#   r4  r/   ri   r   r5  rk   rm   rA   s        r    test_value_counts_with_normalizer=    s    ~J			)	#	#%			
)S#sBE*%
8
8
8C--Fy!Qs2A2wilSSSVWWH68,,,,,r   zvalues, expectedr[   r   r   )FFTc                    t          j        | |          } d}t          j        t          |          5  t          j        dd          5  |                                 }t          j        ||           t          j        |                                           }t          j        |          }t          j	        ||           t          j
        |                                           }t          j
        |          }t          j        ||           d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )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_nar@    s    XfE***F
.C		#M	=	=	= 4 43T:: 
	4 
	4[[]]F'999Yv&&++--Fy**H"68444\&))..00F|H--H!&(333
	4 
	4 
	4 
	4 
	4 
	4 
	4 
	4 
	4 
	4 
	4 
	4 
	4 
	4 
	44 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4s6   D6
CDD6D"	"D6%D"	&D66D:=D:c                    | j         t          j        u rd}n| j        dk    rd}nd}t	          j        g d|           }|                    d          }t	          j        g d	|d d
         |d          }t          j        ||           d S )Nr   r    r/  r   )r9   r:   rU   r:   r   F)sort)rG   rN   rG   r   r1  r2  )	r   r!   r"   r   r   rf   r4  r/   ri   r<  s        r   test_value_counts_sort_falserC    s    ~			)	#	#$			
)(((
6
6
6C5))Fy#bqb'QQQH68,,,,,r   c                 
   | j         dk    rt          j        d| j                     t          j        g d|           }d|j        cxk     r3|                                cxk    r|                    d          k     sn J d S )Nr    znot applicable for r[   r   r   T)deep)r   r-   skipr   rf   nbytesmemory_usage)r   seriess     r   test_memory_usagerJ    s     }	!!9%-99:::Ye444Fv}VVVV 3 3 5 5VVVV8K8KQU8K8V8VVVVVVVVVr   float_dtypec                     t          j        dg|           }|                    |          }t          j        dg|          }t          j        ||           d S )Ng?r   z0.1)r   rf   rh   r/   ri   )rK  r   rk   rm   rA   s        r   test_astype_from_float_dtyperM    sZ     )SE
-
-
-CZZFy%...H68,,,,,r   c                     t          j        dt           j        dg|           }t          j        |          }t          j        d| j        dgt
                    }t          j        ||           d S )Nr9   r:   r   )r   r>   r#   r!   r   r   r/   r]   r   s       r   "test_to_numpy_returns_pdna_defaultrO    sb    
(C$E
2
2
2CXc]]Fxenc2&AAAH11111r   c                     |}t          j        dt           j        dg|           }|                    |          }t	          j        d|dgt
                    }t          j        ||           d S )Nr9   r:   r   r   )r   r>   r#   to_numpyr!   r   r/   r]   )r   nulls_fixturer   rQ   rm   rA   s         r   test_to_numpy_na_valuerS    sk    H
(C$E
2
2
2C\\8\,,Fxh,F;;;H11111r   c                    t          j        g d|           }|                    ddg          }t          j        g d          }t          j        ||           |                    dt           j        g          }t          j        g d          }t          j        ||           |                    g           }t          j        g d          }t          j        ||           |                    d|g          }t          j        g d          }t          j        ||           |                    |g          }t          j        g d          }t          j        ||           d S )Nr   r   r9   rU   TFFTFTr   )r   rf   isinr/   ri   r#   )r   fixed_now_tsr   rm   rA   s        r   	test_isinrY    sT   
	"""%000AVVS#JFy---..H68,,,VVS"%L!!Fy,,,--H68,,,VVBZZFy...//H68,,,VVS,'((Fy---..H68,,,VV\N##Fy...//H68,,,,,r   c                    t          j        g d|           }|                    t          j        ddg|                    }t          j        g d          }t	          j        ||           |                    t          j        dd g|                    }t          j        g d          }t	          j        ||           d S )Nr   r   r9   rU   rU  rV  )r   rf   rW  r>   r/   ri   )r   r   r   rm   rA   s        r   test_isin_string_arrayr[  +  s    
	"""%000AVVBHc3Zv66677Fy---..H68,,,VVBHc4[77788Fy,,,--H68,,,,,r   c           	      F   t          j        d          }t          j        g d|           }|                    t          j        ddgt          j        |                                                              }t          j        g d          }t          j	        ||           |                    t          j        dd gt          j        |                                                              }t          j        g d          }t          j	        ||           d S )Nr    r   r   r9   rU   rU  rV  )
r-   r.   r   rf   rW  r>   r   r   r/   ri   )r   r   r   rm   rA   s        r   test_isin_arrow_string_arrayr]  7  s    		Y	'	'B
	"""%000AVVBHc3Zr}RYY[[/I/IJJJKKFy---..H68,,,VVBHc4[biikk0J0JKKKLLFy,,,--H68,,,,,r   c                 H   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            d S # 1 swxY w Y   d S )Nr[   r   )FTFrG   r  rK   )	r   rf   r!   r>   r   r   r-   rO   rP   )r   rk   maskrR   s       r   (test_setitem_scalar_with_mask_validationr`  D  s     )OOO5
1
1
1C8((())DCI9Q<39----- )OOO5
1
1
1C
,C	y	,	,	,  D	                 s   BBBc                     g d}t          j        |t           j                  }t          j        ||           }t          j        ||           }t	          j        ||           d S Nr[   r   )r!   r>   r  r   r/   rX   r   valsrQ   rm   rA   s        r   test_from_numpy_strre  U  sb    ??D
(4rw
'
'
'CXc'''FxE***H#FH55555r   c                     g d}t          j        ||           }|                                }|}t          j        ||           d S rb  )r   r>   tolistr/   r   rc  s        r   test_tolistrh  ]  sI    ??D
(4u
%
%
%CZZ\\FHOFH%%%%%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    rB|t          j        u rt          j        g dt
                    }nt          j        g d          }t          j        ||           d S )	N)r9   r   cccr   c                      t          |           S )N)r   rs   s    r   <lambda>z(test_numpy_array_ufunc.<locals>.<lambda>j  s    CFF r   rG   r   c                     | dz  S )NrN   r   rl  s    r   rm  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_ufuncru  e  s0   
#   
.
.
.C M"2"2Aq99M]3F #ry 0 0299bhL|IIIV444HOFH%%% 1==$$Fs+++5999H}	!!"(??x 8 8 8GGGHH y!9!9!9::HOFH%%%%%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"   r;  r4   r#   r   r   r   r   r   r   r  r  rf   r>   r	  r  r  filterwarningsr&  r*  r-  r6  r=  r@  rC  rJ  float16float32rM  rO  rS  rY  r[  r]  r`  re  rh  ru  r   r   r   <module>r     s*          - - - - - - % % % % % %        * ) ) ) ) ) ) ) ) 4 4 4 4 4 4           @ @ @ @ @ @        > > > > > >
 ( ( (
( ( (&? ? ?  *( ( (:	N 	N 	N$ $ $	" 	" 	"3 3 3
3 
3 
3* * *&- - -(   
6 
6 
66 6 6 *%%, , &%, *%%, , &%,: : :&: : :$: : :<: : :@ y6 6 6&: : :6 H  H  HF 

5(9(955<<ruUVV  WV $//9 9 0/9(  (6 6 6- - - D%=11  21 D%=11  21 E5>22D%=11, , 21 32, E5>22BH 566  76 32  $      NOO@ @ PO@6 NOO, , PO, NOO0 0 PO08- - -"
- 
- 
- 	("(#8#8#899:			828$8$8$899: 4 4 4$
- 
- 
-W W W RZ(LMM- - NM-2 2 22 2 2- - -0	- 	- 	-
- 
- 
-  "6 6 6& & & BH 566& & 76& & &r   