Ë
    AúYj˜V  ã                   óÎ  — d Z ddlZddlZddlmZ ddlmZ ddlZ	ddl
mZ ddl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ej8                  j;                  dej<                   ej>                  d«       e d«      de	jB                  g«      d„ «       Z"ej8                  j;                  dddg«      d„ «       Z#d„ Z$d„ Z%d„ Z&d„ Z'd„ Z(ej8                  j;                  dddg«      d „ «       Z)ej8                  j;                  d!d"d#g«      d$„ «       Z*ej8                  j;                  d!d"d#g«      ej8                  j;                  d%e	jV                  e	jX                  g«      d&„ «       «       Z-d'„ Z.d(„ Z/ej8                  ja                  d)«      d*„ «       Z1ej8                  ja                  d)«      d+„ «       Z2ej8                  ja                  d)«      d,„ «       Z3d-„ Z4d.„ Z5d/„ Z6d0„ Z7ej8                  j;                  d1ejp                  ejr                  ej>                  g«      d2„ «       Z:d3„ Z;d4„ Z<d5„ Z=d6„ Z>d7„ Z?d8„ Z@d9„ ZAd:„ ZBd;„ ZCd<„ ZDd=„ ZEej8                  j;                  d%e	jV                  e	jX                  g«      d>„ «       ZFej8                  j;                  d%e	jV                  e	jX                  g«      d?„ «       ZGy)@z—
This module tests the functionality of StringArray and ArrowStringArray.
Tests for the str accessors are in pandas/tests/strings/test_string_array.py
é    N)Úpa_version_under19p0)Úis_dtype_equal)ÚArrowStringArrayc                 ó:   — | \  }}t        j                  ||¬«      S )zKFixture giving StringDtype from parametrized storage and na_value arguments©ÚstorageÚna_value©ÚpdÚStringDtype)Ústring_dtype_argumentsr   r	   s      úr/var/www/ramen.bs-engineer-server.com/venv/lib/python3.12/site-packages/pandas/tests/arrays/string_/test_string.pyÚdtyper      s   € ð /Ñ€GˆXÜ�>‰> '°HÔ=Ð=ó    c                 ó:   — | \  }}t        j                  ||¬«      S )Nr   r
   )Ústring_dtype_arguments2r   r	   s      r   Údtype2r      s   € à/Ñ€GˆXÜ�>‰> '°HÔ=Ð=r   c                 ó"   — | j                  «       S )z3Fixture giving array type from parametrized 'dtype')Úconstruct_array_type©r   s    r   Úclsr   !   s   € ð ×%Ñ%Ó'Ð'r   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 )NÚpyarrowÚpython©r	   Únan)ÚpytestÚimportorskipr   r   Únpr   ÚNAÚfloat)Údtype1r   Údtype3s      r   Útest_dtype_equalityr$   '   s  € Ü
×Ñ˜	Ô"ä�^‰^˜HÓ%€FÜ�^‰^˜IÓ&€FÜ�^‰^˜I´·±Ô7€Fà”R—^‘^ H´r·u±uÔ=Ò=Ð=Ð=Ø�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: stringz'>
['a', nan, 'b']
Length: 3, dtype: strr   ÚStringArray)
r   Ú	DataFrameÚarrayr    r	   r   r   Úreprr&   r   )r   ÚdfÚexpectedÚarr_names       r   Ú	test_reprr1   <   sC  € Ü	�‰�sœBŸH™H c¬2¯5©5°#Ð%6¸eÔDÐEÓ	F€BØ‡~�~œŸ™ÑØ3‰à7ˆÜ�‹8�xÒÐÐà‡~�~œŸ™ÑØF‰àLˆÜ�—‘‹:˜Ò!Ð!Ð!à‡}�}˜	Ò! e§n¡n¼¿¹Ñ&=Ø%ˆØ�x�jÐ MÐN‰Ø	�‰˜)Ò	#¨¯©¼"¿&¹&Ñ(@Ø%ˆØ�x�jÐ IÐJ‰Ø	�‰˜(Ò	" u§~¡~¼¿¹Ñ'?Ø ˆØ�x�jÐ IÐJ‰à ˆØ�x�jÐ 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<StringDtype(na_value=<NA>)>z<StringDtype(na_value=nan)>z.<StringDtype(storage='python', na_value=<NA>)>z-<StringDtype(storage='python', na_value=nan)>)r   r	   r   r    r-   r   s    r   Útest_dtype_reprr3   Y   s‚   € Ø‡}�}˜	Ò!Ø�>‰>œRŸU™UÑ"Ü˜“;Ð"@Ò@Ð@Ð@ä˜“;Ð"?Ò?Ð?Ñ?ð Að 
�‰œ2Ÿ5™5Ñ	 Ü�E‹{ÐNÒNÐNÑNä�E‹{ÐMÒMÐMÑMr   c                 óv   — | j                  g d¢|¬«      }|d   €J ‚|d   |j                  j                  u sJ ‚y )N)r'   Nr(   r   é   )Ú_from_sequencer   r	   )r   r   r'   s      r   Útest_none_to_nanr7   e   sD   € Ø×ÑÒ+°5ÐÓ9€AØˆQ‰4ÐÐÐØˆQ‰4�1—7‘7×#Ñ#Ñ#Ð#Ñ#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)Nr'   r(   r   z!Invalid value '10' for dtype 'str©Úmatché
   r   zInvalid value for dtype 'strr5   é   )r6   r   ÚraisesÚ	TypeErrorr   r,   )r   r   ÚarrÚmsgs       r   Útest_setitem_validatesrA   k   s‘   € Ø
