§
    tŠtjÉH  ã                   ó¸  — 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 ddlmZ defd„Zej        d„ ¦   «         Z ej        dej        g¬	¦  «        d
„ ¦   «         Zej        d„ ¦   «         Z ej        dej        g¬	¦  «        d„ ¦   «         Z ej        dej        g¬	¦  «        d„ ¦   «         Z ej        dej        g¬	¦  «        d„ ¦   «         Z ej        dej        g¬	¦  «        d„ ¦   «         Zej        d„ ¦   «         Z ej        dej        g¬	¦  «        d„ ¦   «         Z ej        dej        g¬	¦  «        d„ ¦   «         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/`.

é    N©ÚSparseDtype)ÚSparseArray)ÚbaseÚnc                 ó*  — t           j                             d¦  «        }t          j        | ¦  «        r|                     |¬¦  «        }n@|                     dd|t          ¬¦  «        }|d         |d         k    r|dxx         dz  cc<   | |dd d…<   |S )Né   )Úsizeé   éd   )r
   Údtyper   é   )ÚnpÚrandomÚdefault_rngÚisnanÚuniformÚintegersÚint)Ú
fill_valuer   ÚrngÚdatas       ú`/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/pandas/tests/extension/test_sparse.pyÚ	make_datar      s“   € Ý
Œ)×
Ò
 Ñ
"Ô
"€CÝ	„x�
ÑÔð Ø�{Š{ ˆ{Ñ"Ô"ˆˆà�|Š|˜A˜s¨µ#ˆ|Ñ6Ô6ˆØ�Œ7�d˜1”gÒÐØ�ˆGˆGŒG�q‰LˆGˆG‰Gà€DˆˆˆAˆ�JØ€Kó    c                  ó   — t          ¦   «         S ©Nr   © r   r   r   r   (   s   € å‰=Œ=Ðr   )Úparamsc                 óX   — t          t          | j        d¦  «        | j        ¬¦  «        }|S )z)Length-10 SparseArray for semantics test.é
   ©r   )r   r   Úparam)ÚrequestÚress     r   r   r   -   s)   € õ •i ¤¨rÑ2Ô2¸w¼}Ð
MÑ
MÔ
M€CØ€Jr   c                  óJ   — t          t          j        d¦  «        dz  ¦  «        S )Nr!   r	   )r   r   Úonesr   r   r   Údata_for_twosr(   4   s   € å•r”w˜r‘{”{ Q‘Ñ'Ô'Ð'r   c                 óF   — t          t          j        dg| j        ¬¦  «        S )zLength 2 array with [NA, Valid]r   r"   ©r   r   Únanr#   ©r$   s    r   Údata_missingr-   9   s   € õ �œ �{¨w¬}Ð=Ñ=Ô=Ð=r   c                 ó   ‡ — ˆ fd„}|S )z1Return different versions of data for count timesc              3   ó†   •K  — t          | ¦  «        D ]-}t          t          ‰j        d¦  «        ‰j        ¬¦  «        V — Œ.d S )Nr!   r"   )Úranger   r   r#   )ÚcountÚ_r$   s     €r   Úgenzdata_repeated.<locals>.genC   sT   øè è € Ý�u‘”ð 	Vð 	VˆAÝ�i¨¬°rÑ:Ô:ÀwÄ}ÐUÑUÔUÐUÐUÐUÐUð	Vð 	Vr   r   )r$   r3   s   ` r   Údata_repeatedr4   ?   s(   ø€ ðVð Vð Vð Vð Vð €Jr   c                 ó2   — t          g d¢| j        ¬¦  «        S )N)r	   r   r   r"   )r   r#   r,   s    r   Údata_for_sortingr6   J   s   € å�y�y�y¨W¬]Ð;Ñ;Ô;Ð;r   c                 óH   — t          dt          j        dg| j        ¬¦  «        S )Nr	   r   r"   r*   r,   s    r   Údata_missing_for_sortingr8   O   s   € å˜�2œ6 1�~°'´-Ð@Ñ@Ô@Ð@r   c                  ó   — d„ S )Nc                 óR   — t          j        | ¦  «        ot          j        |¦  «        S r   )ÚpdÚisna)ÚleftÚrights     r   ú<lambda>zna_cmp.<locals>.<lambda>V   s   € �rœw t™}œ}Ð?µ´¸±´€ r   r   r   r   r   Úna_cmpr@   T   s   € à?Ð?Ð?r   c           
      óf   — t          ddt          j        t          j        ddddg| j        ¬¦  «        S )Nr   r	   r   r"   r*   r,   s    r   Údata_for_groupingrB   Y   s,   € å˜˜1�bœf¥b¤f¨a°°A°qÐ9ÀgÄmÐTÑTÔTÐTr   c                 óV   — t          ddt          j        dddddddg
