Ë
    u™ãjq-  ã                   óÜ  — d Z ddlZddlZddlmZmZ ddlmZm	Z	m
Z
 ddlZddlmZ ddlmZ ddlmZmZ ddlmZmZmZmZmZmZmZmZ ddlmZ e Z d	„ Z!d
„ Z"d„ Z# ejH                  eeeeeeeeeeeg¬«      d„ «       Z%ejH                  d„ «       Z&ejH                  d„ «       Z'ejH                  d„ «       Z(ejH                  d„ «       Z)ejH                  d„ «       Z*ejH                  d„ «       Z+ejH                  d„ «       Z, G d„ dejZ                  «      Z.ej^                  ja                  d ejb                  ddg«       ejb                  ddg«       ejb                  ddg«      g«      d„ «       Z2y)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)ÚIS64Úis_platform_windows)Úis_float_dtypeÚis_signed_integer_dtypeÚis_unsigned_integer_dtype)ÚBooleanDtype)ÚFloat32DtypeÚFloat64Dtype)Ú	Int8DtypeÚ
Int16DtypeÚ
Int32DtypeÚ
Int64DtypeÚ
UInt8DtypeÚUInt16DtypeÚUInt32DtypeÚUInt64Dtype)Úbasec            
      óR   — ddddt         j                  ddt         j                  ddg
S )	Né   é   é   é   é
   é   éc   éd   ©ÚpdÚNA© ó    úm/var/www/html/python-recuperauto-other/env/lib/python3.12/site-packages/pandas/tests/extension/test_masked.pyÚ	make_datar#   5   s%   € Øˆq�!�QœŸ™˜r 2¤r§u¡u¨b°#Ð6Ð6r!   c            
      óR   — ddddt         j                  ddt         j                  ddg
S )	Nçš™™™™™¹?çš™™™™™É?g333333Ó?gš™™™™™Ù?ç      ð?gš™™™™™ñ?gÍÌÌÌÌÌ#@g      $@r   r    r!   r"   Úmake_float_datar(   9   s%   € Ø��c˜3¤§¡ s¨C´·±¸¸TÐBÐBr!   c                  ól   — ddgdz  t         j                  gz   ddgz   t         j                  gz   ddgz   S )NTFr   )ÚnpÚnanr    r!   r"   Úmake_bool_datar,   =   s9   € Ø�%ˆ=˜1Ñ¤§¡˜xÑ'¨4°¨-Ñ7¼2¿6¹6¸(ÑBÀdÈEÀ]ÑRÐRr!   )Úparamsc                 ó"   — | j                  «       S ©N)Úparam)Úrequests    r"   Údtyper2   A   s   € ð  �=‰=‹?Ðr!   c                 ó¬   — | j                   dk(  rt        «       }n$| j                   dk(  rt        «       }n
t        «       }t	        j
                  || ¬«      S )NÚfÚb©r2   )Úkindr(   r,   r#   r   Úarray)r2   Údatas     r"   r9   r9   T   sB   € à‡z�z�SÒÜÓ ‰Ø	�‰�sÒ	ÜÓ‰ä‹{ˆÜ�8‰8�D Ô&Ð&r!   c                 óÎ   — | j                   dk(  r*t        j                  t        j                  d«      | ¬«      S t        j                  t        j                  d«      dz  | ¬«      S )Nr5   r   r6   r   )r7   r   r8   r*   Úonesr6   s    r"   Údata_for_twosr<   _   sD   € à‡z�z�SÒÜ�x‰xœŸ™ ›¨5Ô1Ð1Ü�8‰8”B—G‘G˜B“K !‘O¨5Ô1Ð1r!   c                 ó(  — | j                   dk(  r't        j                  t        j                  dg| ¬«      S | j                   dk(  r't        j                  t        j
                  dg| ¬«      S t        j                  t        j                  dg| ¬«      S )Nr4   r%   r6   r5   Tr   ©r7   r   r8   r   r*   r+   r6   s    r"   Údata_missingr?   f   se   € à‡z�z�SÒÜ�x‰xœŸ™ ˜¨EÔ2Ð2Ø	�‰�sÒ	Ü�x‰xœŸ™ ˜¨eÔ4Ð4Ü�8‰8”R—U‘U˜A�J eÔ,Ð,r!   c                 óÔ   — | j                   dk(  rt        j                  g d¢| ¬«      S | j                   dk(  rt        j                  g d¢| ¬«      S t        j                  g d¢| ¬«      S )Nr4   )r%   r&   ç        r6   r5   )TTF)r   r   r   )r7   r   r8   r6   s    r"   Údata_for_sortingrB   o   sN   € à‡z�z�SÒÜ�x‰xš¨uÔ5Ð5Ø	�‰�sÒ	Ü�x‰xÒ+°5Ô9Ð9Ü�8‰8’I UÔ+Ð+r!   c                 ó.  — | j                   dk(  r(t        j                  dt        j                  dg| ¬«      S | j                   dk(  r(t        j                  dt        j
                  dg| ¬«      S t        j                  dt        j                  d	g| ¬«      S )
Nr4   r%   rA   r6   r5   TFr   r   r>   r6   s    r"   Údata_missing_for_sortingrD   x   sm   € à‡z�z�SÒÜ�x‰x˜œbŸe™e SÐ)°Ô7Ð7Ø	�‰�sÒ	Ü�x‰x˜œrŸv™v uÐ-°UÔ;Ð;Ü�8‰8�QœŸ™˜q�M¨Ô/Ð/r!   c                  ó   — d„ S )Nc                 óN   — | t         j                  u xr |t         j                  u S r/   r   )ÚxÚys     r"   ú<lambda>zna_cmp.<locals>.<lambda>„   s   € ˜œRŸU™U˜
Ò1 q¬B¯E©E z€ r!   r    r    r!   r"   Úna_cmprJ   �   s
   € ñ 2Ð1r!   c           
      óÄ   — | j                   dk(  rd}d}d}n| j                   dk(  rd}d}|}nd}d	}d
}t        j                  }t        j                  ||||||||g| ¬«      S )Nr4   r%   rA   r&   r5   TFr   r   r   r6   )r7   r   r   r8   )r2   r5   ÚaÚcÚnas        r"   Údata_for_groupingrO   ‡   sr   € à‡z�z�SÒØˆØˆØ‰Ø	�‰�sÒ	ØˆØˆØ‰àˆØˆØˆä	�‰€BÜ�8‰8�Q˜˜2˜r 1 a¨¨AÐ.°eÔ<Ð<r!   c                   ón  ‡ — e Zd ZdZ ej
                  d¬«      d„ «       Zej                  j                  dddg«      d„ «       Z	d	„ Z