×
Ñ
˜c 3˜Z¨uÐ
Ó
5€Cà
-€CÜ	�‰”y¨Ô	,ñ ØˆˆA‰÷ð )€CÜ	�‰”y¨Ô	,ñ "Ü—‘˜1˜a˜&Ó!ˆ‰Aˆ÷"ð "÷	ð ú÷"ð "ús   ³BÁBÂBÂBc                 óž   — t        j                  ddg| ¬«      }d|d<   t        j                  ddg| ¬«      }t        j                  ||«       y )Nr'   Úcr   Údr   )r   r,   ÚtmÚassert_extension_array_equal)r   r?   r/   s      r   Útest_setitem_with_scalar_stringrG   w   sE   € ô �(‰(�C˜�: UÔ
+€CØ€Cˆ�FÜ�x‰x˜˜c˜
¨%Ô0€HÜ×#Ñ# 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©r'   r(   rC   r   r&   r   r5   rC   )r   r,   r   Úcopyr    rE   rF   Úassert_numpy_array_equal)r   r?   ÚvalueÚ
value_origr/   s        r   Ú$test_setitem_with_array_with_missingrN   €   sy   € ô �(‰(’?¨%Ô
0€CÜ�H‰H�c˜4�[Ó!€EØ—‘“€JØ€CˆˆAˆ�Kä�x‰x˜œbŸe™e SÐ)°Ô7€HÜ×#Ñ# C¨Ô2Ü×Ñ  zÕ2r   c                 óÜ  — t        j                  t        j                  d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é   Úns)ÚperiodsÚunitr   zdatetime64[ns]éÿÿÿÿ)	r   ÚSeriesÚ
date_rangeÚastyper   r   rE   Úassert_series_equalÚiloc)r   ÚserÚcastedÚresultÚser2Úcasted2Úresult2s          r   Útest_astype_roundtripra   �   s¿   € Ü
�)‰)”B—M‘M &°"¸4Ô@Ó
A€CØ€Cˆ�Fà�Z‰Z˜Ó€FÜ˜&Ÿ,™,¨Ô.Ð.Ð.à�]‰]Ð+Ó,€FÜ×Ñ˜6 3Ô'ð �—‘˜"‘Ñ€DØ�k‰k˜%Ó €GÜ˜'Ÿ-™-¨Ô/Ð/Ð/à�n‰n˜TŸZ™ZÓ(€GÜ×Ñ˜7 DÕ)r   c           
      ól  — | t         j                  j                  u rd}dt        j                  «       i}nd}i }t	        j
                  t        |¬«      5   | t        j                  ddgd¬«      fi |¤Ž d d d «       t	        j
                  t        |¬«      5   | t        j                  g «      fi |¤Ž d d d «       | t         j                  j                  u rW | t        j                  dt        j                  gt        ¬«      fi |¤Ž  | t        j                  dd gt        ¬«      fi |¤Ž nžt	        j
                  t        |¬«      5   | t        j                  dt        j                  gt        ¬«      fi |¤Ž d d d «       t	        j
                  t        |¬«      5   | t        j                  dd gt        ¬«      fi |¤Ž d d d «       t	        j
                  t        |¬«      5   | t        j                  dt         j                  gt        ¬«      fi |¤Ž d d d «       t	        j
                  t        |¬«      5   | t        j                  dt        j                  d	d
«      gt        ¬«      fi |¤Ž d d d «       t	        j
                  t        |¬«      5   | t        j                  dt        j                  d	d