| j        ¬¦  «        S )Nr   éþÿÿÿéÿÿÿÿé   r	   r   r"   r*   r,   s    r   Údata_for_comparerG   ^   s.   € å˜˜1�bœf b¨"¨a°°A°q¸!Ð<ÈÌÐWÑWÔWÐWr   c                   ó  ‡ — e Zd Zdedefd„Zej                             dddg¦  «        ˆ fd„¦   «         Z	ej                             dddg¦  «        ˆ fd„¦   «         Z
d	„ Zd
„ Zej                             d¦  «        ej                             dddgej                             ddgddg¬¦  «        g¦  «        ej                             dddg¦  «        ˆ fd„¦   «         ¦   «         ¦   «         Zˆ fd„Zˆ fd„Zˆ fd„Zˆ fd„Zˆ fd„Zˆ fd„Zd„ Zˆ fd„Zˆ fd„Zd„ Zˆ fd „Zd!„ Zej                             d"¬#¦  «        ˆ fd$„¦   «         Zd%„ Z ˆ fd&„Z!ˆ fd'„Z"d(Z#d)„ Z$d*„ Z%ej                             d+¬#¦  «        ˆ fd,„¦   «         Z&d-„ Z'ˆ fd.„Z(d/„ Z)ej                             d0d1d2g¦  «        ˆ fd3„¦   «         Z*ej        j+        ej                             d4ej,        ej-        ej.        g¦  «        ˆ fd5„¦   «         ¦   «         Z/ej        j+        ˆ fd6„¦   «         Z0ej                             d7d8„ d9 e1d:e2j3        g¦  «        fd;„ d< e1d:e2j3        g¦  «        fed9 e1d=d>gd>¬?¦  «        fed< e1d=e2j3        g¦  «        fg¦  «        d@„ ¦   «         Z4ej                             dAd9d<g¦  «        dB„ ¦   «         Z5ej                             e6dC¬D¦  «        ˆ fdE„¦   «         Z7d9Z8d9Z9d9Z:d9Z;dF„ Z<ˆ fdG„Z=ˆ fdH„Z>ˆ fdI„Z?dJej-        dKe1fdL„Z@dKe1fdM„ZAdKe1fdN„ZBdKe1fdO„ZCej                             dP¬#¦  «        ˆ fdQ„¦   «         ZDej                             dR¬#¦  «        ej                             dSddg¦  «        ˆ fdT„¦   «         ¦   «         ZEˆ xZFS )UÚTestSparseArrayÚop_nameÚreturnc                 ó   — dS )NTr   )ÚselfÚobjrJ   s      r   Ú_supports_reductionz#TestSparseArray._supports_reductiond   s   € Øˆtr   ÚskipnaTFc                 ól  •— |dv r;t           j                             d¬¦  «        }|j                             |¦  «         nP|dv rL|j        j        dk    r<|s:t           j                             d¬¦  «        }|j                             |¦  «         t          ¦   «                              |||¦  «         d S )N©ÚprodÚmedianÚvarÚstdÚsemÚskewÚkurtú,This should be viable but is not implemented©Úreason©ÚsumÚmaxÚminÚmeanÚfzgetting a non-nan float)	ÚpytestÚmarkÚxfailÚnodeÚ
add_markerr   ÚkindÚsuperÚtest_reduce_series_numeric©rM   r   Úall_numeric_reductionsrP   r$   rd   Ú	__class__s         €r   rj   z*TestSparseArray.test_reduce_series_numericg   sÈ   ø€ à!ð &
ð 
ð 
õ ”;×$Ò$ØEð %ñ ô ˆDð ŒL×#Ò# DÑ)Ô)Ð)Ð)à"Ð&CÐCÐCØ”
” 3Ò&Ð&Øð 'õ ”;×$Ò$Ð,EÐ$ÑFÔFˆDØŒL×#Ò# DÑ)Ô)Ð)å‰Œ×*Ò*¨4Ð1GÈÑPÔPÐPÐPÐPr   c                 ól  •— |dv r;t           j                             d¬¦  «        }|j                             |¦  «         nP|dv rL|j        j        dk    r<|s:t           j                             d¬¦  «        }|j                             |¦  «         t          ¦   «                              |||¦  «         d S )NrR   rZ   r[   r]   rb   z$ExtensionArray NA mask are different)	rc   rd   re   rf   rg   r   rh   ri   Útest_reduce_framerk   s         €r   ro   z!TestSparseArray.test_reduce_frame€   sÈ   ø€ à!ð &
ð 
ð 
õ ”;×$Ò$ØEð %ñ ô ˆDð ŒL×#Ò# DÑ)Ô)Ð)Ð)à"Ð&CÐCÐCØ”
” 3Ò&Ð&Øð 'õ ”;×$Ò$Ð,RÐ$ÑSÔSˆDØŒL×#Ò# DÑ)Ô)Ð)å‰Œ×!Ò! $Ð(>ÀÑGÔGÐGÐGÐGr   c                 ón   — |j         t          t          d¦  «        k    rt          j        d¦  «         d S d S )Nr   zCan't store nan in int array.)r   r   r   rc   Úskip©rM   r   s     r   Ú_check_unsupportedz"TestSparseArray._check_unsupported™   s8   € ØŒ:�¥S¨!Ñ,Ô,Ò,Ð,ÝŒKÐ7Ñ8Ô8Ð8Ð8Ð8ð -Ð,r   c                 ó`  — t          j        d|d d…         i¦  «        }t          j        dg d¢i¦  «        }t          j        dg d¢i¦  «                             d¦  «        }|||g}t          j        |¦  «        }t          j        d„ |D ¦   «         ¦  «        }t	          j        ||¦  «         d S )NÚAr   )r   r	   r   )ÚaÚbÚcÚcategoryc                 ó:   — g | ]}|                      d „ ¦  «        ‘ŒS )c                 óZ   — t          j        | ¦  «                             t          ¦  «        S r   )r   ÚasarrayÚastypeÚobject)Úss    r   r?   zETestSparseArray.test_concat_mixed_dtypes.<locals>.<listcomp>.<lambda>¨   s   € �rœz¨!™}œ}×3Ò3µFÑ;Ô;€ r   )Úapply)Ú.0Úxs     r   ú
<listcomp>z<TestSparseArray.test_concat_mixed_dtypes.<locals>.<listcomp>¨   s(   € ÐJÐJÐJÀˆQ�WŠWÐ;Ð;Ñ<Ô<ÐJÐJÐJr   )r;   Ú	DataFramer}   ÚconcatÚtmÚassert_frame_equal)rM   r   Údf1Údf2Údf3ÚdfsÚresultÚexpecteds           r   Útest_concat_mixed_dtypesz(TestSparseArray.test_concat_mixed_dtypes�   s´   € õ Œl˜C  b q b¤˜?Ñ+Ô+ˆÝŒl˜C   Ð+Ñ,Ô,ˆÝŒl˜C   Ð1Ñ2Ô2×9Ò9¸*ÑEÔEˆØ�C˜ˆoˆõ ”˜3‘”ˆÝ”9ØJÐJÀcÐJÑJÔJñ
ô 
ˆõ 	Ô˜f hÑ/Ô/Ð/Ð/Ð/r   z9ignore:The previous implementation of stack is deprecatedÚcolumnsru   ÚB)ru   rv   )ru   rw   ÚouterÚinner)ÚnamesÚfuture_stackc                 óN   •— t          ¦   «                              |||¦  «         d S r   )ri   Ú
test_stack)rM   r   r�   r”   rm   s       €r   r–   zTestSparseArray.test_stack¬   s'   ø€ õ 	‰Œ×Ò˜4 ¨,Ñ7Ô7Ð7Ð7Ð7r   c                 óv   •— |                       |¦  «         t          ¦   «                              ||¦  «         d S r   )rs   ri   Útest_concat_columns©rM   r   Úna_valuerm   s      €r   r˜   z#TestSparseArray.test_concat_columns¼   s7   ø€ Ø×Ò Ñ%Ô%Ð%Ý‰Œ×#Ò# D¨(Ñ3Ô3Ð3Ð3Ð3r   c                 óv   •— |                       |¦  «         t          ¦   «                              ||¦  «         d S r   )rs   ri   Ú'test_concat_extension_arrays_copy_falser™   s      €r   rœ   z7TestSparseArray.test_concat_extension_arrays_copy_falseÀ   s7   ø€ Ø×Ò Ñ%Ô%Ð%Ý‰Œ×7Ò7¸¸hÑGÔGÐGÐGÐGr   c                 óv   •— |                       |¦  «         t          ¦   «                              ||¦  «         d S r   )rs   ri   Ú
test_alignr™   s      €r   rž   zTestSparseArray.test_alignÄ   ó7   ø€ Ø×Ò Ñ%Ô%Ð%Ý‰Œ×Ò˜4 Ñ*Ô*Ð*Ð*Ð*r   c                 óv   •— |                       |¦  «         t          ¦   «                              ||¦  «         d S r   )rs   ri   Útest_align_framer™   s      €r   r¡   z TestSparseArray.test_align_frameÈ   s7   ø€ Ø×Ò Ñ%Ô%Ð%Ý‰Œ× Ò   xÑ0Ô0Ð0Ð0Ð0r   c                 óv   •— |                       |¦  «         t          ¦   «                              ||¦  «         d S r   )rs   ri   Útest_align_series_framer™   s      €r   r£   z'TestSparseArray.test_align_series_frameÌ   s7   ø€ Ø×Ò Ñ%Ô%Ð%Ý‰Œ×'Ò'¨¨hÑ7Ô7Ð7Ð7Ð7r   c                 óv   •— |                       |¦  «         t          ¦   «                              ||¦  «         d S r   )rs   ri   Ú
test_merger™   s      €r   r¥   zTestSparseArray.test_mergeÐ   rŸ   r   c           	      óà  — t          j        |d„ t          t          |¦  «        ¦  «        D ¦   «         ¬¦  «        }t	          j        |j        j        ¦  «        rIt	          j        |                     d¦  «        ¦  «        rt	          j        |j	        d         ¦  «        sJ ‚n&|                     d¦  «        |j	        d         k    sJ ‚|                     d¦  «        |j	        d         k    sJ ‚d S )Nc                 ó   — g | ]}d |z  ‘ŒS )r	   r   )r�   Úis     r   rƒ   z,TestSparseArray.test_get.<locals>.<listcomp>Õ   s   € Ð$EÐ$EÐ$E¨q Q¨¡UÐ$EÐ$EÐ$Er   )ÚindexrF   r	   r   )
r;   ÚSeriesr0   Úlenr   r   Úvaluesr   ÚgetÚiloc)rM   r   Úsers      r   Útest_getzTestSparseArray.test_getÔ   sÊ   € ÝŒi˜Ð$EÐ$EµE½#¸d¹)¼)Ñ4DÔ4DÐ$EÑ$EÔ$EÐFÑFÔFˆÝŒ8�C”JÔ)Ñ*Ô*ð 	-Ý”8˜CŸGšG A™JœJÑ'Ô'ÐA­B¬H°S´X¸a´[Ñ,AÔ,AÐAÐAÐAÐAà—7’7˜1‘:”: ¤¨!¤Ò,Ð,Ð,Ð,Ø�wŠw�q‰zŒz˜SœX aœ[Ò(Ð(Ð(Ð(Ð(Ð(r   c                 óº   •— |j                              t          j                             d¬¦  «        ¦  «         t          ¦   «                              |¦  «         d S )NzSparseArray getitem buggyr[   )rf   rg   rc   rd   re   ri   Útest_array_item_with_index©rM   r   r$   rm   s      €r   r²   z*TestSparseArray.test_array_item_with_indexÜ   sK   ø€ àŒ×Ò¥¤× 1Ò 1Ð9TÐ 1Ñ UÔ UÑVÔVÐVÝ‰Œ×*Ò*¨4Ñ0Ô0Ð0Ð0Ð0r   c                 óv   •— |                       |¦  «         t          ¦   «                              ||¦  «         d S r   )rs   ri   Útest_reindexr™   s      €r   rµ   zTestSparseArray.test_reindexá   s7   ø€ Ø×Ò Ñ%Ô%Ð%Ý‰Œ×Ò˜T 8Ñ,Ô,Ð,Ð,Ð,r   c                 ó   — t          |¦  «        }t          t          t          j        |j        j        ¦  «        ¦  «        }t          ddg|¬¦  «        }|                     ¦   «         }t          j        ||¦  «         | 	                    d¦  «        }t          t          t          j        |j        j        ¦  «        ¦  «        }t          ddgd|¬¦  «        }t          j
        |                     ¦   «         |¦  «         d S )NTF©r   r   ©r   r   )r   r   Úboolr;   r<   r   r   r†   Úassert_sp_array_equalÚfillnaÚassert_equal)rM   r-   ÚsarrÚexpected_dtyper�   rŒ   s         r   Ú	test_isnazTestSparseArray.test_isnaå   sÌ   € Ý˜<Ñ(Ô(ˆÝ$¥T­2¬7°<Ô3EÔ3PÑ+QÔ+QÑRÔRˆÝ  e˜}°NÐCÑCÔCˆØ—’‘”ˆÝ
Ô  ¨Ñ2Ô2Ð2ð �{Š{˜1‰~Œ~ˆÝ$¥T­2¬7°<Ô3EÔ3PÑ+QÔ+QÑRÔRˆÝ  u˜~¸%À~ÐVÑVÔVˆÝ
Œ˜Ÿ	š	™œ XÑ.Ô.Ð.Ð.Ð.r   c                 óJ   •— t          ¦   «                              |¦  «         d S r   )ri   Útest_fillna_no_op_returns_copyr³   s      €r   rÁ   z.TestSparseArray.test_fillna_no_op_returns_copyò   s!   ø€ Ý‰Œ×.Ò.¨tÑ4Ô4Ð4Ð4Ð4r   c                 óP  — |                      ¦   «         }d|_        |                     |d         ¦  «        }|d         |d         k    sJ ‚t          j        ||¦  «         |                     |d         d¬¦  «        }|d         |d         k    sJ ‚t          j        ||¦  «         d S )NTr   r   F©Úcopy)rÄ   Ú	_readonlyr»   r†   Úassert_extension_array_equal)rM   r-   r   rŒ   s       r   Útest_fillna_readonlyz$TestSparseArray.test_fillna_readonlyõ   sª   € ð × Ò Ñ"Ô"ˆØˆŒà—’˜\¨!œ_Ñ-Ô-ˆØ�aŒy˜L¨œOÒ+Ð+Ð+Ð+Ý
Ô'¨¨lÑ;Ô;Ð;ð —’˜\¨!œ_°5�Ñ9Ô9ˆØ�aŒy˜L¨œOÒ+Ð+Ð+Ð+Ý
Ô'¨¨lÑ;Ô;Ð;Ð;Ð;r   ÚUnsupportedr[   c                 óH   •— t          ¦   «                              ¦   «          d S r   )ri   Útest_fillna_series©rM   r-   rm   s     €r   rÊ   z"TestSparseArray.test_fillna_series  s!   ø€ õ
 	‰Œ×"Ò"Ñ$Ô$Ð$Ð$Ð$r   c                 ód  — |d         }t          j        |ddgdœ¦  «                             |¦  «        }t          j        |j        ¦  «        rt          |j        |¦  «        }n|j        }t          j        |                     ||g|¬¦  «        ddgdœ¦  «        }t          j	        ||¦  «         d S )Nr   r	   )ru   r�   r·   )
