§
    ªöÉgå  ã                  óÎ  — d Z ddlmZ ddlZddlm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 ddlmZ ddlmZ d	„ Z ej        d
dg¬¦  «        d„ ¦   «         Zej        d„ ¦   «         Zej        d„ ¦   «         Zej        d„ ¦   «         Zej        d„ ¦   «         Zej        d„ ¦   «         Zej        d„ ¦   «         Z G d„ dej        ¦  «        Z  G d„ dej!        ¦  «        Z"d„ Z#dS )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©Úis_string_dtype)ÚArrowStringArray©ÚStringDtype)Úbasec                ó8  — |s| S | j         j        dk    r| S t          j        d¦  «        }| j        }t          |¦  «        dz  }|                     g |d |…         j        ¢||d …         j        ¢¦  «        }|j        dk    sJ ‚ t          | ¦  «        |¦  «        S )NÚpyarrowé   )
ÚdtypeÚstorageÚpytestÚimportorskipÚ	_pa_arrayÚlenÚchunked_arrayÚchunksÚ
num_chunksÚtype)ÚarrÚchunkedÚpaÚarrow_arrayÚsplits        ún/var/www/html/nodeJS/PythonScripts/venv3.11/lib/python3.11/site-packages/pandas/tests/extension/test_string.pyÚmaybe_split_arrayr       s³   € Øð Øˆ
Ø	ŒÔ	˜iÒ	'Ð	'Øˆ
å	Ô	˜YÑ	'Ô	'€Bà”-€KÝ�ÑÔ Ñ!€EØ×"Ò"ØBˆ+�f�u�fÔ
Ô
$ÐB {°5°6°6Ô':Ô'AÐBñô €Kð Ô! QÒ&Ð&Ð&Ð&Ø�4�‰9Œ9�[Ñ!Ô!Ð!ó    TF)Úparamsc                ó   — | j         S ©N)Úparam)Úrequests    r   r   r   1   s
   € àŒ=Ðr   c                ó"   — t          | ¬¦  «        S )N)r   r   )Ústring_storages    r   r   r   6   s   € å˜~Ð.Ñ.Ô.Ð.r   c                óè  — t           j                             d¦  «                             t	          t
          j        ¦  «        d¬¦  «        }|d         |d         k    r]t           j                             d¦  «                             t	          t
          j        ¦  «        d¬¦  «        }|d         |d         k    °]|                      ¦   «                              || ¬¦  «        }t          ||¦  «        S )Nr   éd   )Úsizer   é   ©r   )
ÚnpÚrandomÚdefault_rngÚchoiceÚlistÚstringÚascii_lettersÚconstruct_array_typeÚ_from_sequencer   )r   r   Ústringsr   s       r   Údatar6   ;   sÇ   € åŒi×#Ò# AÑ&Ô&×-Ò-­dµ6Ô3GÑ.HÔ.HÈsÐ-ÑSÔS€GØ
�!Œ*˜ œ
Ò
"Ð
"Ý”)×'Ò'¨Ñ*Ô*×1Ò1µ$µvÔ7KÑ2LÔ2LÐSVÐ1ÑWÔWˆð �!Œ*˜ œ
Ò
"Ð
"ð ×
$Ò
$Ñ
&Ô
&×
5Ò
5°gÀUÐ
5Ñ
KÔ
K€CÝ˜S 'Ñ*Ô*Ð*r   c                óŒ   — |                       ¦   «                              t          j        dg| ¬¦  «        }t	          ||¦  «        S )zLength 2 array with [NA, Valid]ÚAr+   ©r3   r4   ÚpdÚNAr   ©r   r   r   s      r   Údata_missingr=   E   s>   € ð ×
$Ò
$Ñ
&Ô
&×
5Ò
5µr´u¸c°lÈ%Ð
5Ñ
PÔ
P€CÝ˜S 'Ñ*Ô*Ð*r   c                óx   — |                       ¦   «                              g d¢| ¬¦  «        }t          ||¦  «        S )N)ÚBÚCr8   r+   )r3   r4   r   r<   s      r   Údata_for_sortingrA   L   s:   € à
×
$Ò
$Ñ
&Ô
&×
5Ò
5°o°o°oÈUÐ
5Ñ
SÔ
S€CÝ˜S 'Ñ*Ô*Ð*r   c                óŽ   — |                       ¦   «                              dt          j        dg| ¬¦  «        }t	          ||¦  «        S )Nr?   r8   r+   r9   r<   s      r   Údata_missing_for_sortingrC   R   s?   € à
×
$Ò
$Ñ
&Ô
&×
5Ò
5°s½B¼EÀ3Ð6GÈuÐ
5Ñ
UÔ
U€CÝ˜S 'Ñ*Ô*Ð*r   c           
     ó¬   — |                       ¦   «                              ddt          j        t          j        ddddg| ¬¦  «        }t	          ||¦  «        S )Nr?   r8   r@   r+   r9   r<   s      r   Údata_for_groupingrE   X   sT   € à