«      gt        ¬«      fi |¤Ž d d d «       y # 1 sw Y   �ŒjxY w# 1 sw Y   �Œ7x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   Œ¦xY w# 1 sw Y   y xY w)Nz7StringArray requires a sequence of strings or pandas.NAr   zBUnsupported type '<class 'numpy.ndarray'>' for ArrowExtensionArrayr9   r'   r(   ÚS1r   ÚNaTrR   )r   Úarraysr*   r   r   r=   Ú
ValueErrorr   r,   r   Úobjectrd   Ú
datetime64Útimedelta64)r   r@   Úkwargss      r   Útest_constructor_raisesrk       sr  € Ø
Œb�i‰i×#Ñ#Ñ#ØGˆØœ2Ÿ>™>Ó+Ð,‰àRˆØˆä	�‰”z¨Ô	-ñ 8ÙŒB�H‰H�c˜3�Z tÔ,Ñ7°Ò7÷8ô 
�‰”z¨Ô	-ñ $ÙŒB�H‰H�R‹LÑ#˜FÒ#÷$ð Œb�i‰i×#Ñ#Ñ#ñ 	ŒB�H‰H�cœ2Ÿ6™6�]¬&Ô1Ñ<°VÒ<ÙŒB�H‰H�c˜4�[¬Ô/Ñ:°6Ó:ä�]‰]œ:¨SÔ1ñ 	AÙ”—‘˜#œrŸv™v˜¬fÔ5Ñ@¸Ò@÷	Aä�]‰]œ:¨SÔ1ñ 	?Ù”—‘˜#˜t˜¬FÔ3Ñ>°vÒ>÷	?ô 
�‰”z¨Ô	-ñ =ÙŒB�H‰H�cœ2Ÿ6™6�]¬&Ô1Ñ<°VÒ<÷=ô 
�‰”z¨Ô	-ñ QÙŒB�H‰H�cœ2Ÿ=™=¨°Ó5Ð6¼fÔEÑPÈÒP÷Qô 
�‰”z¨Ô	-ñ RÙŒB�H‰H�cœ2Ÿ>™>¨%°Ó6Ð7¼vÔFÑQÈ&ÒQ÷Rð R÷/8ñ 8ú÷$ñ $ú÷	Añ 	Aú÷	?ñ 	?ú÷=ð =ú÷Qð Qú÷Rð RúsT   Á!KÂK+Å3K8Æ"%LÇ*3LÉ 9LÊ9L*ËK(Ë+K5Ë8LÌLÌLÌL'Ì*L3Únar   c                 óp  — t         j                  j                  t        j                  dt         j
                  g«      t        j                  «       ¬«      }t         j                  j                  t        j                  d| gd¬«      t        j                  «       ¬«      }t        j                  ||«       y )Nr'   r   rg   )	r   re   r*   r   r,   r    r   rE   rF   )rl   r/   r]   s      r   Útest_constructor_nan_likern   Ã   sy   € ä�y‰y×$Ñ$¤R§X¡X¨s´B·E±E¨lÓ%;Ä2Ç>Á>ÓCSÐ$ÓT€HÜ�Y‰Y×"Ñ"Ü
�‰�#�r� (Ô+´2·>±>Ó3Cð #ó €Fô ×#Ñ# F¨HÕ5r   rJ   TFc                 ó   — t        j                  dt         j                  gt        ¬«      }|j	                  «       }t        j                  dt
        j                  gt        ¬«      }|j                  ||| ¬«      }|t        u r/dd l	} ||j                  ||j                  «       d¬«      |¬«      }n1|j                  t         j                  u r |||¬«      }n
 |||¬«      }t        j                  ||«       t        j                  ||«       y )Nr'   r   )r   rJ   r   T©ÚtypeÚfrom_pandas)r   r,   r   rg   rJ   r   r    r6   r   r   Ústringr	   rE   rF   rK   )	rJ   r   r   Únan_arrÚexpected_inputÚna_arrr]   Úpar/   s	            r   Útest_from_sequence_no_mutaterx   Ì   sÎ   € ä�h‰h˜œRŸV™V�}¬FÔ3€GØ—\‘\“^€NÜ�X‰X�sœBŸE™E�l¬&Ô1€Fà×Ñ ¨u¸4ÐÓ@€Fà
ÔÑÛáØ�H‰H�V "§)¡)£+¸4ˆHÓ@Èô
‰ð 
�‰œ2Ÿ6™6Ñ	!Ù�w eÔ,‰á�v UÔ+ˆä×#Ñ# F¨HÔ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©r5   r<   é   rz   r|   z#cannot convert float NaN to integerzJint\(\) argument must be a string, a bytes-like object or a( real)? numberr9   )r   r,   rX   r   rE   rK   r    r	   r   rf   r>   r   r=   )r   r?   r]   r/   Úerrr@   s         r   Útest_astype_intr�   ã   sµ   € Ü
�(‰(’?¨%Ô
0€CØ�Z‰Z˜Ó €FÜ�x‰xš	¨Ô1€HÜ×Ñ ¨Ô1ä
�(‰(�CœŸ™ Ð$¨EÔ
2€CØ‡~�~œŸ™ÑÜˆØ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 )Nrz   r|   r   ÚInt64r5   r   )r   r,   r    rX   rE   rF   ©r   r?   r]   r/   s       r   Útest_astype_nullable_intr…   ÷   sU   € Ü
�(‰(�CœŸ™ Ð$¨EÔ
2€Cà�Z‰Z˜Ó €FÜ�x‰x˜œBŸE™E 1˜¨WÔ5€HÜ×#Ñ# F¨HÕ5r   c                 ó^  — t        j                  dt         j                  dg| ¬«      }|j                  |«      }t	        |j
                  t        j
                  «      rt        j                  nt         j                  }t        j                  d|dg|¬«      }t        j                  ||«       y )Nz1.1z3.3r   gš™™™™™ñ?gffffff