r;   r„   r»   r<   r   r   r   Ú_from_sequencer†   r‡   )rM   r-   r   rŒ   r   r�   s         r   Útest_fillna_framez!TestSparseArray.test_fillna_frame  s¾   € à! !”_ˆ
å” L¸¸1°vÐ>Ð>Ñ?Ô?×FÒFÀzÑRÔRˆåŒ7�<Ô*Ñ+Ô+ð 	'Ý Ô 2°JÑ?Ô?ˆEˆEà Ô&ˆEå”<à!×0Ò0°*¸jÐ1IÐQVÐ0ÑWÔWØ˜�Vðð ñ
ô 
ˆõ 	Ô˜f hÑ/Ô/Ð/Ð/Ð/r   c                 ó²   •— t          j        t          d¬¦  «        5  t          ¦   «                              |¦  «         d d d ¦  «         d S # 1 swxY w Y   d S ©Nzlimit must be None©Úmatch©rc   ÚraisesÚ
ValueErrorri   Útest_fillna_limit_framerË   s     €r   rÖ   z'TestSparseArray.test_fillna_limit_frame  ó•   ø€ åŒ]�:Ð-AÐBÑBÔBð 	:ð 	:Ý‰GŒG×+Ò+¨LÑ9Ô9Ð9ð	:ð 	:ð 	:ñ 	:ô 	:ð 	:ð 	:ð 	:ð 	:ð 	:ð 	:ð 	:øøøð 	:ð 	:ð 	:ð 	:ð 	:ð 	:ó   �"AÁAÁAc                 ó²   •— t          j        t          d¬¦  «        5  t          ¦   «                              |¦  «         d d d ¦  «         d S # 1 swxY w Y   d S rÐ   rÓ   rË   s     €r   Útest_fillna_limit_seriesz(TestSparseArray.test_fillna_limit_series$  r×   rØ   zSparse[bool]c                 ón  — |                      ddg¦  «        }t          j        d|id¬¦  «        }|j        d         }|                     |¦  «        }t          |j        d¦  «        r|j        j        |j        j        u sJ ‚|j	        j
                             ¦   «         |                     ¦   «         u sJ ‚d S )Nr   ru   FrÃ   )r   r   Úblocks)Útaker;   r„   r®   r»   ÚhasattrÚ_mgrr¬   r   ru   Ú_valuesÚto_dense)rM   r-   ÚarrÚdfÚ