×
$Ò
$Ñ
&Ô
&×
5Ò
5Ø	ˆc•2”5�"œ%  c¨3°Ð4¸Eð 6ñ ô €Cõ ˜S 'Ñ*Ô*Ð*r   c                  ó¼   ‡ — e Zd Zˆ fd„Zd„ Zˆ fd„Zd„ Zˆ fd„Zˆ fd„Zd„ Z	d„ Z
dd„Zdd„Zdd„Zd„ Zej                             d¦  «        ˆ fd„¦   «         Zˆ xZS )ÚTestStringArrayc                ól   •— |d|j         › d�k    sJ ‚t          ¦   «                              |¦  «         d S )Nzstring[ú])r   ÚsuperÚtest_eq_with_str)Úselfr   Ú	__class__s     €r   rK   z TestStringArray.test_eq_with_stra   s@   ø€ ØÐ2 %¤-Ð2Ð2Ð2Ò2Ð2Ð2Ð2Ý‰Œ× Ò  Ñ'Ô'Ð'Ð'Ð'r   c                ó(   — t          |¦  «        sJ ‚d S r"   r   )rL   r   s     r   Útest_is_not_string_typez'TestStringArray.test_is_not_string_typee   s   € õ ˜uÑ%Ô%Ð%Ð%Ð%Ð%Ð%r   c                ó�   •— |j         j        |v rt          j        d¬¦  «         t	          ¦   «                              |¦  «         d S ©Nz/2D support not implemented for ArrowStringArray)Úreason)r   r   r   ÚskiprJ   Ú	test_view©rL   r6   r$   Úarrow_string_storagerM   s       €r   rT   zTestStringArray.test_viewj   sF   ø€ ØŒ:ÔÐ!5Ð5Ð5ÝŒKÐPÐQÑQÔQÐQÝ‰Œ×Ò˜$ÑÔÐÐÐr   c                ó   — d S r"   © ©rL   r6   s     r   Útest_from_dtypezTestStringArray.test_from_dtypeo   s   € àˆr   c                ó�   •— |j         j        |v rt          j        d¬¦  «         t	          ¦   «                              |¦  «         d S rQ   )r   r   r   rS   rJ   Útest_transposerU   s       €r   r\   zTestStringArray.test_transposes   sF   ø€ ØŒ:ÔÐ!5Ð5Ð5ÝŒKÐPÐQÑQÔQÐQÝ‰Œ×Ò˜tÑ$Ô$Ð$Ð$Ð$r   c                ó�   •— |j         j        |v rt          j        d¬¦  «         t	          ¦   «                              |¦  «         d S rQ   )r   r   r   rS   rJ   Útest_setitem_preserves_viewsrU   s       €r   r^   z,TestStringArray.test_setitem_preserves_viewsx   sF   ø€ ØŒ:ÔÐ!5Ð5Ð5ÝŒKÐPÐQÑQÔQÐQÝ‰Œ×,Ò,¨TÑ2Ô2Ð2Ð2Ð2r   c                ój   — |                      ¦   «         }|dg         }t          j        ||¦  «         d S )Nr*   )ÚdropnaÚtmÚassert_extension_array_equal)rL   r=   ÚresultÚexpecteds       r   Útest_dropna_arrayz!TestStringArray.test_dropna_array}   s8   € Ø×$Ò$Ñ&Ô&ˆØ  Ô$ˆÝ
Ô'¨°Ñ9Ô9Ð9Ð9Ð9r   c                ó  — ||                      ¦   «                   }|d         }|                     |¦  «        }||usJ ‚t          j        ||¦  «         |                     d¬¦  «        }||usJ ‚t          j        ||¦  «         d S )Nr   Úbackfill)Úmethod)ÚisnaÚfillnara   rb   )rL   r6   Úvalidrc   s       r   Útest_fillna_no_op_returns_copyz.TestStringArray.test_fillna_no_op_returns_copy‚   s‘   € Ø�T—Y’Y‘[”[�LÔ!ˆà�Q”ˆØ—’˜UÑ#Ô#ˆØ˜TÐ!Ð!Ð!Ð!Ý
Ô'¨°Ñ5Ô5Ð5à—’ J�Ñ/Ô/ˆØ˜TÐ!Ð!Ð!Ð!Ý
Ô'¨°Ñ5Ô5Ð5Ð5Ð5r   Úop_nameÚstrÚreturnútype[Exception] | Nonec                óv  — |dv r¥t          |t          j        ¦  «        r5t          t          t          j        |¦  «        ¦  «        j        dv rt          S t          |t          j        ¦  «        r5t          t          t          j        |¦  «        ¦  «        j        dv rt          S t          S |dv r<t          t          t          j        |¦  «        ¦  «        j        dv rt          S t          S |dv rt          S |dv r@t          t          t          j        |¦  «        ¦  «        j        dv rdd l
}|j        S t          S d S )N)Ú
__divmod__Ú__rdivmod__)r   Úpyarrow_numpy)Ú__mod__Ú__rmod__Ú__pow__Ú__rpow__)Ú__mul__Ú__rmul__)Ú__truediv__Ú__rtruediv__Ú__floordiv__Ú__rfloordiv__Ú__sub__Ú__rsub__r   )Ú
isinstancer:   ÚSeriesr   r	   ra   Ú	get_dtyper   ÚNotImplementedErrorÚ	TypeErrorr   ÚArrowNotImplementedError)rL   rm   ÚobjÚotherr   s        r   Ú_get_expected_exceptionz'TestStringArray._get_expected_exceptionŽ   s`  € ð Ð3Ð3Ð3Ý˜#�rœyÑ)Ô)ð +­dÝ�Rœ\¨#Ñ.Ô.ñ/ô /äð ð/ð /õ +Ð*Ý˜E¥2¤9Ñ-Ô-ð +µ$Ý�Rœ\¨%Ñ0Ô0ñ3ô 3äð ð3ð 3õ +Ð*ÝÐØÐFÐFÐFÝ•K¥¤¨cÑ!2Ô!2Ñ3Ô3Ô;ð @ð ð õ +Ð*ÝÐØÐ/Ð/Ð/åÐØð 
ð 
ð 
õ •K¥¤¨cÑ!2Ô!2Ñ3Ô3Ô;ð @ð ð ð %Ð$Ð$Ð$ð Ô2Ð2ÝÐàˆtr   Úserú	pd.SeriesÚboolc                ó2   — |dv p|j         j        dk    o|dv S )N)ÚminÚmaxrt   )ÚanyÚall)r   r   )rL   rŠ   rm   s      r   Ú_supports_reductionz#TestStringArray._supports_reductionÁ   s.   € à�~Ð%ð *ØŒyÔ  OÒ3ð *Ø˜>Ð)ð	
r   c                óØ   — t          t          t          j        |¦  «        ¦  «        }|dv r|}n(|j        dk    rd}n|j        dk    rt
          j        }nd}|                     |¦  «        S )N)Ú__add__Ú__radd__r   zboolean[pyarrow]rt   Úboolean)r   r	   ra   rƒ   r   r,   Úbool_Úastype)rL   rm   r‡   rˆ   Úpointwise_resultr   Úcast_tos          r   Ú_cast_pointwise_resultz&TestStringArray._cast_pointwise_resultÈ   sq   € Ý•[¥"¤,¨sÑ"3Ô"3Ñ4Ô4ˆØÐ-Ð-Ð-ØˆGˆGØŒ]˜iÒ'Ð'Ø(ˆGˆGØŒ]˜oÒ-Ð-Ý”hˆGˆGàˆGØ×&Ò& wÑ/Ô/Ð/r   c                ó^   — t          j        |¦  «        }|                      |||d¦  «         d S )NÚabc)r:   r‚   Ú_compare_other)rL   r6   Úcomparison_oprŠ   s       r   Útest_compare_scalarz#TestStringArray.test_compare_scalarÔ   s/   € ÝŒi˜‰oŒoˆØ×Ò˜C  }°eÑ<Ô<Ð<Ð<Ð<r   z4ignore:Falling back:pandas.errors.PerformanceWarningc                óL   •— t          ¦   «                              ||¦  «         d S r"   )rJ   Útest_groupby_extension_apply)rL   rE   Úgroupby_apply_oprM   s      €r   r¢   z,TestStringArray.test_groupby_extension_applyØ   s%   ø€ å‰Œ×,Ò,Ð->Ð@PÑQÔQÐQÐQÐQr   )rm   rn   ro   rp   )rŠ   r‹   rm   rn   ro   rŒ   )rm   rn   )Ú__name__Ú