d
„ Zdefd„Zˆ fd„Zdej                   dedefd„Zdej                   dedefd„Zdedefd„Zdej                   dedefd„Zdej                   dedefd„Zˆ fd„Zˆ xZS )ÚTestMaskedArraysÚbooleanT)Úautousec                 ó    — |j                   rJ ‚y r/   )Ú_supports_2d)Úselfr2   r1   s      r"   Úskip_if_doesnt_support_2dz*TestMaskedArrays.skip_if_doesnt_support_2d�   s   € ð ×%Ò%Ð%Ð%Ð%r!   Ú	na_actionNÚignorec                 óX   — |j                  d„ |¬«      }t        j                  ||«       y )Nc                 ó   — | S r/   r    )rG   s    r"   rI   z+TestMaskedArrays.test_map.<locals>.<lambda>§   s   € ¨A€ r!   ©rX   )ÚmapÚtmÚassert_extension_array_equal)rV   r?   rX   Úusing_nan_is_naÚresults        r"   Útest_mapzTestMaskedArrays.test_map¤   s)   € ð ×!Ñ!¡+¸Ð!ÓCˆÜ
×'Ñ'¨°Õ=r!   c                 óÌ   ‡— |d   Š|j                  ˆfd„d¬«      }t        j                  ‰t        j                  ‰g|j                  ¬«      }t        j                  ||«       y )Nr   c                 ó   •— ‰S r/   r    )rG   Úzeros    €r"   rI   z<TestMaskedArrays.test_map_na_action_ignore.<locals>.<lambda>­   s   ø€ ¸€ r!   rY   r\   r6   )r]   r   r8   r   r2   r^   r_   )rV   rD   r`   ra   Úexpectedre   s        @r"   Útest_map_na_action_ignorez*TestMaskedArrays.test_map_na_action_ignoreª   sT   ø€ à'¨Ñ*ˆØ)×-Ñ-«nÈÐ-ÓQˆÜ—8‘8˜T¤2§5¡5¨$Ð/Ð7O×7UÑ7UÔVˆÜ
×'Ñ'¨°Õ9r!   c                 óü   — 	 t        j                  |«      }|j                  dk(  r3|j	                  d«      j                  d«      dv rt        S |dv rt        S y y # t        $ r t        j                  |«      }Y Œcw xY w)Nr5   Ú_Úr)ÚpowÚtruedivÚfloordiv)Ú__sub__Ú__rsub__)r^   Ú	get_dtypeÚAttributeErrorr7   ÚstripÚlstripÚNotImplementedErrorÚ	TypeError)rV   Úop_nameÚobjÚotherr2   s        r"   Ú_get_expected_exceptionz(TestMaskedArrays._get_expected_exception±   sz   € ð	(Ü—L‘L Ó%ˆEð
 �:‰:˜ÒØ�}‰}˜SÓ!×(Ñ(¨Ó-Ð1OÑOä*Ð*ØÐ3Ñ3ä Ð ØØøô ò 	(ä—L‘L Ó'ŠEð	(ús   ‚A ÁA;Á:A;rv   c                 ó|   — t        j                  |«      }|}|j                  dk(  r|dv r|j                  d«      }|S )Nr5   )Ú__mod__Ú__rmod__ÚInt8)r^   rp   r7   Úastype)rV   rv   rw   rx   Úpointwise_resultÚsdtyperf   s          r"   Ú_cast_pointwise_resultz'TestMaskedArrays._cast_pointwise_resultÂ   sC   € Ü—‘˜cÓ"ˆØ#ˆà�;‰;˜#ÒØð ñ ð
 $Ÿ?™?¨6Ó2�àˆr!   c                 óº   •— |j                   j                  dk(  r1t        j                  j	                  d¬«      }|j                  |«       t        ‰| �  ||«       y )Nr5   z‡Inconsistency between floordiv and divmod; we raise for floordiv but not for divmod. This matches what we do for non-masked bool dtype.©Úreason)r2   r7   ÚpytestÚmarkÚxfailÚapplymarkerÚsuperÚtest_divmod_series_array)rV   r9   r<   r1   r†   Ú	__class__s        €r"   rŠ   z)TestMaskedArrays.test_divmod_series_arrayÐ   sP   ø€ Ø�:‰:�?‰?˜cÒ!Ü—;‘;×$Ñ$ð)ð %ó ˆDð
 ×Ñ Ô%Ü‰Ñ(¨¨}Õ=r!   ÚserÚreturnc                 ój   — |dv r/|j                   j                  dk7  rt        j                  d¬«       y)N©ÚanyÚallr5   z-Tested in tests/reductions/test_reductions.pyrƒ   T)r2   r7   r…   Úskip©rV   rŒ   rv   s      r"   Ú_supports_reductionz$TestMaskedArrays._supports_reductionÚ   s)   € Ø�nÑ$¨¯©¯©¸3Ò)>Ü�K‰KÐNÕOØr!   Úskipnac                 ó  — d}|j                   j                  dk(  r|j                   j                  }n|j                   j                  dk(  r|dv rd}|j                  «       j	                  |«      }|dk(  r# t        ||«      «       } t        ||«      «       }nZ t        ||«      |¬«      } t        ||«      |¬«      }|s2|j                  «       j                  «       r|dvrt        j                  }t        j                  ||«       y )	NÚint64r4   r5   ©ÚminÚmaxÚboolÚcount©r•   r�   )r2   r7   Únumpy_dtypeÚdropnar~   ÚgetattrÚisnar�   r   r   r^   Úassert_almost_equal)rV   rŒ   rv   r•   Ú	cmp_dtypeÚaltra   rf   s           r"   Úcheck_reducezTestMaskedArrays.check_reduceß   sá   € ð ˆ	Ø�9‰9�>‰>˜SÒ ð Ÿ	™	×-Ñ-‰IØ�Y‰Y�^‰^˜sÒ"Ø˜.Ñ(Ø"�	ð
 �j‰j‹l×!Ñ! )Ó,ˆØ�gÒØ*”W˜S 'Ó*Ó,ˆFØ,”w˜s GÓ,Ó.‰Hà*”W˜S 'Ó*°&Ô9ˆFØ,”w˜s GÓ,°FÔ;ˆHÙ˜cŸh™h›jŸn™nÔ.°7À.Ñ3PÜŸ5™5�Ü