filled_valrŒ   s         r   Útest_fillna_copy_framez&TestSparseArray.test_fillna_copy_frame+  sª   € Ø×Ò  A Ñ'Ô'ˆÝŒ\˜3 ˜*¨5Ð1Ñ1Ô1ˆà”W˜T”]ˆ
Ø—’˜:Ñ&Ô&ˆå�2”7˜HÑ%Ô%ð 	8Ø”9”> V¤]Ô%7Ð7Ð7Ð7Ð7ØŒtŒ|×$Ò$Ñ&Ô&¨#¯,ª,©.¬.Ð8Ð8Ð8Ð8Ð8Ð8r   c                 ó  — |                      ddg¦  «        }t          j        |d¬¦  «        }|d         }|                     |¦  «        }|j        |j        u sJ ‚|j                             ¦   «         |                     ¦   «         u sJ ‚d S )Nr   FrÃ   r   )rÝ   r;   rª   r»   rà   rá   )rM   r-   râ   r¯   rä   rŒ   s         r   Útest_fillna_copy_seriesz'TestSparseArray.test_fillna_copy_series6  s‰   € Ø×Ò  A Ñ'Ô'ˆÝŒi˜ %Ð(Ñ(Ô(ˆà˜”Vˆ
Ø—’˜JÑ'Ô'ˆàŒ{˜fœnÐ,Ð,Ð,Ð,ØŒ{×#Ò#Ñ%Ô%¨¯ª©¬Ð7Ð7Ð7Ð7Ð7Ð7r   zNot Applicablec                 óJ   •— t          ¦   «                              |¦  «         d S r   )ri   Útest_fillna_length_mismatchrË   s     €r   ré   z+TestSparseArray.test_fillna_length_mismatch@  s!   ø€ å‰Œ×+Ò+¨LÑ9Ô9Ð9Ð9Ð9r   c                 óê  — |d         |d         k    sJ ‚t          |¦  «        }|d d…         \  }}t          j        |                     ||||g|j        ¬¦  «        ¦  «        }t          j        g d¢¦  «        }|                     |¦  «        }t          dd¦  «        }	t          j        |                     ||||g|	¬¦  «        ¦  «        }
t          j
        ||
¦  «         |                     ||||g|j        ¬¦  «        }t          j        g d¢¦  «        }|                     ||¦  «        }t          j        |                     ||||g|j        ¬¦  «        ¦  «        }
t          j
        ||