__module__Ú__qualname__rK   rO   rT   rZ   r\   r^   re   rl   r‰   r’   r›   r    r   ÚmarkÚfilterwarningsr¢   Ú__classcell__)rM   s   @r   rG   rG   `   sL  ø€ € € € € ð(ð (ð (ð (ð (ð&ð &ð &ð
 ð  ð  ð  ð  ð
ð ð ð%ð %ð %ð %ð %ð
3ð 3ð 3ð 3ð 3ð
:ð :ð :ð

6ð 
6ð 
6ð1ð 1ð 1ð 1ðf
ð 
ð 
ð 
ð
0ð 
0ð 
0ð 
0ð=ð =ð =ð „[×ÒÐ VÑWÔWðRð Rð Rð Rñ XÔWðRð Rð Rð Rð Rr   rG   c                  óB   — e Zd Z ej        d¬¦  «        d„ ¦   «         ZdS )ÚTest2DCompatT)Úautousec                ó^   — t          |t          ¦  «        rt          j        d¬¦  «         d S d S rQ   )r�   r   r   rS   rY   s     r   Úarrow_not_supportedz Test2DCompat.arrow_not_supportedÞ   s<   € å�dÕ,Ñ-Ô-ð 	RÝŒKÐPÐQÑQÔQÐQÐQÐQð	Rð 	Rr   N)r¤   r¥   r¦   r   Úfixturer®   rX   r   r   r«   r«   Ý   sB   € € € € € Ø€V„^˜DÐ!Ñ!Ô!ðRð Rñ "Ô!ðRð Rð Rr   r«   c                ó   — | \  }}}|                       g d¢¦  «        }t          j        |d<   |rt          j        |¦  «        }d}t	          j        t          |¬¦  «        5  |                     |¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )N)r   r   r*   éÿÿÿÿzOsearchsorted requires array to be sorted, which is impossible with NAs present.)Úmatch)Útaker:   r;   r‚   r   ÚraisesÚ
ValueErrorÚsearchsorted)rA   Ú	as_seriesÚbÚcÚar   Úmsgs          r   Ú test_searchsorted_with_na_raisesr¼   ä   sÝ   € à�G€A€qˆ!Ø
×
Ò
 	 	 	Ñ
*Ô
*€CÝŒe€Cˆ�Gàð ÝŒi˜‰nŒnˆð	0ð õ 
Œ•z¨Ð	-Ñ	-Ô	-ð ð Ø×Ò˜ÑÔÐðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s   Á BÂBÂ
B)$Ú__doc__Ú
__future__r   r1   Útypingr   Únumpyr,   r   Úpandasr:   Úpandas._testingÚ_testingra   Úpandas.api.typesr   Úpandas.core.arraysr   Úpandas.core.arrays.string_r	   Úpandas.tests.extensionr
   r   r¯   r   r   r6   r=   rA   rC   rE   ÚExtensionTestsrG   ÚDim2CompatTestsr«   r¼   rX   r   r   ú<module>rÊ      s1  ððð ð #Ð "Ð "Ð "Ð "Ð "à €€€Ø Ð Ð Ð Ð Ð à Ð Ð Ð Ø €€€à Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,Ø /Ð /Ð /Ð /Ð /Ð /Ø 2Ð 2Ð 2Ð 2Ð 2Ð 2Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'ð"ð "ð "ð" €„˜˜e�}Ð%Ñ%Ô%ðð ñ &Ô%ðð „ð/ð /ñ „ð/ð „ð+ð +ñ „ð+ð „ð+ð +ñ „ð+ð „ð+ð +ñ „ð+ð
 „ð+ð +ñ „ð+ð
 „ð+ð +ñ „ð+ðzRð zRð zRð zRð zR�dÔ)ñ zRô zRð zRðzRð Rð Rð Rð R�4Ô'ñ Rô Rð Rðð ð ð ð r   