×Ñ˜v xÕ0r!   c                 óR  — t        |j                  «      r|j                  j                  }|S |dv rd}|S |dv r|j                  j                  }|S |j                  dv r|j                  j                  }|S t        |j                  «      rt	        «       r|rt
        sd}|S d}|S t        |j                  «      rt	        «       r|rt
        sd}|S d}|S |j                  j                  d	k(  r/|d
v rd}|S |dv rt	        «       r|rt
        sdnd}|S t        d«      ‚t        d«      ‚)N)ÚmeanÚmedianÚvarÚstdÚskewÚkurtÚsemÚFloat64)rš   r™   )ÚInt64ÚUInt64ÚInt32r¯   ÚUInt32r°   r5   r˜   rR   )ÚsumÚprodznot supposed to reach this)	r   r2   Únamer   r   r   r   r7   ru   )rV   Úarrrv   r•   r£   s        r"   Ú_get_expected_reduction_dtypez.TestMaskedArrays._get_expected_reduction_dtypeú   sh  € Ü˜#Ÿ)™)Ô$ØŸ	™	Ÿ™ˆIðB ÐðA ÐOÑOØ!ˆIð> Ðð= ˜Ñ&ØŸ	™	Ÿ™ˆIð: Ðð9 �Y‰YÐ-Ñ-ØŸ	™	Ÿ™ˆIð6 Ðô5 % S§Y¡YÔ/ô (Ô)±&Åð ð ð0 Ðð+ ð ð0 Ðô' ' s§y¡yÔ1ô (Ô)±&Åð ð ð$ Ðð ð ð$ Ðð �Y‰Y�^‰^˜sÒ"Ø˜.Ñ(Ø%�	ð Ðð ˜OÑ+ô ,Ô-±fÅTñ à ð ð Ðô  Ð <Ó=Ð=äÐ8Ó9Ð9r!   c                  ó   — y)NTr    r“   s      r"   Ú_supports_accumulationz'TestMaskedArrays._supports_accumulation  s   € Ør!   c           
      ó¦  — d}t         r|j                  j                  dk(  sd}|j                  j                  j	                  d«      rd|› �}n‚|j                  j                  j	                  d«      rd|› �}nW|j                  j                  j	                  d«      r|j                  }n%|j                  j
                  d	k(  r|d
v rd}nd|› �}dk(  r"|dk(  r|rt        j                  d|› d|› �«       |dk(  rn*|dv r|j                  }n|dk(  r|d d }nt        |› d�«      ‚ t        ||«      |¬«      }t        j                  t        j                   t        |j                  d«      |«      |¬«      d¬«      «      }t        j                  |t        j                   |«      <   |j                  |«      }t#        j$                  ||«       y )Né@   é   é    ÚUÚUIntÚIÚIntÚFr5   )ÚcumminÚcummaxrR   ÚFloat32Úcumprodz4Float32 precision lead to large differences with op z and skipna=Úcumsum)rÄ   rÃ   é   z not supportedr�   Úfloat64r®   r6   )Úis_windows_or_32bitr2   Úitemsizerµ   Ú
startswithr7   r…   r’   rt   r    r   ÚSeriesr8   r~   r   r*   Úisnanr^   Úassert_series_equal)rV   rŒ   rv   r•   ÚlengthÚexpected_dtypera   rf   s           r"   Úcheck_accumulatez!TestMaskedArrays.check_accumulate"  sª  € ð ˆÝð —9‘9×%Ñ%¨Ò*Ø�à�9‰9�>‰>×$Ñ$ SÔ)Ø# F 8˜_‰NØ�Y‰Y�^‰^×&Ñ& sÔ+Ø" 6 (˜^‰NØ�Y‰Y�^‰^×&Ñ& sÔ+ð !ŸY™Y‰NØ�Y‰Y�^‰^˜sÒ"ØÐ.Ñ.Ø!*‘à#& v h �à˜YÒ&¨7°iÒ+?ÁFä�K‰KØFÀwÀið PØ$˜Xð'ôð
 �hÒØØÐ,Ñ,Ø ŸY™Y‰NØ˜	Ò!Ø�c�r�(‰Cä%¨¨	°Ð&@ÓAÐAà&”˜˜gÓ&¨fÔ5ˆÜ—9‘9Ü�H‰HØ7”˜Ÿ
™
 9Ó-¨wÓ7¸vÔFØôó
ˆô (*§u¡uˆ”—‘˜(Ó#Ñ$Ø—?‘? >Ó2ˆÜ
×Ñ˜v xÕ0r!   c                 ó$   •— t         ‰| �  |«       y r/   )r‰   Ú8test_loc_setitem_with_expansion_preserves_ea_index_dtype)rV   r9   r1   r‹   s      €r"   rÔ   zITestMaskedArrays.test_loc_setitem_with_expansion_preserves_ea_index_dtypeU  s   ø€ Ü‰ÑHÈÕNr!   )Ú__name__Ú
__module__Ú__qualname__Ú_combine_le_expected_dtyper…   ÚfixturerW   r†   Úparametrizerb   rg   ry   Ústrr�   rŠ   r   rÍ   r›   r”   r¥   r·   r¹   rÒ   rÔ   Ú__classcell__)r‹   s   @r"   rQ   rQ   š   s  ø„ Ø!*Ðà€V‡^�^˜DÔ!ñ&ó "ð&ð ‡[�[×Ñ˜[¨4°Ð*:Ó;ñ>ó <ð>ò
:òð"¨có ô>ð r§y¡yð ¸3ð À4ó ð
1 §	¡	ð 1°Cð 1Àó 1ð6#¸#ð #Àtó #ðJ¨"¯)©)ð ¸cð Àdó ð11 B§I¡Ið 11¸ð 11ÀTó 11÷fOð Or!   rQ   r¶   TFr   r   r'   g       @c                 óÄ   — t         j                  t         j                  g}| j                  |«      }|j                  | j                  k(  sJ ‚t	        d„ |D «       «      sJ ‚y )Nc              3   ó@   K  — | ]  }|t         j                  u –— Œ y ­wr/   r   )Ú.0rG   s     r"   ú	<genexpr>zLtest_cast_pointwise_result_all_na_respects_original_dtype.<locals>.<genexpr>a  s   è ø€ Ò*˜aˆq”B—E‘EŒzÑ*ùs   ‚)r   r   r�   r2   r‘   )r¶   Úvaluesra   s      r"   Ú9test_cast_pointwise_result_all_na_respects_original_dtyperâ   Y  sO   € ô
 �e‰e”R—U‘Uˆ^€FØ×'Ñ'¨Ó/€FØ�<‰<˜3Ÿ9™9Ò$Ð$Ð$ÜÑ* 6Ô*Ô*Ð*Ñ*r!   )3Ú__doc__Únumpyr*   r…   Úpandas.compatr   r   Úpandas.core.dtypes.commonr   r   r   Úpandasr   Úpandas._testingÚ_testingr^   Úpandas.core.arrays.booleanr   Úpandas.core.arrays.floatingr	   r
   Úpandas.core.arrays.integerr   r   r   r   r   r   r   r   Úpandas.tests.extensionr   rÊ   r#   r(   r,   rÙ   r2   r9   r<   r?   rB   rD   rJ   rO   ÚExtensionTestsrQ   r†   rÚ   r8   râ   r    r!   r"   ú<module>rï      s¾  ðñó  Û ÷÷
ñ ó Ý Ý 3÷÷	÷ 	ó 	õ (à�hÐ ò7òCòSð €‡�àØØØØØØØØØØðôñóðð ‡�ñ'ó ð'ð ‡�ñ2ó ð2ð ‡�ñ-ó ð-ð ‡�ñ,ó ð,ð ‡�ñ0ó ð0ð ‡�ñ2ó ð2ð
 ‡�ñ=ó ð=ô$|O�t×*Ñ*ô |Oð~ ‡�×ÑØ	ˆHˆB�H‰H�d˜E�]Ó# X R§X¡X¨q°!¨fÓ%5°x°r·x±xÀÀcÀ
Ó7KÐLóñ+óñ+r!   