+
    NV-j+  ã                  ó  € R t ^ RIHt ^ RIt^ RIHt ^ RIt^ RIt^ RI	H
t
 ^ RIHt ^ RIt^ RIHt ^ RIHt ^ RIHt ^ RIHt ^ R	IHt ^ R
IHt R t]P:                  ! RR.R7      R 4       t]P:                  R 4       t]P:                  R 4       t ]P:                  R 4       t!]P:                  R 4       t"]P:                  R 4       t#]P:                  R 4       t$ ! R R]PJ                  4      t& ! R R]PN                  4      t(R t)R# )aj  
This file contains a minimal set of tests for compliance with the extension
array interface test suite, and should contain no other tests.
The test suite for the full functionality of the array is located in
`pandas/tests/arrays/`.

The tests in this file are inherited from the BaseExtensionTests, and only
minimal tweaks should be applied to get the tests passing (by overwriting a
parent method).

Additional tests should either be added to one of the BaseExtensionTests
classes (if they are relevant for the extension interface for all dtypes), or
be added to the array-specific tests in `pandas/tests/arrays/`.

)ÚannotationsN)Úcast)ÚHAS_PYARROW)ÚStorageExtensionDtype©Úis_string_dtype)ÚArrowStringArray©ÚStringDtype)Ústring_dtype_highest_priority)Úbasec                ó\  € V'       g   V # V P                   P                  R 8w  d   V # \        P                  ! R 4      pV P                  p\        V4      ^,          pVP                  . VRV P                  OW4R P                  O4      pVP                  ^8X  g   Q hV P                  V4      # )ÚpyarrowN)
ÚdtypeÚstorageÚpytestÚimportorskipÚ	_pa_arrayÚlenÚchunked_arrayÚchunksÚ
num_chunksÚ_from_pyarrow_array)ÚarrÚchunkedÚpaÚarrow_arrayÚsplits   &&   Ús/Volumes/fast/ai/experiments/ui-tars-smoke/.venv/lib/python3.14/site-packages/pandas/tests/extension/test_string.pyÚmaybe_split_arrayr   &   s¥   € ßØˆ
Ø	�‰×	Ñ	˜iÔ	'Øˆ
ä	×	Ò	˜YÓ	'€Bà—-‘-€KÜ�Ó Õ!€EØ×"Ñ"ØBˆ+�f�uÐ
×
$Ñ
$ÐB {°6Ð':×'AÑ'AÐBó€Kð ×!Ñ! QÔ&Ð&Ð&Ø×"Ñ" ;Ó/Ð/ó    TF)Úparamsc                ó   € V P                   # ©N)Úparam)Úrequests   &r   r   r   7   s   € à�=‰=Ðr    c                ó"   € V w  r\        WR 7      # ))r   Úna_valuer	   )Ústring_dtype_argumentsr   r'   s   &  r   r   r   <   s   € à.Ñ€GÜ˜wÔ:Ð:r    c                ó¢  € \         P                  P                  ^4      P                  \	        \
        P                  4      ^
R7      pV^ ,          V^,          8X  dJ   \         P                  P                  ^4      P                  \	        \
        P                  4      ^
R7      pK^  V P                  4       P                  W R7      p\        W14      # )é   )Úsize©r   )
ÚnpÚrandomÚdefault_rngÚchoiceÚlistÚstringÚascii_lettersÚconstruct_array_typeÚ_from_sequencer   )r   r   Ústringsr   s   &&  r   Údatar7   B   s˜   € ä�i‰i×#Ñ# AÓ&×-Ñ-¬d´6×3GÑ3GÓ.HÈrÐ-ÓR€GØ
�!�*˜ �
Ô
"Ü—)‘)×'Ñ'¨Ó*×1Ñ1´$´v×7KÑ7KÓ2LÐSUÐ1ÓVŠà
×
$Ñ
$Ó
&×
5Ñ
5°gÐ
5Ó
K€CÜ˜SÓ*Ð*r    c                óz   € V P                  4       P                  \        P                  R.V R7      p\	        W!4      # )zLength 2 array with [NA, Valid]ÚAr,   ©r4   r5   ÚpdÚNAr   ©r   r   r   s   && r   Údata_missingr>   L   s5   € ð ×
$Ñ
$Ó
&×
5Ñ
5´r·u±u¸c°lÈ%Ð
5Ó
P€CÜ˜SÓ*Ð*r    c                ó^   € V P                  4       P                  . ROV R7      p\        W!4      # )ÚBr,   )r@   ÚCr9   )r4   r5   r   r=   s   && r   Údata_for_sortingrB   S   s+   € à
×
$Ñ
$Ó
&×
5Ñ
5²oÈUÐ
5Ó
S€CÜ˜SÓ*Ð*r    c                ó|   € V P                  4       P                  R \        P                  R.V R7      p\	        W!4      # )r@   r9   r,   r:   r=   s   && r   Údata_missing_for_sortingrD   Y   s6   € à
×
$Ñ
$Ó
&×
5Ñ
5°s¼B¿E¹EÀ3Ð6GÈuÐ
5Ó
U€CÜ˜SÓ*Ð*r    c           
     ó¢   € V P                  4       P                  R R \        P                  \        P                  RRR R.V R7      p\	        W!4      # )r@   r9   rA   r,   r:   r=   s   && r   Údata_for_groupingrF   _   sK   € à