¦  «         d S )	Nr   r   r	   r·   )TTFFÚfloatg        )TFTT)Útyper;   rª   rÍ   r   r   ÚarrayÚwherer   r†   Úassert_series_equal)rM   r   rš   Úclsrv   rw   r¯   ÚcondrŒ   Ú	new_dtyper�   Úothers               r   Útest_where_seriesz!TestSparseArray.test_where_seriesD  sl  € Ø�AŒw˜$˜qœ'Ò!Ð!Ð!Ð!Ý�4‰jŒjˆØ�B�Q�BŒx‰ˆˆ1åŒi˜×*Ò*¨A¨q°!°Q¨<¸t¼zÐ*ÑJÔJÑKÔKˆåŒxÐ2Ð2Ð2Ñ3Ô3ˆØ—’˜4‘”ˆå ¨Ñ-Ô-ˆ	Ý”9Ø×Ò  1 h°Ð9ÀÐÑKÔKñ
ô 
ˆõ 	Ô˜v xÑ0Ô0Ð0à×"Ò" A q¨!¨Q <°t´zÐ"ÑBÔBˆÝŒxÐ1Ð1Ð1Ñ2Ô2ˆØ—’˜4 Ñ'Ô'ˆÝ”9˜S×/Ò/°°A°q¸!°ÀDÄJÐ/ÑOÔOÑPÔPˆÝ
Ô˜v xÑ0Ô0Ð0Ð0Ð0r   c                 óª   •— t          j        |d¬¦  «        5  t          ¦   «                              ||¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )NF)Úcheck_stacklevel)r†   Úassert_produces_warningri   Útest_searchsorted)rM   Úperformance_warningr6   Ú	as_seriesrm   s       €r   rø   z!TestSparseArray.test_searchsortedZ  s­   ø€ ÝÔ'Ð(;ÈeÐTÑTÔTð 	Cð 	CÝ‰GŒG×%Ò%Ð&6¸	ÑBÔBÐBð	Cð 	Cð 	Cñ 	Cô 	Cð 	Cð 	Cð 	Cð 	Cð 	Cð 	Cð 	Cøøøð 	Cð 	Cð 	Cð 	Cð 	Cð 	Cs   ˜#AÁAÁAc                 ó–   — |                      d¦  «        }|j        d         |j        d<   |j        d         |j        d         k    sJ ‚d S )Nr   r   )ÚshiftÚ_sparse_values)rM   r   rŒ   s      r   Útest_shift_0_periodsz$TestSparseArray.test_shift_0_periods^  sM   € à—’˜A‘”ˆà!%Ô!4°QÔ!7ˆÔ˜AÑØÔ$ QÔ'¨6Ô+@ÀÔ+CÒCÐCÐCÐCÐCÐCr   ÚmethodÚargmaxÚargminc                 óx   •— |                       |¦  «         t          ¦   «                              |||¦  «         d S r   )rs   ri   Útest_argmin_argmax_all_na)rM   rÿ   r   rš   rm   s       €r   r  z)TestSparseArray.test_argmin_argmax_all_nae  s;   ø€ ð 	×Ò Ñ%Ô%Ð%Ý‰Œ×)Ò)¨&°$¸ÑAÔAÐAÐAÐAr   Úboxc                 óz   •— |                       |¦  «         t          ¦   «                              ||||¦  «         d S r   )rs   ri   Útest_equals)rM   r   rš   rú   r  rm   s        €r   r  zTestSparseArray.test_equalsk  s=   ø€ ð 	×Ò Ñ%Ô%Ð%Ý‰Œ×Ò˜D (¨I°sÑ;Ô;Ð;Ð;Ð;r   c                 óJ   •— t          ¦   «                              |¦  «         d S r   )ri   Ú&test_equals_same_data_different_object)rM   r   rm   s     €r   r  z6TestSparseArray.test_equals_same_data_different_objectq  s!   ø€ å‰Œ×6Ò6°tÑ<Ô<Ð<Ð<Ð<r   zfunc, na_action, expectedc                 ó   — | S r   r   ©r‚   s    r   r?   zTestSparseArray.<lambda>x  ó   € �q€ r   Ng      ð?c                 ó   — | S r   r   r
  s    r   r?   zTestSparseArray.<lambda>y  r  r   Úignorez1.0r+   r"   c                 ó”   — t          dt          j        g¦  «        }|                     ||¬¦  «        }t	          j        ||¦  «         d S )Nr   ©Ú	na_action)r   r   r+   Úmapr†   rÆ   )rM   Úfuncr  r�   r   rŒ   s         r   Útest_mapzTestSparseArray.test_mapu  sE   € õ ˜A�rœv˜;Ñ'Ô'ˆØ—’˜$¨)�Ñ4Ô4ˆÝ