@)
r   rV   r    rX   Ú
isinstancer   r   r   rE   rY   )r   Úany_float_dtyper[   r]   Úitemr/   s         r   Útest_astype_floatrŠ   ÿ   sr   € ä
�)‰)�UœBŸE™E 5Ð)°Ô
7€CØ�Z‰Z˜Ó(€FÜ §¡¬b¯h©hÔ7Œ2�6Š6¼R¿U¹U€DÜ�y‰y˜#˜t SÐ)°ÔA€HÜ×Ñ˜6 8Õ,r   c                 óh   — t        j                  g d¢|¬«      }|j                  | ¬«      }|dk(  sJ ‚y )NrI   r   ©ÚskipnaÚabc)r   rV   Úsum©r�   r   r?   r]   s       r   Útest_reducer‘     s.   € Ü
�)‰)’O¨5Ô
1€CØ�W‰W˜FˆWÓ#€FØ�UŠ?Ð‰?r   c                 óœ   — t        j                  g d¢|¬«      }|j                  | ¬«      }| r|dk(  sJ ‚y t        j                  |«      sJ ‚y )N)Nr'   Nr(   rC   Nr   rŒ   rŽ   ©r   rV   r�   Úisnar�   s       r   Útest_reduce_missingr•     sB   € Ü
�)‰)Ò5¸UÔ
C€CØ�W‰W˜FˆWÓ#€FÙØ˜ŠÐ‰ä�w‰w�vŒÐ‰r   Ú	min_countr5   c                 óB  — t        j                  g |¬«      }|j                  | |¬«      }|dk(  r|dk(  sJ ‚t        j                  |«      sJ ‚t        j                  d d g|¬«      }|j                  | |¬«      }| r|dk(  r|dk(  sJ ‚y t        j                  |«      sJ ‚y )Nr   )r�   r–   r   Ú r“   )r�   r   r–   r?   r]   s        r   Útest_reduce_emptyr™     s”   € ä
�)‰)�B˜eÔ
$€CØ�W‰W˜F¨iˆWÓ8€FØ�A‚~Ø˜Š|Ðˆ|ä�w‰w�vŒÐˆô �)‰)�T˜4�L¨Ô
.€CØ�W‰W˜F¨iˆWÓ8€FÙ�)˜q’.Ø˜Š|Ð‰|ä�w‰w�vŒÐ‰r   ÚmethodÚminÚmaxc                 ó¶   — t        j                  g d¢|¬«      } t        || «      |¬«      }|r| dk(  rdnd}||k(  sJ ‚y ||j                  j                  u sJ ‚y )N©r'   r(   rC   Nr   rŒ   r›   r'   rC   )r   rV   Úgetattrr   r	   )rš   r�   r   r?   r]   r/   s         r   Útest_min_maxr    )  s\   € ä
�)‰)Ò)°Ô
7€CØ!ŒW�S˜&Ó!¨Ô0€FÙØ  Eš/‘3¨sˆØ˜Ò!Ð!Ñ!à˜Ÿ™×+Ñ+Ñ+Ð+Ñ+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=   Úreasonrž   r   r›   r'   rC   )
r   r   r,   r   ÚmarkÚxfailr>   ÚapplymarkerrŸ   r   )	rš   r¡   r   Úrequestr£   r¤   r?   r]   r/   s	            r   Útest_min_max_numpyr¨   4  s‘   € ð ‡}�}˜	Ò! c¬R¯X©X¡oØ”"—(‘(‰?ØS‰FàGˆFÜ�{‰{× Ñ ¬	¸&Ð ÓAˆØ×Ñ˜DÔ!á
Ò#¨5Ô
1€CØ ŒW”R˜Ó  Ó%€FØ ’o‰s¨3€HØ�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)Nr'   r   r(   )rL   ú Invalid value '1' for dtype 'strr9   r5   )r   r,   r    ÚfillnarE   rF   r   Ústr_r   r=   r>   )r   r?   Úresr/   r@   s        r   Útest_fillna_argsr®   E  sÂ   € ô �(‰(�CœŸ™�< uÔ
-€Cà
�*‰*˜3ˆ*Ó
€CÜ�x‰x˜˜c˜
¨%Ô0€HÜ×#Ñ# C¨Ô2à
�*‰*œ2Ÿ7™7 3›<ˆ*Ó
(€CÜ�x‰x˜˜c˜
¨%Ô0€HÜ×#Ñ# C¨Ô2à
,€CÜ	�‰”y¨Ô	,ñ Ø�
‰
˜ˆ
Ô÷÷ ñ ús   ÃC6Ã6C?c                 óh  — t        j                  d«      }dd lm} t	        j
                  g d¢| ¬«      }|j                  |«      }|j                  t        |«      |j                  «       d¬«      }| j                  dk(  r |j                  ||j                  «       «      }|j                  |«      sJ ‚y )Nr   r   rI   r   Trp   r   )r   r   Úpyarrow.computeÚcomputer   r,   ÚlistÚlarge_stringr   Úcastrs   Úequals)r   rw   ÚpcÚdatar?   r/   s         r   Útest_arrow_arrayr¸   W  s…   € ä	×	Ñ	˜YÓ	'€BÝ ä�8‰8’O¨5Ô1€DØ