×
$Ñ
$Ó
&×
5Ñ
5Ø	ˆc”2—5‘5œ"Ÿ%™%  c¨3°Ð4¸Eð 6ó €Cô ˜SÓ*Ð*r    c                  óô   a € ] tR t^gtV 3R ltV 3R ltR tV 3R ltV 3R ltV 3R lt	R t
V 3R ltV 3R	 ltR
 tR tR tR R ltR R ltR R ltR R ltR tV 3R ltV 3R ltV 3R ltV 3R ltRtV ;t# )ÚTestStringArrayc                	óæ   <€ \        \        V! ^4      4      4      P                  pVP                  R8X  d'   VP                  \
        P                  J d	   RV n        MRV n        \        SV `%  V4      # )r*   r   úbool[pyarrow]Úbool)
ÚnextÚiterr   r   r'   r;   r<   Ú_combine_le_expected_dtypeÚsuperÚtest_combine_le)ÚselfÚdata_repeatedr   Ú	__class__s   && €r   rP   ÚTestStringArray.test_combine_leh   sX   ø€ Ü”T™-¨Ó*Ó+Ó,×2Ñ2ˆØ�=‰=˜IÔ%¨%¯.©.¼B¿E¹EÓ*AØ.=ˆDÕ+à.4ˆDÔ+Ü‰wÑ& }Ó5Ð5r    c                	óÌ   <€ \         SV `  V4       VP                  \        P                  J d   VR VP
                   R28X  g   Q hR# VP
                  R8X  d   VR8X  g   Q hR# R# )zstring[Ú]r   ÚstrN)rO   Útest_eq_with_strr'   r;   r<   r   )rQ   r   rS   s   &&€r   rX   Ú TestStringArray.test_eq_with_strp   sX   ø€ Ü‰Ñ  Ô'à�>‰>œRŸU™UÓ"à˜g e§m¡m _°AÐ6Ô6Ð6Ò6Ø�]‰]˜iÔ'Ø˜E”>Ð!’>ñ (r    c                	ó,   € \        V4      '       g   Q hR # r#   r   )rQ   r   s   &&r   Útest_is_not_string_typeÚ'TestStringArray.test_is_not_string_typey   s   € ô ˜u×%Ò%Ð%Ò%r    c                	óÎ   <€ VP                   \        P                  J d7   V'       g/   \        V4      P	                  VP
                  4      pVR J g   Q hR# \        SV `  V4       R# )FN)r'   r-   ÚnanÚtypeÚis_dtypeÚnamerO   Útest_is_dtype_from_name)rQ   r   Úusing_infer_stringÚresultrS   s   &&& €r   rb   Ú'TestStringArray.test_is_dtype_from_name~   sG   ø€ Ø�>‰>œRŸV™VÓ#×,>Ü˜%“[×)Ñ)¨%¯*©*Ó5ˆFØ˜U“?Ð"’?ä‰GÑ+¨EÖ2r    c                	ó.  <€ VP                   \        P                  J dS   V'       gK   \        P                  ! \
        R R7      ;_uu_ 4        VP                  VP                  4       RRR4       R# \        SV `%  V4       R#   + '       g   i     R# ; i)z Cannot construct a 'StringDtype'©ÚmatchN)