Ô'¨°Ñ9Ô9Ð9Ð9Ð9r   r  c                 ó¢   — d}t          j        t          |¬¦  «        5  |                     d„ |¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nz-fill value in the sparse values not supportedrÑ   c                 ó   — t           j        S r   )r   r+   r
  s    r   r?   z1TestSparseArray.test_map_raises.<locals>.<lambda>‰  s   € �rœv€ r   r  )rc   rÔ   rÕ   r  )rM   r   r  Úmsgs       r   Útest_map_raiseszTestSparseArray.test_map_raises„  sœ   € ð >ˆÝŒ]�:¨SÐ1Ñ1Ô1ð 	<ð 	<Ø�HŠHÐ%Ð%°ˆHÑ;Ô;Ð;ð	<ð 	<ð 	<ñ 	<ô 	<ð 	<ð 	<ð 	<ð 	<ð 	<ð 	<ð 	<øøøð 	<ð 	<ð 	<ð 	<ð 	<ð 	<s   žAÁAÁAzno sparse StringDtype)rÔ   r\   c                 óJ   •— t          ¦   «                              |¦  «         d S r   )ri   Útest_astype_string)rM   r   Únullable_string_dtyperm   s      €r   r  z"TestSparseArray.test_astype_string‹  s#   ø€ õ 	‰Œ×"Ò" 4Ñ(Ô(Ð(Ð(Ð(r   c                 óH   — |j         dk    rt          j        d¦  «         d S d S )Nr   z=Incorrected expected from Series.combine and tested elsewhere)r   rc   rq   rr   s     r   Ú_skip_if_different_combinez*TestSparseArray._skip_if_different_combine–  s0   € ØŒ?˜aÒÐõ ŒKÐWÑXÔXÐXÐXÐXð	  Ðr   c                 óv   •— |                       |¦  «         t          ¦   «                              ||¦  «         d S r   )r  ri   Útest_arith_series_with_scalar©rM   r   Úall_arithmetic_operatorsrm   s      €r   r  z-TestSparseArray.test_arith_series_with_scalar�  s8   ø€ Ø×'Ò'¨Ñ-Ô-Ð-Ý‰Œ×-Ò-¨dÐ4LÑMÔMÐMÐMÐMr   c                 óv   •— |                       |¦  «         t          ¦   «                              ||¦  «         d S r   )r  ri   Útest_arith_series_with_arrayr  s      €r   r"  z,TestSparseArray.test_arith_series_with_array¡  s8   ø€ Ø×'Ò'¨Ñ-Ô-Ð-Ý‰Œ×,Ò,¨TÐ3KÑLÔLÐLÐLÐLr   c                 ó  •— |j         j        dk    rnL|                     d¦  «        dvr5t          j                             d¬¦  «        }|                     |¦  «         t          ¦   «                              ||¦  «         d S )Nr   r2   )	ÚmulÚrmulÚfloordivÚ	rfloordivÚtruedivÚrtruedivÚpowÚmodÚrmodz result dtype.fill_value mismatchr[   )	r   r   Ústriprc   rd   re   Úapplymarkerri   Útest_arith_frame_with_scalar)rM   r   r   r$   rd   rm   s        €r   r/  z,TestSparseArray.test_arith_frame_with_scalar¥  s†   ø€ ØŒ:Ô  AÒ%Ð%ØØ%×+Ò+¨CÑ0Ô0ð 
9
ð 

ð 

õ ”;×$Ò$Ð,NÐ$ÑOÔOˆDØ×Ò Ñ%Ô%Ð%Ý‰Œ×,Ò,¨TÐ3KÑLÔLÐLÐLÐLr   r¯   rG   c                 óÖ  — |} |||¦  «        }t          |t          j        ¦  «        r9t          |t          j        ¦  «        sJ ‚t          |j        t          ¦  «        sJ ‚nt          |t
          ¦  «        sJ ‚|j        j        t          j        k    sJ ‚t          |t          j        ¦  «        rf ||j	        |j
        j	        ¦  «        }t           ||                     ¦   «         t          j        |¦  «        ¦  «        |t          j        ¬¦  «        }n‘t          j         |t          j        |j	        ¦  «        t          j        |¦  «        ¦  «        ¦  «        }t           ||                     ¦   «         t          j        |¦  «        ¦  «        |t          j        ¬¦  «        }t          |t          j        ¦  «        rt          j        |¦  «        }t          j        ||¦  «         d S )Nr¸   )Ú