�(‰(�4‹.€CØ�x‰xœ˜T›
¨¯©Ó):ÈˆxÓM€HØ‡}�}˜Ò Ø—7‘7˜8 R§Y¡Y£[Ó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 «       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(   Nr   r'   r   rs   r³   Ústring_storager   )r<   r'   )r   r   r   r,   r+   Útabler   Úfieldrq   Úoption_contextÚ	to_pandasr‡   r   r   rX   r	   Úcolumnsr   r   rE   Úassert_frame_equalÚloc©	r   r»   Úusing_infer_stringrw   r·   r.   r¼   r]   r/   s	            r   Útest_arrow_roundtriprÅ   d  s`  € ô 
×	Ñ	˜YÓ	'€Bä�8‰8Ò$¨EÔ2€DÜ	�‰�s˜D�kÓ	"€BØ�H‰H�R‹L€EØ‡}�}˜Ò Ø�{‰{˜3Ó×$Ñ$¨Ò0Ð0Ð0à�{‰{˜3Ó×$Ñ$¨Ò6Ð6Ð6Ü	×	Ñ	Ð+¨^Ó	<ñ #Ø—‘Ó"ˆ÷#ô �f˜S‘k×'Ñ'¬¯©Ô8Ð8Ð8Ø�y‰yœŸ™¨ÀÇÁÔPÓQ€HÙØ#×+Ñ+×2Ñ2Ü�N‰N˜>´B·F±FÔ;ó
ˆÔô ×Ñ˜& (Ô+à�:‰:�fÑ ¨¡×!2Ñ!2×!;Ñ!;Ñ;Ð;Ñ;÷#ð #ús   Â<F4Æ4F=c                 ó   — t        j                  d«      }|j                  d|j                  g d¢|j	                  «       ¬«      i«      }|j                  «       }| s`t        rt        j                  dg d¢id¬«      }n{t        j                  dg d¢it        j                  t        j                  ¬«      ¬«      }n=t        rt        j                  dg d¢id¬«      }nt        j                  dg d¢id¬«      }t        j                  ||«       y )	Nr   r'   rº   ©rq   rg   r   r   Ústr)r   r   r¼   r,   rs   r¿   r   r   r+   r   r   r   rE   rÁ   )rÄ   rw   r¼   r]   r/   s        r   Útest_arrow_from_stringrÉ   ~  sÊ   € ô 
×	Ñ	˜YÓ	'€BØ�H‰H�c˜2Ÿ8™8Ò$4¸2¿9¹9»;˜8ÓGÐHÓI€Eà�_‰_Ó€FáÝÜ—|‘| SÒ*:Ð$;À8ÔL‰Hä—|‘|ØÒ&Ð'¬r¯~©~ÄrÇvÁvÔ/Nô‰Hõ 
Ü—<‘< Ò&6Ð 7¸xÔH‰ä—<‘< Ò&6Ð 7¸uÔEˆÜ×Ñ˜& (Õ+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 «       t        d   j                  t        j                   «      sJ ‚|j#                  t        j                   || j$                  ¬
«      «      }|rC|j&                  j#                  t        j                   |t(        j*                  ¬
«      «      |_        t-        j.                  ||«       y # 1 sw Y   Œ¾xY w)Nr   r   r'   r   rs   r³   rÇ   )Úschemar»   r   )r   r   r   r,   r+   r¼   r   r½   rq   Úchunked_arrayrs   rË   r¾   r¿   r‡   r   r   rX   r	   rÀ   r   r   rE   rÁ   rÃ   s	            r   Ú test_arrow_load_from_zero_chunksrÍ   ”  sg  € ô 
×	Ñ	˜YÓ	'€Bä�8‰8�B˜eÔ$€DÜ	�‰�s˜D�kÓ	"€BØ�H‰H�R‹L€EØ‡}�}˜Ò Ø�{‰{˜3Ó×$Ñ$¨Ò0Ð0Ð0à�{‰{˜3Ó×$Ñ$¨Ò6Ð6Ð6à�H‰H�b×&Ñ& r°·	±	³Ð&Ó<Ð=ÀeÇlÁlˆHÓS€EÜ	×	Ñ	Ð+¨^Ó	<ñ #Ø—‘Ó"ˆ÷#ô �f˜S‘k×'Ñ'¬¯©Ô8Ð8Ð8Ø�y‰yœŸ™¨ÀÇÁÔPÓQ€HÙØ#×+Ñ+×2Ñ2Ü�N‰N˜>´B·F±FÔ;ó
ˆÔô ×Ñ˜& (Õ+÷#ð #ús   Ã7GÇG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ƒ   r'   r(   r   F)Údropna)r<   r5   r5   )r   r5   r   Úcount©Úindexr   ÚnameTr<   r5   )r	   r   r   r   r   r,   r    Úvalue_countsrV   rE   rY   )r   Ú	exp_dtyper?   r]   r/   s        r   Útest_value_counts_nar×   ®  sÇ   € Ø‡~�~œŸ™ÑØ‰	Ø	�‰˜)Ò	#Ø$‰	àˆ	Ü
�(‰(�C˜˜c¤2§5¡5Ð)°Ô
7€CØ×Ñ UÐÓ+€FÜ�y‰yš¨#ªi©.À	ÐPWÔX€HÜ×Ñ˜6 8Ô,à×Ñ TÐÓ*€FÜ�y‰y˜!˜Q˜ s¨2¨A w°iÀgÔN€HÜ×Ñ˜6 8Õ,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]ÚFloat64r'   r(   r   T)Ú	normalizer<   r5   Ú
proportionrÒ   r   )r	   r   r   Úfloat64r   r   rV   r    rÕ   rE   rY   ©r   rÖ   r[   r]   r/   s        r   Ú test_value_counts_with_normalizerÞ   ¿  s•   € Ø‡~�~œŸ™ÑÜ—J‘J‰	Ø	�‰˜)Ò	#Ø%‰	àˆ	Ü
�)‰)�S˜#˜s¤B§E¡EÐ*°%Ô
8€CØ×Ñ¨ÐÓ-€FÜ�y‰y˜!˜Q˜ s¨2¨A w°iÀlÔSÐVWÑW€HÜ×Ñ˜6 8Õ,r   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ƒ   )r'   r(   rC   r(   r   F)Úsort)r5   r<   r5   r   rÑ   rÒ   )	r	   r   r   r   r   rV   rÕ   rE   rY   rÝ   s        r   Útest_value_counts_sort_falserá   Ì  s{   € Ø‡~�~œŸ™ÑØ‰	Ø	�‰˜)Ò	#Ø$‰	àˆ	Ü
�)‰)Ò(°Ô
6€CØ×Ñ 5ÐÓ)€FÜ�y‰yš¨#¨b¨q¨'¸ÈÔQ€HÜ×Ñ˜6 8Õ,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 rI   r   r   T)Údeep)r   r   Úskipr   rV   ÚnbytesÚmemory_usage)r   Úseriess     r   Útest_memory_usagerè   Ù  sr   € ð ‡}�}˜	Ò!Ü�‰Ð)¨%¯-©-¨Ð9Ô:ä�Y‰Y’¨eÔ4€Fàˆv�}‰}ÔV × 3Ñ 3Ó 5ÔV¸×8KÑ8KÐQUÐ8KÓ8VÒ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   rV   rX   rE   rY   )ré   r   r[   r]   r/   s        r   Útest_astype_from_float_dtyperë   ä  sF   € ô �)‰)�S�E Ô
-€CØ�Z‰Z˜Ó€FÜ�y‰y˜%˜¨Ô.€HÜ×Ñ˜6 8Õ,r   c                 ó€  — t        j                  t        j                  t         j                  dgd¬«      }|j                  | «      }|r7t        j                  t         j                  t         j                  dg| ¬«      }n(t        j                  dt         j                  dg| ¬«      }t        j                  ||«       y )Ng      @rÙ   r   z3.0r   )r   r,   r   r   r    rX   rE   rF   )r   Úusing_nan_is_nar?   r]   r/   s        r   Ú&test_astype_from_masked_float_with_nanrî   í  s|   € ä
�(‰(”B—F‘FœBŸE™E 3Ð'¨yÔ
9€CØ�Z‰Z˜Ó€FÙÜ—8‘8œRŸU™U¤B§E¡E¨5Ð1¸Ô?‰ä—8‘8˜U¤B§E¡E¨5Ð1¸Ô?ˆÜ×#Ñ# F¨HÕ5r   c                 óú   — t        j                  dt         j                  dg| ¬«      }t        j                  |«      }t        j                  d| j                  dgt
        ¬«      }t        j                  ||«       y )Nr'   r(   r   )r   r,   r    r   r	   rg   rE   rK   r„   s       r   Ú"test_to_numpy_returns_pdna_defaultrð   ø  sU   € Ü