r'   r-   r^   r   ÚraisesÚ	TypeErrorÚconstruct_from_stringra   rO   Ú#test_construct_from_string_own_name)rQ   r   rc   rS   s   &&&€r   rl   Ú3TestStringArray.test_construct_from_string_own_name…   s_   ø€ Ø�>‰>œRŸV™VÓ#×,>Ü—’œyÐ0R×SÖSØ×+Ñ+¨E¯J©JÔ7÷ TÑSô ‰GÑ7¸Ö>÷ T×SÐSús   ÁBÂB	c                	óŠ   <€ VP                   P                  R 8X  d   \        P                  ! RR7       \        SV `  V4       R# ©r   ú/2D support not implemented for ArrowStringArray©ÚreasonN)r   r   r   ÚskiprO   Ú	test_view©rQ   r7   rS   s   &&€r   rt   ÚTestStringArray.test_viewŒ   s/   ø€ Ø�:‰:×Ñ Ô*Ü�KŠKÐPÕQÜ‰Ñ˜$Ör    c                	ó   € R # r#   © ©rQ   r7   s   &&r   Útest_from_dtypeÚTestStringArray.test_from_dtype‘   s   € ár    c                	óŠ   <€ VP                   P                  R 8X  d   \        P                  ! RR7       \        SV `  V4       R# ro   )r   r   r   rs   rO   Útest_transposeru   s   &&€r   r}   ÚTestStringArray.test_transpose•   s/   ø€ Ø�:‰:×Ñ Ô*Ü�KŠKÐPÕQÜ‰Ñ˜tÖ$r    c                	óŠ   <€ VP                   P                  R 8X  d   \        P                  ! RR7       \        SV `  V4       R# ro   )r   r   r   rs   rO   Útest_setitem_preserves_viewsru   s   &&€r   r€   Ú,TestStringArray.test_setitem_preserves_viewsš   s/   ø€ Ø�:‰:×Ñ Ô*Ü�KŠKÐPÕQÜ‰Ñ,¨TÖ2r    c                	óf   € VP                  4       pV^.,          p\        P                  ! W#4       R# )é   N)ÚdropnaÚtmÚassert_extension_array_equal)rQ   r>   rd   Úexpecteds   &&  r   Útest_dropna_arrayÚ!TestStringArray.test_dropna_arrayŸ   s*   € Ø×$Ñ$Ó&ˆØ  Õ$ˆÜ
×'Ò'¨Ö9r    c                	ó¢   € WP                  4       ( ,          pV^ ,          pVP                  V4      pW1Jg   Q h\        P                  ! W14       R# )é    N)ÚisnaÚfillnar…   r†   )rQ   r7   Úvalidrd   s   &&  r   Útest_fillna_no_op_returns_copyÚ.TestStringArray.test_fillna_no_op_returns_copy¤   sC   € Ø—Y‘Y“[�LÕ!ˆà�Q•ˆØ—‘˜UÓ#ˆØÓ!Ð!Ð!Ü
×'Ò'¨Ö5r    c                	ó4  € VP                  4       pR Vn        VP                  V^,          4      pV^ ,          V^,          8X  g   Q h\        P                  ! W!4       VP
                  P                  R8X  d1   VP                  V^,          4      pV^ ,          V^,          8X  g   Q hMG\        P                  ! \        RR7      ;_uu_ 4        VP                  V^,          RR7       RRR4       \        P                  ! W!4       R#   + '       g   i     L(; i)Tr   zCannot modify read-only arrayrg   F)ÚcopyN)
r’   Ú	_readonlyr�   r…   r†   r   r   r   ri   Ú
ValueError)rQ   r>   r7   rd   s   &&  r   Útest_fillna_readonlyÚ$TestStringArray.test_fillna_readonly¬   sÏ   € Ø× Ñ Ó"ˆØˆŒð —‘˜\¨!�_Ó-ˆØ�a�y˜L¨�OÔ+Ð+Ð+Ü
×'Ò'¨Ô;ð �:‰:×Ñ Ô*Ø—[‘[ ¨a¥Ó1ˆFØ˜!•9 ¨Q¥Ô/Ð/Ñ/ä—’œzÐ1P×QÖQØ—‘˜L¨�O°%�Ô8÷ Rä
×'Ò'¨Ö;÷ R×Qús   ÃDÄD	c               ó    € V ^8„  d   QhRRRR/# )r*   Úop_namerW   Úreturnz4type[Exception] | tuple[type[Exception], ...] | Nonerx   )Úformats   "r   Ú__annotate__ÚTestStringArray.__annotate__¿   s   € ÷ ñ Øðà	=ñr    c                	óT   € VR9   d   \         # VR9   d   \         # VR9   d   \         # R# )Ú__mod__N)rž   Ú__rmod__Ú
__divmod__Ú__rdivmod__Ú__pow__Ú__rpow__)Ú__mul__Ú__rmul__)Ú__truediv__Ú__rtruediv__Ú__floordiv__Ú__rfloordiv__Ú__sub__Ú__rsub__)rj   )rQ   r˜   ÚobjÚothers   &&&&r   Ú_get_expected_exceptionÚ'TestStringArray._get_expected_exception¿   s@   € ð ð 
ô 
ô ÐØÐ/Ô/äÐØð 
ô 
ô Ðár    c               ó$   € V ^8„  d   QhRRRRRR/# ©r*   Úserz	pd.Seriesr˜   rW   r™   rK   rx   )rš   s   "r   r›   rœ   Ú   s!   € ÷ 
ñ 
 yð 