isinstancer;   rª   r   r   r   Úsubtyper   Úbool_r   rà   rá   r|   Úallr†   r¼   )	rM   r¯   rG   Úcomparison_opró   ÚoprŒ   r   r�   s	            r   Ú_compare_otherzTestSparseArray._compare_other·  s½  € ð ˆà�Ð$ eÑ,Ô,ˆÝ�e�RœYÑ'Ô'ð 	3Ý˜f¥b¤iÑ0Ô0Ð0Ð0Ð0Ý˜fœl­KÑ8Ô8Ð8Ð8Ð8Ð8å˜f¥kÑ2Ô2Ð2Ð2Ð2ØŒ|Ô#¥r¤xÒ/Ð/Ð/Ð/å�e�RœYÑ'Ô'ð 	Ø˜Ð,Ô7¸¼Ô9QÑRÔRˆJÝ"Ø�Ð#×,Ò,Ñ.Ô.µ´
¸5Ñ0AÔ0AÑBÔBØ%Ý”hðñ ô ˆHˆHõ œØ�•2”:Ð.Ô9Ñ:Ô:½B¼JÀuÑ<MÔ<MÑNÔNñô ˆJõ #Ø�Ð#×,Ò,Ñ.Ô.µ´
¸5Ñ0AÔ0AÑBÔBØ%Ý”hðñ ô ˆHõ
 �e�RœYÑ'Ô'ð 	+å”y Ñ*Ô*ˆHÝ
Œ˜ Ñ)Ô)Ð)Ð)Ð)r   c                 ó  — t          j        |¦  «        }|                      |||d¦  «         |                      |||d¦  «         |                      |||d¦  «         |                      |||t          j        ¦  «         d S )Nr   r   rE   )r;   rª   r7  r   r+   )rM   rG   r5  r¯   s       r   Útest_scalarzTestSparseArray.test_scalarÛ  s†   € ÝŒiÐ(Ñ)Ô)ˆØ×Ò˜CÐ!1°=À!ÑDÔDÐDØ×Ò˜CÐ!1°=À!ÑDÔDÐDØ×Ò˜CÐ!1°=À"ÑEÔEÐEØ×Ò˜CÐ!1°=Å"Ä&ÑIÔIÐIÐIÐIr   c                 ó&  — |j         j        dk    r>|j        dv r5t          j                             d¬¦  «        }|                     |¦  «         t          j        ddd¦  «        }t          j
        |¦  «        }|                      ||||¦  «         d S )Nr   )ÚeqÚgeÚleúWrong fill_valuer[   éüÿÿÿé   r!   )r   r   Ú__name__rc   rd   re   r.  r   Úlinspacer;   rª   r7  )rM   rG   r5  r$   rd   râ   r¯   s          r   Ú
test_arrayzTestSparseArray.test_arrayâ  s›   € ØÔ!Ô,°Ò1Ð1°mÔ6Lð Q
ð 7
ð 7
õ
 ”;×$Ò$Ð,>Ð$Ñ?Ô?ˆDØ×Ò Ñ%Ô%Ð%åŒk˜"˜a Ñ$Ô$ˆÝŒiÐ(Ñ)Ô)ˆØ×Ò˜CÐ!1°=À#ÑFÔFÐFÐFÐFr   c                 óB  — |j         j        dk    r@|j        dk    r5t          j                             d¬¦  «        }|                     |¦  «         t          j        |¦  «        }|dz   }|  	                    ||||¦  «         |dz  }|  	                    ||||¦  «         d S )Nr   Úgtr>  r[   r   r	   )
r   r   rA  rc   rd   re   r.  r;   rª   r7  )rM   rG   r5  r$   rd   r¯   râ   s          r   Útest_sparse_arrayz!TestSparseArray.test_sparse_arrayï  s®   € ØÔ!Ô,°Ò1Ð1°mÔ6LÐPTÒ6TÐ6TÝ”;×$Ò$Ð,>Ð$Ñ?Ô?ˆDØ×Ò Ñ%Ô%Ð%åŒiÐ(Ñ)Ô)ˆØ Ñ"ˆØ×Ò˜CÐ!1°=À#ÑFÔFÐFØ Ñ"ˆØ×Ò˜CÐ!1°=À#ÑFÔFÐFÐFÐFr   zDifferent reprc                 óL   •— t          ¦   «                              ||¦  «         d S r   )ri   Útest_array_repr)rM   r   r
   rm   s      €r   rH  zTestSparseArray.test_array_reprú  s#   ø€ å‰Œ×Ò  dÑ+Ô+Ð+Ð+Ð+r   zresult does not match expectedÚas_indexc                 óL   •— t          ¦   «                              ||¦  «         d S r   )ri   Útest_groupby_extension_agg)rM   rI  rB   rm   s      €r   rK  z*TestSparseArray.test_groupby_extension_aggþ  s&   ø€ õ 	‰Œ×*Ò*¨8Ð5FÑGÔGÐGÐGÐGr   )GrA  Ú