�(‰(�CœŸ™ Ð$¨EÔ
2€CÜ�X‰X�c‹]€FÜ�x‰x˜˜eŸn™n¨cÐ2¼&ÔA€HÜ×Ñ ¨Õ1r   c                 óä   — |}t        j                  dt         j                  dg| ¬«      }|j                  |¬«      }t	        j                  d|dgt
        ¬«      }t        j                  ||«       y )Nr'   r(   r   r   )r   r,   r    Úto_numpyr   rg   rE   rK   )r   Únulls_fixturer	   r?   r]   r/   s         r   Útest_to_numpy_na_valuerô   ÿ  sY   € Ø€HÜ
�(‰(�CœŸ™ Ð$¨EÔ
2€CØ�\‰\ 8ˆ\Ó,€FÜ�x‰x˜˜h¨Ð,´FÔ;€HÜ×Ñ ¨Õ1r   c                 ó  — t        j                  dt         j                  dg| ¬«      }d|_        |j	                  «       }| j
                  dk(  r|j                  j                  rJ ‚y |j                  j                  sJ ‚y )Nr'   r(   r   Tr   )r   r,   r    Ú	_readonlyrò   r   ÚflagsÚ	writeable)r   r?   r]   s      r   Útest_to_numpy_readonlyrù     sd   € Ü