¸3ð 
À4ñ 
r    c                	ó‚   € VR9   ;'       g4    VP                   P                  \        P                  J ;'       d    VR9   # )Úmin)r´   ÚmaxÚsum)ÚanyÚall)r   r'   r-   r^   ©rQ   r²   r˜   s   &&&r   Ú_supports_reductionÚ#TestStringArray._supports_reductionÚ   sB   € ØÐ/Ñ/÷ 
ð 
Ø�I‰I×Ñ¤"§&¡&Ð(÷ *ð *Ø˜>Ñ)ð	
r    c               ó$   € V ^8„  d   QhRRRRRR/# r±   rx   )rš   s   "r   r›   rœ   à   s!   € ÷ 9ñ 9¨)ð 9¸cð 9Àdñ 9r    c                	óP   € \        VP                  \        4      '       g   Q hVR9   # )Úcummin)r¾   ÚcummaxÚcumsum)Ú
isinstancer   r   r¹   s   &&&r   Ú_supports_accumulationÚ&TestStringArray._supports_accumulationà   s&   € Ü˜#Ÿ)™)Ô%:×;Ò;Ð;Ð;ØÐ8Ñ8Ð8r    c               ó   € V ^8„  d   QhRR/# )r*   r˜   rW   rx   )rš   s   "r   r›   rœ   ä   s   € ÷ 0ñ 0¨cñ 0r    c                	ó¨  € \        \        \        P                  ! V4      4      pVR9   dS   Tp\	        V\
        4      '       g   \        P                  ! V4      MRp\	        V\        4      '       d   \        WW4      pMEVP                  \        P                  J d   \        P                  pMVP                  R8X  d   RpMRpVP                  V4      # )Ú__add__Nr   rJ   Úboolean)rÆ   Ú__radd__)r   r
   r…   Ú	get_dtyperÁ   rW   r   r'   r-   r^   Úbool_r   Úastype)rQ   r˜   r¬   r­   Úpointwise_resultr   Úcast_toÚdtype_others   &&&&&   r   Ú_cast_pointwise_resultÚ&TestStringArray._cast_pointwise_resultä   sš   € Ü”[¤"§,¢,¨sÓ"3Ó4ˆØÐ-Ô-ØˆGÜ5?ÀÄs×5KÒ5Kœ"Ÿ,š, uÔ-ÐQUˆKÜ˜+¤{×3Ò3Ü7¸ÓK�øØ�^‰^œrŸv™vÓ%Ü—h‘h‰GØ�]‰]˜iÔ'Ø%‰GàˆGØ×&Ñ& wÓ/Ð/r    c                	óX   € \         P                  ! V4      pV P                  W1VR 4       R# )ÚabcN)r;   ÚSeriesÚ_compare_other)rQ   r7   Úcomparison_opr²   s   &&& r   Útest_compare_scalarÚ#TestStringArray.test_compare_scalaró   s!   € Ü�iŠi˜‹oˆØ×Ñ˜C }°eÖ<r    c                	ó&   <€ \         SV `  W4       R # r#   )rO   Útest_groupby_extension_apply)rQ   rF   Úgroupby_apply_oprS   s   &&&€r   rÙ   Ú,TestStringArray.test_groupby_extension_apply÷   s   ø€ Ü‰Ñ,Ð->ÖQr    c                	óð   <€ \        V! ^4      4      P                  pV'       gC   VP                  R8X  d2   \        P                  P                  RR7      pVP                  V4       \        SV `!  V4       R# )rƒ   ÚpythonúmThe pointwise operation result will be inferred to string[nan, pyarrow], which does not match the input dtyperq   N)	rL   r   r   r   ÚmarkÚxfailÚapplymarkerrO   Útest_combine_add)rQ   rR   rc   r%   r   rß   rS   s   &&&&  €r   râ   Ú TestStringArray.test_combine_addú   sb   ø€ Ü‘] 1Ó%Ó&×,Ñ,ˆß! e§m¡m°xÔ&?Ü—;‘;×$Ñ$ðMð %ó ˆDð ×Ñ Ô%Ü‰Ñ  Ö/r    c                	ó4  <€ VP                   pV'       dt   VR 8X  dm   VP                  \        P                  J dO   \        '       g   VP
                  R8X  d2   \        P                  P                  RR7      pVP                  V4       \        SV `-  W4       R# )rÈ   r   rÞ   rq   N)r   r'   r;   r<   r   r   r   rß   rà   rá   rO   Útest_arith_series_with_array)rQ   r7   Úall_arithmetic_operatorsrc   r%   r   rß   rS   s   &&&&&  €r   rå   Ú,TestStringArray.test_arith_series_with_array  sw   ø€ ð —
‘
ˆçØ(¨JÔ6Ø—‘¤"§%¡%Ó'ß“ §¡°Ô :ô —;‘;×$Ñ$ðMð %ó ˆDð ×Ñ Ô%Ü‰Ñ,¨TÖLr    c                	óÎ   <€ V'       gM   VP                   P                  R 8X  d2   \        P                  P	                  RR7      pVP                  V4       \        SV `  V4       R# )rÝ   zCasts to objectrq   N)r   r   r   rß   rà   rá   rO   Ú8test_loc_setitem_with_expansion_preserves_ea_index_dtype)rQ   r7   r%   rc   rß   rS   s   &&&& €r   ré   ÚHTestStringArray.test_loc_setitem_with_expansion_preserves_ea_index_dtype  sL   ø€ ÷ " d§j¡j×&8Ñ&8¸HÔ&DÜ—;‘;×$Ñ$Ð,=Ð$Ó>ˆDØ×Ñ Ô%Ü‰ÑHÈÖNr    )rN   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__rP   rX   r[   rb   rl   rt   rz   r}   r€   rˆ   r�   r•   r®   rº   rÂ   rÏ   rÖ   rÙ   râ   rå   ré   Ú__static_attributes__Ú__classcell__)rS   s   @r   rH   rH   g   su   ø† õ6õ"ò&õ
3õ?õ ò
õ%õ
3ò
:ò
6ò<õ&õ6
õ9õ0ò=õRõ0õM÷$Oó Or    rH   c                  óH   € ] tR tRt]P
                  ! RR7      R 4       tRtR# )ÚTest2DCompati  T)Úautousec                	ód   € \        V\        4      '       d   \        P                  ! R R7       R# R# )rp   rq   N)rÁ   r   r   rs   ry   s   &&r   Úarrow_not_supportedÚ Test2DCompat.arrow_not_supported   s"   € ä�dÔ,×-Ò-Ü�KŠKÐP×Qñ .r    rx   N)rë   rì   rí   rî   r   Úfixturerõ   rï   rx   r    r   rò   rò     s   † Ø‡^‚^˜DÔ!ñRó "ôRr    rò   c                ó@  € V w  r#pV P                  . RO4      p\        P                  VR&   V'       d   \        P                  ! V4      pRp\        P
                  ! \        VR7      ;_uu_ 4        VP                  V4       RRR4       R#   + '       g   i     R# ; i)r*   zOsearchsorted requires array to be sorted, which is impossible with NAs present.rg   N)r*   r‹   rƒ   éÿÿÿÿ)Útaker;   r<   rÓ   r   ri   r”   Úsearchsorted)rB   Ú	as_seriesÚbÚcÚar   Úmsgs   &&     r   Ú test_searchsorted_with_na_raisesr  &  sr   € à�G€Aˆ!Ø