__module__Ú__qualname__Ústrr¹   rO   rc   rd   Úparametrizerj   ro   rs   rŽ   Úfilterwarningsr;   Ú
MultiIndexÚfrom_tuplesr–   r˜   rœ   rž   r¡   r£   r¥   r°   r²   rµ   r¿   rÁ   rÇ   re   rÊ   rÎ   rÖ   rÚ   Ú_combine_le_expected_dtyperå   rç   ré   rô   rø   rþ   r  Úfails_arm_wheelsrí   rª   r„   r  r  r   r   r+   r  r  Ú	TypeErrorr  Úseries_scalar_excÚframe_scalar_excÚ
divmod_excÚseries_array_excr  r  r"  r/  r7  r9  rC  rF  rH  rK  Ú__classcell__)rm   s   @r   rI   rI   c   sK  ø€ € € € € ð°ð ¸ð ð ð ð ð „[×Ò˜X¨¨e }Ñ5Ô5ðQð Qð Qð Qñ 6Ô5ðQð0 „[×Ò˜X¨¨e }Ñ5Ô5ðHð Hð Hð Hñ 6Ô5ðHð09ð 9ð 9ð0ð 0ð 0ð „[×ÒØCñô ð „[×ÒØà�#ˆJØŒM×%Ò%Ø˜ZÐ(°¸'Ð0Bð &ñ ô ð	
ñô ð „[×Ò˜^¨d°E¨]Ñ;Ô;ð8ð 8ð 8ð 8ñ <Ô;ñô ñô ð8ð4ð 4ð 4ð 4ð 4ðHð Hð Hð Hð Hð+ð +ð +ð +ð +ð1ð 1ð 1ð 1ð 1ð8ð 8ð 8ð 8ð 8ð+ð +ð +ð +ð +ð)ð )ð )ð1ð 1ð 1ð 1ð 1ð
-ð -ð -ð -ð -ð/ð /ð /ð5ð 5ð 5ð 5ð 5ð<ð <ð <ð „[×Ò˜mÐÑ,Ô,ð%ð %ð %ð %ñ -Ô,ð%ð0ð 0ð 0ð(:ð :ð :ð :ð :ð
:ð :ð :ð :ð :ð
 "0Ðð	9ð 	9ð 	9ð8ð 8ð 8ð „[×ÒÐ.ÐÑ/Ô/ð:ð :ð :ð :ñ 0Ô/ð:ð1ð 1ð 1ð,Cð Cð Cð Cð CðDð Dð Dð „[×Ò˜X¨°(Ð';Ñ<Ô<ðBð Bð Bð Bñ =Ô<ðBð
 „[Ô!Ø„[×Ò˜U R¤X¨r¬y¸"¼,Ð$GÑHÔHð<ð <ð <ð <ñ IÔHñ "Ô!ð<ð „[Ô!ð=ð =ð =ð =ñ "Ô!ð=ð „[×ÒØ#àˆ[˜$  ¨S°"´&¨MÑ :Ô :Ð;Øˆ[˜( K K°°b´f°Ñ$>Ô$>Ð?Ø�$˜˜ U¨E N¸uÐEÑEÔEÐFØ�(˜K˜K¨°´¨Ñ8Ô8Ð9ð		
ñô ð:ð :ñô ð:ð „[×Ò˜[¨4°Ð*:Ñ;Ô;ð<ð <ñ <Ô;ð<ð „[×Ò˜iÐ0GÐÑHÔHð)ð )ð )ð )ñ IÔHð)ð
 ÐØÐØ€JØÐðYð Yð YðNð Nð Nð Nð NðMð Mð Mð Mð MðMð Mð Mð Mð Mð$"*Ø”9ð"*Ø0;ð"*ð "*ð "*ð "*ðHJ¨Kð Jð Jð Jð JðG¨;ð Gð Gð Gð Gð	G°+ð 	Gð 	Gð 	Gð 	Gð „[×ÒÐ.ÐÑ/Ô/ð,ð ,ð ,ð ,ñ 0Ô/ð,ð „[×ÒÐ>ÐÑ?Ô?Ø„[×Ò˜Z¨$°¨Ñ7Ô7ðHð Hð Hð Hñ 8Ô7ñ @Ô?ðHð Hð Hð Hð Hr   rI   c                 ó@   — |                       ¦   «         t          u sJ ‚d S r   )Úconstruct_array_typer   r·   s    r   Útest_array_type_with_argr]    s%   € Ø×%Ò%Ñ'Ô'­;Ð6Ð6Ð6Ð6Ð6Ð6r   )Ú__doc__Únumpyr   rc   Úpandasr;   r   Úpandas._testingÚ_testingr†   Úpandas.arraysr   Úpandas.tests.extensionr   r   r   Úfixturer   r+   r   r(   r-   r4   r6   r8   r@   rB   rG   ÚExtensionTestsrI   r]  r   r   r   ú<module>rg     s¦  ððð ð  Ð Ð Ð Ø €€€à Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø %Ð %Ð %Ð %Ð %Ð %Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'ð
˜Sð 
ð 
ð 
ð 
ð „ðð ñ „ðð €„˜˜2œ6�{Ð#Ñ#Ô#ðð ñ $Ô#ðð „ð(ð (ñ „ð(ð €„˜˜2œ6�{Ð#Ñ#Ô#ð>ð >ñ $Ô#ð>ð
 €„˜˜2œ6�{Ð#Ñ#Ô#ðð ñ $Ô#ðð €„˜˜2œ6�{Ð#Ñ#Ô#ð<ð <ñ $Ô#ð<ð €„˜˜2œ6�{Ð#Ñ#Ô#ðAð Añ $Ô#ðAð „ð@ð @ñ „ð@ð €„˜˜2œ6�{Ð#Ñ#Ô#ðUð Uñ $Ô#ðUð €„˜˜2œ6�{Ð#Ñ#Ô#ðXð Xñ $Ô#ðXð^Hð ^Hð ^Hð ^Hð ^H�dÔ)ñ ^Hô ^Hð ^HðB7ð 7ð 7ð 7ð 7r   