�(‰(�CœŸ™ Ð$¨EÔ
2€CØ€C„MØ�\‰\‹^€FØ‡}�}˜Ò Ø—<‘<×)Ò)Ð)Ð)Ð)à�|‰|×%Ò%Ð%Ñ%r   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   r'   rC   ©TFF©TFT)FFF)r   rV   ÚisinrE   rY   r    )r   Úfixed_now_tsÚsr]   r/   s        r   Ú	test_isinr     s  € Ü
�	‰	Ò"¨%Ô0€Aà�V‰V�S˜#�JÓ€FÜ�y‰yÒ-Ó.€HÜ×Ñ˜6 8Ô,à�V‰V�Sœ"Ÿ%™%�LÓ!€FÜ�y‰yÒ,Ó-€HÜ×Ñ˜6 8Ô,à�V‰V�B‹Z€FÜ�y‰yÒ.Ó/€HÜ×Ñ˜6 8Ô,à�V‰V�S˜,Ð'Ó(€FÜ�y‰yÒ-Ó.€HÜ×Ñ˜6 8Ô,à�V‰V�\�NÓ#€FÜ�y‰yÒ.Ó/€HÜ×Ñ˜6 8Õ,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   r'   rC   rû   rü   )r   rV   rý   r,   rE   rY   )r   r   rÿ   r]   r/   s        r   Útest_isin_string_arrayr  )  s‹   € Ü
�	‰	Ò"¨%Ô0€Aà�V‰V”B—H‘H˜c 3˜Z¨vÔ6Ó7€FÜ�y‰yÒ-Ó.€HÜ×Ñ˜6 8Ô,à�V‰V”B—H‘H˜c 4˜[°Ô7Ó8€FÜ�y‰yÒ,Ó-€HÜ×Ñ˜6 8Õ,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   r'   rC   rû   rü   )
r   r   r   rV   rý   r,   Ú
ArrowDtypers   rE   rY   )r   rw   rÿ   r]   r/   s        r   Útest_isin_arrow_string_arrayr  5  s¹   € Ü	×	Ñ	˜YÓ	'€BÜ
�	‰	Ò"¨%Ô0€Aà�V‰V”B—H‘H˜c 3˜Z¬r¯}©}¸R¿Y¹Y»[Ó/IÔJÓK€FÜ�y‰yÒ-Ó.€HÜ×Ñ˜6 8Ô,à�V‰V”B—H‘H˜c 4˜[´·±¸b¿i¹i»kÓ0JÔKÓL€FÜ�y‰yÒ,Ó-€HÜ×Ñ˜6 8Õ,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)NrI   r   )FTFr5   rª   r9   )	r   rV   r   r,   r   r	   r   r=   r>   )r   r[   Úmaskr@   s       r   Ú(test_setitem_scalar_with_mask_validationr  B  s�   € ô �)‰)’O¨5Ô
1€CÜ�8‰8Ò(Ó)€Dà€Cˆ�IØ�9‰9�Q‰<˜3Ÿ9™9×-Ñ-Ñ-Ð-Ð-ô �)‰)’O¨5Ô
1€CØ
,€CÜ	�‰”y¨Ô	,ñ ØˆˆD‰	÷÷ ñ ús   ÂB"Â"B+c                 óÞ   — g d¢}t        j                  |t         j                  ¬«      }t        j                  || ¬«      }t        j                  || ¬«      }t	        j
                  ||«       y ©NrI   r   )r   r,   r¬   r   rE   rF   ©r   Úvalsr?   r]   r/   s        r   Útest_from_numpy_strr  S  sK   € Ú€DÜ
