Ë
    êñiÉ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j8                  «      Zd„ Zy)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                  j                  d«      }t        j                  | «      r|j	                  |¬«      }n1|j                  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       úd/var/www/pod-logistic/pod-ai/venv/lib/python3.12/site-packages/pandas/tests/extension/test_sparse.pyÚ	make_datar      sy   € Ü
�)‰)×
Ñ
 Ó
"€CÜ	‡x�x�
ÔØ�{‰{ ˆ{Ó"‰à�|‰|˜A˜s¨´#ˆ|Ó6ˆØ�‰7�d˜1‘gÒØ�‹G�q‰L‹Gà€DˆˆˆAˆ�JØ€Kó    c                  ó   — t        «       S ©Nr   © r   r   r   r   (   s
   € ä‹=Ðr   )Úparamsc                 ó\   — 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¸w¿}¹}Ô
M€CØ€Jr   c                  óD   — t        t        j                  d«      dz  «      S )Nr!   r	   )r   r   Úonesr   r   r   Údata_for_twosr(   4   s   € ä”r—w‘w˜r“{ Q‘Ó'Ð'r   c                 óP   — 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                  ¬«      –— Œ1 y ­w)Nr!   r"   )Úranger   r   r#   )ÚcountÚ_r$   s     €r   Úgenzdata_repeated.<locals>.genC   s8   øè ø€ Ü�u“ò 	VˆAÜœi¨¯©°rÓ:ÀwÇ}Á}ÔUÓUñ	Vùs   ƒ?Ar   )r$   r3   s   ` r   Údata_repeatedr4   ?   s   ø€ ôVð €Jr   c                 ó4   — t        g d¢| j                  ¬«      S )N)r	   r   r   r"   )r   r#   r,   s    r   Údata_for_sortingr6   J   s   € ä’y¨W¯]©]Ô;Ð;r   c                 óR   — t        dt        j                  dg| j                  ¬«      S )Nr	   r   r"   r*   r,   s    r   Údata_missing_for_sortingr8   O   s   € ä˜œ2Ÿ6™6 1�~°'·-±-Ô@Ð@r   c                  ó   — d„ S )Nc                 óZ   — t        j                  | «      xr t        j                  |«      S r   )ÚpdÚisna)ÚleftÚrights     r   ú<lambda>zna_cmp.<locals>.<lambda>V   s   € œrŸw™w t›}Ò?´·±¸³€ r   r   r   r   r   Úna_cmpr@   T   s   € á?Ð?r   c           
      óx   — 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™f¤b§f¡f¨a°°A°qÐ9ÀgÇmÁmÔTÐTr   c                 ó`   — 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™f b¨"¨a°°A°q¸!Ð<ÈÏÉÔWÐWr   c                   ó  ‡ — e Zd Zdedefd„Zej                  j                  dddg«      ˆ fd„«       Z	ej                  j                  dddg«      ˆ fd„«       Z
d	„ Zd
„ Zej                  j                  d«      ej                  j                  dddgej                  j!                  ddgddg¬«      g«      ej                  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                  j=                  d"¬#«      ˆ fd$„«       Zd%„ Z ˆ fd&„Z!ˆ fd'„Z"d(Z#d)„ Z$d*„ Z%ej                  j=                  d+¬#«      ˆ fd,„«       Z&d-„ Z'ˆ fd.„Z(d/„ Z)ej                  j                  d0d1d2g«      ˆ fd3„«       Z*ej                  jV                  ej                  j                  d4ejX                  ejZ                  ej\                  g«      ˆ fd5„«       «       Z/ej                  jV                  ˆ fd6„«       Z0ej                  j                  d7d8„ d9 e1d:e2jf                  g«      fd;„ d< e1d:e2jf                  g«      fed9 e1d=d>gd>¬?«      fed< e1d=e2jf                  g«      fg«      d@„ «       Z4ej                  j                  dAd9d<g«      dB„ «       Z5ej                  j=                  e6dC¬D«      ˆ fdE„«       Z7d9Z8d9Z9d9Z:d9Z;dF„ Z<ˆ fdG„Z=ˆ fdH„Z>ˆ fdI„Z?dJejZ                  dKe1fdL„Z@dKe1fdM„ZAdKe1fdN„ZBdKe1fdO„ZCej                  j=                  dP¬#«      ˆ fdQ„«       ZDej                  j=                  dR¬#«      ej                  j                  dSddg«      ˆ fdT„«       «       ZEˆ xZFS )UÚTestSparseArrayÚop_nameÚreturnc                  ó   — y)NTr   )ÚselfÚobjrJ   s      r   Ú_supports_reductionz#TestSparseArray._supports_reductiond   s   € Ør   ÚskipnaTFc                 ó\  •— |dv r<t         j                  j                  d¬«      }|j                  j	                  |«       nZ|dv rV|j
                  j                  dk(  r=|s;t         j                  j                  d¬«      }|j                  j	                  |«       t        ‰| �!  |||«       y )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‰L×#Ñ# DÕ)à"Ð&CÑCØ—
‘
—‘ 3Ò&Ùä—;‘;×$Ñ$Ð,EÐ$ÓFˆDØ�L‰L×#Ñ# DÔ)ä‰Ñ*¨4Ð1GÈÕPr   c                 ó\  •— |dv r<t         j                  j                  d¬«      }|j                  j	                  |«       nZ|dv rV|j
                  j                  dk(  r=|s;t         j                  j                  d¬«      }|j                  j	                  |«       t        ‰| �!  |||«       y )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‰L×#Ñ# DÕ)à"Ð&CÑCØ—
‘
—‘ 3Ò&Ùä—;‘;×$Ñ$Ð,RÐ$ÓSˆDØ�L‰L×#Ñ# DÔ)ä‰Ñ! $Ð(>ÀÕGr   c                 ój   — |j                   t        t        d«      k(  rt        j                  d«       y y )Nr   zCan't store nan in int array.)r   r   r   rc   Úskip©rM   r   s     r   Ú_check_unsupportedz"TestSparseArray._check_unsupported™   s'   € Ø�:‰:œ¤S¨!Ó,Ò,Ü�K‰KÐ7Õ8ð -r   c                 óŠ  — t        j                  d|d d i«      }t        j                  dg d¢i«      }t        j                  dg d¢i«      j                  d«      }|||g}t        j                  |«      }t        j                  |D �cg c]  }|j	                  d„ «      ‘Œ c}«      }t        j                  ||«       y c c}w )NÚAr   )r   r	   r   )ÚaÚbÚcÚcategoryc                 óR   — t        j                  | «      j                  t        «      S r   )r   ÚasarrayÚastypeÚobject)Úss    r   r?   z:TestSparseArray.test_concat_mixed_dtypes.<locals>.<lambda>¨   s   € œrŸz™z¨!›}×3Ñ3´FÓ;€ r   )r;   Ú	DataFramer|   ÚconcatÚapplyÚtmÚassert_frame_equal)	rM   r   Údf1Údf2Údf3ÚdfsÚresultÚxÚexpecteds	            r   Útest_concat_mixed_dtypesz(TestSparseArray.test_concat_mixed_dtypes�   s¥   € ô �l‰l˜C  b q ˜?Ó+ˆÜ�l‰l˜C¢Ð+Ó,ˆÜ�l‰l˜C¢Ð1Ó2×9Ñ9¸*ÓEˆØ�C˜ˆoˆô —‘˜3“ˆÜ—9‘9ØFIÖJÀˆQ�W‰WÑ;Õ<ÒJó
ˆô 	×Ñ˜f hÕ/ùò Ks   Â	C z9ignore:The previous implementation of stack is deprecatedÚcolumnsru   ÚB)ru   rv   )ru   rw   ÚouterÚinner)ÚnamesÚfuture_stackc                 ó(   •— t         ‰| �  |||«       y r   )ri   Ú
test_stack)rM   r   rŒ   r‘   rm   s       €r   r“   zTestSparseArray.test_stack¬   s   ø€ ô 	‰Ñ˜4 ¨,Õ7r   c                 óH   •— | j                  |«       t        ‰| �	  ||«       y r   )rs   ri   Útest_concat_columns©rM   r   Úna_valuerm   s      €r   r•   z#TestSparseArray.test_concat_columns¼   s    ø€ Ø×Ñ Ô%Ü‰Ñ# D¨(Õ3r   c                 óH   •— | j                  |«       t        ‰| �	  ||«       y r   )rs   ri   Ú'test_concat_extension_arrays_copy_falser–   s      €r   r™   z7TestSparseArray.test_concat_extension_arrays_copy_falseÀ   s    ø€ Ø×Ñ Ô%Ü‰Ñ7¸¸hÕGr   c                 óH   •— | j                  |«       t        ‰| �	  ||«       y r   )rs   ri   Ú
test_alignr–   s      €r   r›   zTestSparseArray.test_alignÄ   ó    ø€ Ø×Ñ Ô%Ü‰Ñ˜4 Õ*r   c                 óH   •— | j                  |«       t        ‰| �	  ||«       y r   )rs   ri   Útest_align_framer–   s      €r   rž   z TestSparseArray.test_align_frameÈ   s    ø€ Ø×Ñ Ô%Ü‰Ñ   xÕ0r   c                 óH   •— | j                  |«       t        ‰| �	  ||«       y r   )rs   ri   Útest_align_series_framer–   s      €r   r    z'TestSparseArray.test_align_series_frameÌ   s    ø€ Ø×Ñ Ô%Ü‰Ñ'¨¨hÕ7r   c                 óH   •— | j                  |«       t        ‰| �	  ||«       y r   )rs   ri   Ú
test_merger–   s      €r   r¢   zTestSparseArray.test_mergeÐ   rœ   r   c                 óð  — t        j                  |t        t        |«      «      D �cg c]  }d|z  ‘Œ	 c}¬«      }t	        j
                  |j                  j                  «      rHt	        j
                  |j                  d«      «      r"t	        j
                  |j                  d   «      s%J ‚|j                  d«      |j                  d   k(  sJ ‚|j                  d«      |j                  d   k(  sJ ‚y c c}w )Nr	   )ÚindexrF   r   )
r;   ÚSeriesr0   Úlenr   r   Úvaluesr   ÚgetÚiloc)rM   r   ÚiÚsers       r   Útest_getzTestSparseArray.test_getÔ   s¯   € Ü�i‰i˜´E¼#¸d»)Ó4DÖ$E¨q Q¨£UÒ$EÔFˆÜ�8‰8�C—J‘J×)Ñ)Ô*Ü—8‘8˜CŸG™G A›JÔ'¬B¯H©H°S·X±X¸a±[Ô,AÐAÐAà—7‘7˜1“: §¡¨!¡Ò,Ð,Ð,Ø�w‰w�q‹z˜SŸX™X a™[Ò(Ð(Ñ(ùò %Fs   §C3
c                 ó–   •— |j                   j                  t        j                  j	                  d¬«      «       t
        ‰| �  |«       y )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Ü   s5   ø€ à�‰×Ñ¤§¡× 1Ñ 1Ð9TÐ 1Ó UÔVÜ‰Ñ*¨4Õ0r   c                 óH   •— | j                  |«       t        ‰| �	  ||«       y r   )rs   ri   Útest_reindexr–   s      €r   r±   zTestSparseArray.test_reindexá   s    ø€ Ø×Ñ Ô%Ü‰Ñ˜T 8Õ,r   c                 óê  — t        |«      }t        t        t        j                  |j
                  j                  «      «      }t        ddg|¬«      }|j	                  «       }t        j                  ||«       |j                  d«      }t        t        t        j                  |j
                  j                  «      «      }t        ddgd|¬«      }t        j                  |j	                  «       |«       y )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©7°<×3EÑ3E×3PÑ3PÓ+QÓRˆÜ  e˜}°NÔCˆØ—‘“ˆÜ
× Ñ  ¨Ô2ð �{‰{˜1‹~ˆÜ$¤T¬2¯7©7°<×3EÑ3E×3PÑ3PÓ+QÓRˆÜ  u˜~¸%À~ÔVˆÜ
�‰˜Ÿ	™	› XÕ.r   c                 ó$   •— t         ‰| �  |«       y r   )ri   Útest_fillna_no_op_returns_copyr¯   s      €r   r½   z.TestSparseArray.test_fillna_no_op_returns_copyò   s   ø€ Ü‰Ñ.¨tÕ4r   c                 ó  — |j                  «       }d|_        |j                  |d   «      }|d   |d   k(  sJ ‚t        j                  ||«       |j                  |d   d¬«      }|d   |d   k(  sJ ‚t        j                  ||«       y )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ˆØ�a‰y˜L¨™OÒ+Ð+Ð+Ü
×'Ñ'¨¨lÕ;r   ÚUnsupportedr[   c                 ó"   •— t         ‰| �  «        y r   )ri   Útest_fillna_series©rM   r-   rm   s     €r   rÆ   z"TestSparseArray.test_fillna_series  s   ø€ ô
 	‰Ñ"Õ$r   c                 ój  — |d   }t        j                  |ddgdœ«      j                  |«      }t        j                  |j                  «      rt        |j                  |«      }n|j                  }t        j                  |j                  ||g|¬«      ddgdœ«      }t        j                  ||«       y )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ˆä�7‰7�<×*Ñ*Ô+Ü × 2Ñ 2°JÓ?‰Eà ×&Ñ&ˆEä—<‘<à!×0Ñ0°*¸jÐ1IÐQVÐ0ÓWØ˜�Vñó
ˆô 	×Ñ˜f hÕ/r   c                 ó„   •— t        j                  t        d¬«      5  t        ‰| �  |«       d d d «       y # 1 sw Y   y xY w©Nzlimit must be None©Úmatch©rc   ÚraisesÚ
ValueErrorri   Útest_fillna_limit_framerÇ   s     €r   rÒ   z'TestSparseArray.test_fillna_limit_frame  ó4   ø€ ä�]‰]œ:Ð-AÔBñ 	:Ü‰GÑ+¨LÔ9÷	:÷ 	:ñ 	:úó   �6¶?c                 ó„   •— t        j                  t        d¬«      5  t        ‰| �  |«       d d d «       y # 1 sw Y   y xY wrÌ   rÏ   rÇ   s     €r   Útest_fillna_limit_seriesz(TestSparseArray.test_fillna_limit_series$  rÓ   rÔ   zSparse[bool]c                 ó�  — |j                  ddg«      }t        j                  d|id¬«      }|j                  d   }|j	                  |«      }t        |j                  d«      r.|j                  j                  |j                  j                  u sJ ‚|j                  j                  j                  «       |j                  «       u sJ ‚y )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ˆà—W‘W˜T‘]ˆ
Ø—‘˜:Ó&ˆä�2—7‘7˜HÔ%Ø—9‘9—>‘> V§]¡]×%7Ñ%7Ñ7Ð7Ð7Ø�t‰t�|‰|×$Ñ$Ó&¨#¯,©,«.Ñ8Ð8Ñ8r   c                 ó  — |j                  ddg«      }t        j                  |d¬«      }|d   }|j                  |«      }|j                  |j                  u sJ ‚|j                  j                  «       |j                  «       u sJ ‚y )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  st   € Ø×Ñ  A Ó'ˆÜ�i‰i˜ %Ô(ˆà˜‘Vˆ
Ø—‘˜JÓ'ˆà�{‰{˜fŸn™nÑ,Ð,Ð,Ø�{‰{×#Ñ#Ó%¨¯©«Ñ7Ð7Ñ7r   zNot Applicablec                 ó$   •— t         ‰| �  |«       y r   )ri   Útest_fillna_length_mismatchrÇ   s     €r   rå   z+TestSparseArray.test_fillna_length_mismatch@  s   ø€ ä‰Ñ+¨LÕ9r   c                 ó¼  — |d   |d   k7  sJ ‚t        |«      }|d d \  }}t        j                  |j                  ||||g|j                  ¬«      «      }t        j                  g d¢«      }|j                  |«      }t        dd«      }	t        j                  |j                  ||||g|	¬«      «      }
t        j                  ||
«       |j                  ||||g|j                  ¬«      }t        j                  g d¢«      }|j                  ||«      }t        j                  |j                  ||||g|j                  ¬«      «      }
t        j                  ||
«       y )	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  s8  € Ø�A‰w˜$˜q™'Ò!Ð!Ð!Ü�4‹jˆØ�B�Qˆx‰ˆˆ1ä�i‰i˜×*Ñ*¨A¨q°!°Q¨<¸t¿z¹zÐ*ÓJÓKˆä�x‰xÒ2Ó3ˆØ—‘˜4“ˆä ¨Ó-ˆ	Ü—9‘9Ø×Ñ  1 h°Ð9ÀÐÓKó
ˆô 	×Ñ˜v xÔ0à×"Ñ" A q¨!¨Q <°t·z±zÐ"ÓBˆÜ�x‰xÒ1Ó2ˆØ—‘˜4 Ó'ˆÜ—9‘9˜S×/Ñ/°°A°q¸!°ÀDÇJÁJÐ/ÓOÓPˆÜ
×Ñ˜v xÕ0r   c                 ó~   •— t        j                  |d¬«      5  t        ‰| �  ||«       d d d «       y # 1 sw Y   y xY w)NF)Úcheck_stacklevel)r‚   Úassert_produces_warningri   Útest_searchsorted)rM   Úperformance_warningr6   Ú	as_seriesrm   s       €r   rô   z!TestSparseArray.test_searchsortedZ  s=   ø€ Ü×'Ñ'Ð(;ÈeÔTñ 	CÜ‰GÑ%Ð&6¸	ÔB÷	C÷ 	Cñ 	Cús   ™3³<c                 ó    — |j                  d«      }|j                  d   |j                  d<   |j                  d   |j                  d   k7  sJ ‚y )Nr   r   )ÚshiftÚ_sparse_values)rM   r   rˆ   s      r   Útest_shift_0_periodsz$TestSparseArray.test_shift_0_periods^  sN   € à—‘˜A“ˆà!%×!4Ñ!4°QÑ!7ˆ×Ñ˜AÑØ×$Ñ$ QÑ'¨6×+@Ñ+@ÀÑ+CÒCÐCÑCr   ÚmethodÚargmaxÚargminc                 óJ   •— | j                  |«       t        ‰| �	  |||«       y r   )rs   ri   Útest_argmin_argmax_all_na)rM   rû   r   r—   rm   s       €r   rÿ   z)TestSparseArray.test_argmin_argmax_all_nae  s$   ø€ ð 	×Ñ Ô%Ü‰Ñ)¨&°$¸ÕAr   Úboxc                 óL   •— | j                  |«       t        ‰| �	  ||||«       y r   )rs   ri   Útest_equals)rM   r   r—   rö   r   rm   s        €r   r  zTestSparseArray.test_equalsk  s&   ø€ ð 	×Ñ Ô%Ü‰Ñ˜D (¨I°sÕ;r   c                 ó$   •— t         ‰| �  |«       y r   )ri   Ú&test_equals_same_data_different_object)rM   r   rm   s     €r   r  z6TestSparseArray.test_equals_same_data_different_objectq  s   ø€ ä‰Ñ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«      }|j                  ||¬«      }t	        j
                  ||«       y )Nr   ©Ú	na_action)r   r   r+   Úmapr‚   rÂ   )rM   Úfuncr  rŠ   r   rˆ   s         r   Útest_mapzTestSparseArray.test_mapu  s8   € ô ˜AœrŸv™v˜;Ó'ˆØ—‘˜$¨)�Ó4ˆÜ
×'Ñ'¨°Õ9r   r  c                 ó�   — d}t        j                  t        |¬«      5  |j                  d„ |¬«       d d d «       y # 1 sw Y   y xY w)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™v€ r   r  )rc   rÐ   rÑ   r  )rM   r   r  Úmsgs       r   Útest_map_raiseszTestSparseArray.test_map_raises„  s=   € ð >ˆÜ�]‰]œ:¨SÔ1ñ 	<Ø�H‰HÑ%°ˆHÔ;÷	<÷ 	<ñ 	<ús	   ž<¼Azno sparse StringDtype)rÐ   r\   c                 ó$   •— t         ‰| �  |«       y r   )ri   Útest_astype_string)rM   r   Únullable_string_dtyperm   s      €r   r  z"TestSparseArray.test_astype_string‹  s   ø€ ô 	‰Ñ" 4Õ(r   c                 óN   — |j                   dk(  rt        j                  d«       y y )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–  s"   € Ø�?‰?˜aÒô �K‰KÐWÕXð	  r   c                 óH   •— | j                  |«       t        ‰| �	  ||«       y r   )r  ri   Útest_arith_series_with_scalar©rM   r   Úall_arithmetic_operatorsrm   s      €r   r  z-TestSparseArray.test_arith_series_with_scalar�  s!   ø€ Ø×'Ñ'¨Ô-Ü‰Ñ-¨dÐ4LÕMr   c                 óH   •— | j                  |«       t        ‰| �	  ||«       y r   )r  ri   Útest_arith_series_with_arrayr  s      €r   r  z,TestSparseArray.test_arith_series_with_array¡  s!   ø€ Ø×'Ñ'¨Ô-Ü‰Ñ,¨TÐ3KÕLr   c                 óâ   •— |j                   j                  dk7  rnD|j                  d«      dvr1t        j                  j                  d¬«      }|j                  |«       t        ‰| �!  ||«       y )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¥  sh   ø€ Ø�:‰:× Ñ  AÒ%ØØ%×+Ñ+¨CÓ0ð 
9
ñ 

ô —;‘;×$Ñ$Ð,NÐ$ÓOˆDØ×Ñ Ô%Ü‰Ñ,¨TÐ3KÕLr   r«   rG   c                 óê  — |} |||«      }t        |t        j                  «      r8t        |t        j                  «      sJ ‚t        |j                  t        «      sJ ‚t        |t
        «      sJ ‚|j                  j                  t        j                  k(  sJ ‚t        |t        j                  «      rl ||j                  |j                  j                  «      }t         ||j                  «       t        j                  |«      «      |t        j                  ¬«      }n�t        j                   |t        j                  |j                  «      t        j                  |«      «      «      }t         ||j                  «       t        j                  |«      «      |t        j                  ¬«      }t        |t        j                  «      rt        j                  |«      }t        j                  ||«       y )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·  sf  € ð ˆáÐ$ eÓ,ˆÜ�eœRŸY™YÔ'Ü˜f¤b§i¡iÔ0Ð0Ð0Ü˜fŸl™l¬KÔ8Ð8Ð8ä˜f¤kÔ2Ð2Ð2Ø�|‰|×#Ñ#¤r§x¡xÒ/Ð/Ð/ä�eœRŸY™YÔ'ÙÐ,×7Ñ7¸¿¹×9QÑ9QÓRˆJÜ"ÙÐ#×,Ñ,Ó.´·
±
¸5Ó0AÓBØ%Ü—h‘hô‰Hô Ÿ™Ù”2—:‘:Ð.×9Ñ9Ó:¼B¿J¹JÀuÓ<MÓNóˆJô #ÙÐ#×,Ñ,Ó.´·
±
¸5Ó0AÓBØ%Ü—h‘hôˆHô
 �eœRŸY™YÔ'ä—y‘y Ó*ˆHÜ
�‰˜ Õ)r   c                 óê   — t        j                  |«      }| j                  |||d«       | j                  |||d«       | j                  |||d«       | j                  |||t        j                  «       y )Nr   r   rE   )r;   r¥   r3  r   r+   )rM   rG   r1  r«   s       r   Útest_scalarzTestSparseArray.test_scalarÛ  si   € Ü�i‰iÐ(Ó)ˆØ×Ñ˜CÐ!1°=À!ÔDØ×Ñ˜CÐ!1°=À!ÔDØ×Ñ˜CÐ!1°=À"ÔEØ×Ñ˜CÐ!1°=Ä"Ç&Á&ÕIr   c                 ó4  — |j                   j                  dk(  r?|j                  dv r1t        j                  j                  d¬«      }|j                  |«       t        j                  ddd«      }t        j                  |«      }| j                  ||||«       y )Nr   )ÚeqÚgeÚleúWrong fill_valuer[   éüÿÿÿé   r!   )r   r   Ú__name__rc   rd   re   r*  r   Úlinspacer;   r¥   r3  )rM   rG   r1  r$   rd   rÞ   r«   s          r   Ú
test_arrayzTestSparseArray.test_arrayâ  s‡   € Ø×!Ñ!×,Ñ,°Ò1°m×6LÑ6Lð Q
ñ 7
ô
 —;‘;×$Ñ$Ð,>Ð$Ó?ˆDØ×Ñ Ô%ä�k‰k˜"˜a Ó$ˆÜ�i‰iÐ(Ó)ˆØ×Ñ˜CÐ!1°=À#ÕFr   c                 óD  — |j                   j                  dk(  r@|j                  dk7  r1t        j                  j                  d¬«      }|j                  |«       t        j                  |«      }|dz   }| j                  ||||«       |dz  }| j                  ||||«       y )Nr   Úgtr:  r[   r   r	   )
r   r   r=  rc   rd   re   r*  r;   r¥   r3  )rM   rG   r1  r$   rd   r«   rÞ   s          r   Útest_sparse_arrayz!TestSparseArray.test_sparse_arrayï  s—   € Ø×!Ñ!×,Ñ,°Ò1°m×6LÑ6LÐPTÒ6TÜ—;‘;×$Ñ$Ð,>Ð$Ó?ˆDØ×Ñ Ô%ä�i‰iÐ(Ó)ˆØ Ñ"ˆØ×Ñ˜CÐ!1°=À#ÔFØ Ñ"ˆØ×Ñ˜CÐ!1°=À#ÕFr   zDifferent reprc                 ó&   •— t         ‰| �  ||«       y r   )ri   Útest_array_repr)rM   r   r
   rm   s      €r   rD  zTestSparseArray.test_array_reprú  s   ø€ ä‰Ñ  dÕ+r   zresult does not match expectedÚas_indexc                 ó&   •— t         ‰| �  ||«       y r   )ri   Útest_groupby_extension_agg)rM   rE  rB   rm   s      €r   rG  z*TestSparseArray.test_groupby_extension_aggþ  s   ø€ ô 	‰Ñ*¨8Ð5FÕGr   )Gr=  Ú
__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+  r3  r5  r?  rB  rD  rG  Ú__classcell__)rm   s   @r   rI   rI   c   s  ø„ ð°ð ¸ó ð ‡[�[×Ñ˜X¨¨e }Ó5óQó 6ðQð0 ‡[�[×Ñ˜X¨¨e }Ó5óHó 6ðHò09ò0ð ‡[�[×ÑØCóð ‡[�[×ÑØà�#ˆJØ�M‰M×%Ñ%Ø˜ZÐ(°¸'Ð0Bð &ó ð	
óð ‡[�[×Ñ˜^¨d°E¨]Ó;ó8ó <óóð8ô4ôHô+ô1ô8ô+ò)ô1ô
-ò/ô5ò<ð ‡[�[×Ñ˜mÐÓ,ó%ó -ð%ò0ô(:ô
:ð
 "0Ðò	9ò8ð ‡[�[×ÑÐ.ÐÓ/ó:ó 0ð:ò1ô,CòDð ‡[�[×Ñ˜X¨°(Ð';Ó<óBó =ðBð
 ‡[�[×!Ñ!Ø‡[�[×Ñ˜U R§X¡X¨r¯y©y¸"¿,¹,Ð$GÓHó<ó Ió "ð<ð ‡[�[×!Ñ!ó=ó "ð=ð ‡[�[×ÑØ#á˜$¡¨S°"·&±&¨MÓ :Ð;Ù˜(¡K°°b·f±f°Ó$>Ð?Ø�$™ U¨E N¸uÔEÐFØ�(™K¨°·±¨Ó8Ð9ð		
óñ:óð:ð ‡[�[×Ñ˜[¨4°Ð*:Ó;ñ<ó <ð<ð ‡[�[×Ñ˜iÐ0GÐÓHó)ó Ið)ð
 ÐØÐØ€JØÐòYôNôMôMð$"*Ø—9‘9ð"*Ø0;ó"*ðHJ¨Kó JðG¨;ó Gð	G°+ó 	Gð ‡[�[×ÑÐ.ÐÓ/ó,ó 0ð,ð ‡[�[×ÑÐ>ÐÓ?Ø‡[�[×Ñ˜Z¨$°¨Ó7óHó 8ó @ôHr   rI   c                 ó4   — | j                  «       t        u sJ ‚y r   )Úconstruct_array_typer   r³   s    r   Útest_array_type_with_argrY    s   € Ø×%Ñ%Ó'¬;Ñ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   rY  r   r   r   ú<module>rc     sª  ðñó  Û ã Ý Ý Ý %Ý 'ð
˜Só 
ð ‡�ñó ðð €‡�˜˜2Ÿ6™6�{Ô#ñó $ðð ‡�ñ(ó ð(ð €‡�˜˜2Ÿ6™6�{Ô#ñ>ó $ð>ð
 €‡�˜˜2Ÿ6™6�{Ô#ñó $ðð €‡�˜˜2Ÿ6™6�{Ô#ñ<ó $ð<ð €‡�˜˜2Ÿ6™6�{Ô#ñAó $ðAð ‡�ñ@ó ð@ð €‡�˜˜2Ÿ6™6�{Ô#ñUó $ðUð €‡�˜˜2Ÿ6™6�{Ô#ñXó $ðXô^H�d×)Ñ)ô ^HóB7r   