×
Ñ
¢	Ó
*€CÜ�e‰e€Cˆ�GçÜ�iŠi˜‹nˆð	0ð ô 
�Š”z¨×	-Ö	-Ø×Ñ˜Ô÷ 
.×	-×	-Ò	-ús   Á0BÂB	)*Ú__doc__Ú
__future__r   r2   Útypingr   Únumpyr-   r   Úpandas.compatr   Úpandas.core.dtypes.baser   Úpandasr;   Úpandas._testingÚ_testingr…   Úpandas.api.typesr   Úpandas.core.arraysr   Úpandas.core.arrays.string_r
   Ú#pandas.tests.arithmetic.test_stringr   Úpandas.tests.extensionr   r   r÷   r   r   r7   r>   rB   rD   rF   ÚExtensionTestsrH   ÚDim2CompatTestsrò   r  rx   r    r   Ú<module>r     s  ðñõ  #ã Ý ã Û å %å 9ã Ý Ý ,Ý /Ý 2Ý MÝ 'ò0ð" ‡‚˜˜e�}Ô%ñó &ðð ‡�ñ;ó ð;ð
 ‡�ñ+ó ð+ð ‡�ñ+ó ð+ð ‡�ñ+ó ð+ð
 ‡�ñ+ó ð+ð
 ‡�ñ+ó ð+ôuO�d×)Ñ)ô uOôpR�4×'Ñ'ô Rôr    