�(‰(�4œrŸw™wÔ
'€CÜ�X‰X�c Ô'€FÜ�x‰x˜ EÔ*€HÜ×#Ñ# F¨HÕ5r   c                 óŠ   — g d¢}t        j                  || ¬«      }|j                  «       }|}t        j                  ||«       y r
  )r   r,   ÚtolistrE   Úassert_equalr  s        r   Útest_tolistr  [  s5   € Ú€DÜ
�(‰(�4˜uÔ
%€CØ�Z‰Z‹\€FØ€HÜ‡O�O�F˜HÕ%r   c                  ó¸   — t        j                  g d¢d¬«      } t        j                  t        d¬«      5  | j                  d«       d d d «       y # 1 sw Y   y xY w)NrI   rs   r   z)Cannot change data-type for string array.r9   Úi8)r   r,   r   r=   r>   Úview)r?   s    r   Ú!test_string_array_view_type_errorr  c  sA   € Ü
�(‰(’?¨(Ô
3€CÜ	�‰”yÐ(SÔ	Tñ Ø�‰�Œ÷÷ ñ ús   µAÁA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©r'   ÚbbÚcccr   c                 ó   — t        | «      S )N)Úlen©Úxs    r   ú<lambda>z(test_numpy_array_ufunc.<locals>.<lambda>n  s
   € ¬C°«F€ r   r5   r~   c                 ó   — | dz  S )Nr<   © r  s    r   r  z(test_numpy_array_ufunc.<locals>.<lambda>v  s
   € °°Q±€ r   )ÚaaÚbbbbÚccccccr   )	r   Ú
frompyfuncr   rV   r,   rg   rE   r  r   )r   r¡   r?   Ústr_len_ufuncr]   Úexpected_clsr/   Ústr_multiply_ufuncs           r   Útest_numpy_array_ufuncr(  i  sÕ   € á
Ò ¨Ô
.€Cô —M‘MÑ"2°A°qÓ9€MÙ˜3Ó€FØ #¤r§y¡yÑ 0”2—9’9´b·h±h€LášI¬VÔ4€HÜ‡O�O�F˜HÔ%ô Ÿ™¡¸¸1Ó=ÐÙ Ó$€FÙÒ+°5Ô9€HØ‡}�}˜	Ò!à”"—(‘(‰?Ü—x‘xÒ 8ÄÔG‰Hô —y‘yÒ!9Ó:ˆHä‡O�O�F˜HÕ%r   c                 óô   —  |g d¢| ¬«      }t         j                  j                  d«      }|j                  |«      }t	        |t         j
                  «      sJ ‚t        |j                  «       «      g d¢k(  sJ ‚y )Nr  r   r<   )r   ÚrandomÚdefault_rngÚpermutationr‡   ÚndarrayÚsortedr  )r   r¡   r?   Úrngr]   s        r   Útest_numpy_random_permuter0  „  sa   € ñ Ò ¨Ô
.€Cä
�)‰)×
Ñ
 Ó
"€CØ�_‰_˜SÓ!€FÜ�fœbŸj™jÔ)Ð)Ð)Ü�&—-‘-“/Ó"Ò&8Ò8Ð8Ñ8r   )HÚ__doc__Únumpyr   r   Úpandas.compat.pyarrowr   Úpandas.core.dtypes.commonr   Úpandasr   Úpandas._testingÚ_testingrE   Úpandas.core.arrays.string_arrowr   Úfixturer   r   r   r$   r1   r3   r7   rA   rG   rN   ra   rk   r¤   Úparametrizer   rÜ   r!   r    rn   rx   r�   r…   rŠ   r‘   r•   r™   r    rV   r,   r¨   r®   r¸   ÚfilterwarningsrÅ   rÉ   rÍ   r×   rÞ   rá   rè   Úfloat16Úfloat32rë   rî   rð   rô   rù   r   r  r  r  r  r  r  r(  r0  r   r   r   ú<module>r>     s(  ðñó
 Û å 6å 4ã Ý õð
 ‡�ñ>ó ð>ð ‡�ñ>ó ð>ð
 ‡�ñ(ó ð(ò
ò*(ò:	Nò$ò	"ò3ò
3ò*ò& RðF ‡�×Ñ˜ §¡¨
¨¯
©
°5Ó(9¹5À»<ÈÈrÏuÉuÐUÓVñ6ó Wð6ð ‡�×Ñ˜ $¨ Ó/ñ9ó 0ð9ò,ò(6ò-òòð ‡�×Ñ˜ q¨! fÓ-ñó .ðð" ‡�×Ñ˜ E¨5 >Ó2ñ,ó 3ð,ð ‡�×Ñ˜ E¨5 >Ó2Ø‡�×Ñ˜ §¡¨B¯H©HÐ 5Ó6ñó 7ó 3ðòò$
 ð ‡�×ÑÐNÓOñ<ó Pð<ð2 ‡�×ÑÐNÓOñ,ó Pð,ð* ‡�×ÑÐNÓOñ,ó Pð,ò2-ò"
-ò
-òWð ‡�×Ñ˜¨¯©°R·Z±ZÀÇÁÐ(LÓMñ-ó Nð-ò6ò2ò2ò&ò-ò0	-ò
-òò"6ò&òð ‡�×Ñ˜ §¡¨B¯H©HÐ 5Ó6ñ&ó 7ð&ð4 ‡�×Ñ˜ §¡¨B¯H©HÐ 5Ó6ñ9ó 7ñ9r   