+
    NV-j²1  ã                   óÎ  € R t ^ RIt^ RIt^ RIHtHt ^ RIHt ^ RI	H
t
HtHt ^ RIt^ RIHt ^ RIHt ^ RIHtHt ^ RIHtHtHtHtHtHtHtHt ^ RI H!t! ]! 4       ;'       d    ]'       * ;'       g    ]'       * t"]PF                  PI                  R	4      ]PF                  PI                  R
4      ]PF                  PI                  R4      .t%R t&R t'R t(]PR                  ! ]]]]]]]]]]].R7      R 4       t*]PR                  R 4       t+]PR                  R 4       t,]PR                  R 4       t-]PR                  R 4       t.]PR                  R 4       t/]PR                  R 4       t0]PR                  R 4       t1 ! R R]!Pd                  4      t3]PF                  Pi                  R]Pj                  ! RR.4      ]Pj                  ! ^^.4      ]Pj                  ! RR.4      .4      R 4       t6R# ) 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)Únp_version_gt2)Úis_float_dtypeÚis_signed_integer_dtypeÚis_unsigned_integer_dtype)ÚBooleanDtype)ÚFloat32DtypeÚFloat64Dtype)Ú	Int8DtypeÚ
Int16DtypeÚ
Int32DtypeÚ
Int64DtypeÚ
UInt8DtypeÚUInt16DtypeÚUInt32DtypeÚUInt64Dtype)Úbasez9ignore:invalid value encountered in divide:RuntimeWarningz)ignore:Mean of empty slice:RuntimeWarningz4ignore:overflow encountered in reduce:RuntimeWarningc            
      óR   € ^^^^\         P                  ^
^\         P                  ^c^d.
# )é   ©ÚpdÚNA© ó    Ús/Volumes/fast/ai/experiments/ui-tars-smoke/.venv/lib/python3.14/site-packages/pandas/tests/extension/test_masked.pyÚ	make_datar   ?   s%   € Øˆq�!�QœŸ™˜r 2¤r§u¡u¨b°#Ð6Ð6r   c            
      óR   € R RRR\         P                  RR\         P                  RR.
# )çš™™™™™¹?çš™™™™™É?g333333Ó?gš™™™™™Ù?ç      ð?gš™™™™™ñ?gÍÌÌÌÌÌ#@g      $@r   r   r   r   Úmake_float_datar!   C   s%   € Ø��c˜3¤§¡ s¨C´·±¸¸TÐBÐBr   c                  ó”   € R R.^,          \         P                  .,           R R.,           \         P                  .,           R R.,           # )TF)ÚnpÚnanr   r   r   Úmake_bool_datar%   G   s9   € Ø�%ˆ=˜1Õ¤§¡˜xÕ'¨4°¨-Õ7¼2¿6¹6¸(ÕBÀdÈEÀ]ÕRÐRr   )Úparamsc                 ó"   € V P                  4       # ©N)Úparam)Úrequests   &r   Údtyper+   K   s   € ð  �=‰=‹?Ðr   c                 ó´   € V P                   R 8X  d   \        4       pM&V P                   R8X  d   \        4       pM
\        4       p\        P
                  ! WR7      # )ÚfÚb©r+   )Úkindr!   r%   r   r   Úarray)r+   Údatas   & r   r2   r2   ^   s@   € à‡z�z�SÔÜÓ ‰Ø	�‰�sÔ	ÜÓ‰ä‹{ˆÜ�8Š8�DÔ&Ð&r   c                 óâ   € V P                   R 8X  d-   \        P                  ! \        P                  ! ^
4      V R7      # \        P                  ! \        P                  ! ^
4      ^,          V R7      # )r.   r/   )r0   r   r1   r#   Úonesr/   s   &r   Údata_for_twosr5   i   sD   € à‡z�z�SÔÜ�xŠxœŸš ›¨5Ô1Ð1Ü�8Š8”B—G’G˜B“K !•O¨5Ô1Ð1r   c                 ó6  € V P                   R 8X  d)   \        P                  ! \        P                  R.V R7      # V P                   R8X  d)   \        P                  ! \        P
                  R.V R7      # \        P                  ! \        P                  ^.V R7      # )r-   r   r/   r.   T©r0   r   r1   r   r#   r$   r/   s   &r   Údata_missingr8   p   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                 óâ   € V P                   R 8X  d   \        P                  ! . ROV R7      # V P                   R8X  d   \        P                  ! . ROV R7      # \        P                  ! . ROV R7      # )r-   r/   r.   )r   r   ç        )TTF)r   é   é    )r0   r   r1   r/   s   &r   Údata_for_sortingr=   y   sN   € à‡z�z�SÔÜ�xŠxš¨uÔ5Ð5Ø	�‰�sÔ	Ü�xŠxÒ+°5Ô9Ð9Ü�8Š8’I UÔ+Ð+r   c                 ó<  € V P                   R 8X  d*   \        P                  ! R\        P                  R.V R7      # V P                   R8X  d*   \        P                  ! R\        P
                  R.V R7      # \        P                  ! ^\        P                  ^ .V R7      # )r-   r   r:   r/   r.   TFr7   r/   s   &r   Údata_missing_for_sortingr?   ‚   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                  ó   € R  # )c                 óZ   € V \         P                  J ;'       d    V\         P                  J # r(   r   )ÚxÚys   &&r   Ú<lambda>Úna_cmp.<locals>.<lambda>Ž   s   € ˜œRŸU™U˜
×1Ð1 q¬B¯E©E zÐ1r   r   r   r   r   Úna_cmprF   ‹   s
   € ñ 2Ð1r   c           
      óÆ   € V P                   R 8X  d   RpRpRpMV P                   R8X  d   RpRpTpM^p^ p^p\        P                  p\        P                  ! WWDW"W.V R7      # )r-   r   r:   r   r.   TFr/   )r0   r   r   r1   )r+   r.   ÚaÚcÚnas   &    r   Údata_for_groupingrK   ‘   sj   € à‡z�z�SÔØˆØˆØ‰Ø	�‰�sÔ	ØˆØˆØ‰àˆØˆØˆä	�‰€BÜ�8Š8�Q˜2 1¨Ð.°eÔ<Ð<r   c                   ó4  a a€ ] tR t^¤t oRt]P                  ! RR7      R 4       t]P                  P                  RRR.4      R 4       t
R	 tR
 tV3R lR ltV 3R ltV3R lR ltV3R lR ltV3R lR ltV3R lR ltV3R lR ltV 3R ltRtVtV ;t# )ÚTestMaskedArraysÚbooleanT)Úautousec                ó.   € VP                   '       d   Q hR # r(   )Ú_supports_2d)Úselfr+   r*   s   &&&r   Úskip_if_doesnt_support_2dÚ*TestMaskedArrays.skip_if_doesnt_support_2d§   s   € ð ×%×%Ð%Ð%Ð%Ñ%r   Ú	na_actionNÚignorec                ó   € VP                  R  VR7      pVP                  \        4       8X  d+   V'       d#   VP                  R\        P
                  R7      pMVP                  4       p\        P                  ! WE4       R# )c                 ó   € V # r(   r   )rB   s   &r   rD   Ú+TestMaskedArrays.test_map.<locals>.<lambda>°   s   € ©Ar   ©rU   Úfloat64)r+   Úna_valueN)Úmapr+   r	   Úto_numpyr#   r$   ÚtmÚassert_numpy_array_equal)rR   r8   rU   Úusing_nan_is_naÚresultÚexpecteds   &&&&  r   Útest_mapÚTestMaskedArrays.test_map®   s^   € à×!Ñ!¡+¸Ð!ÓCˆØ×Ñ¤£Ô/·Oà#×,Ñ,°9ÄrÇvÁvÐ,ÓN‰Hà#×,Ñ,Ó.ˆHÜ
×#Ò# FÖ5r   c                óÀ  a€ V^,          oVP                  V3R lRR7      pVP                  P                  R8X  d/   \        P                  ! R\
        P                  R.\        R7      pM]V'       g/   \        P                  ! S\
        P                  S.\        R7      pM'\        P                  ! S\        P                  S.4      p\        P                  ! W44       R# )r;   c                 ó   <€ S# r(   r   )rB   Úzeros   &€r   rD   Ú<TestMaskedArrays.test_map_na_action_ignore.<locals>.<lambda>º   s   ø€ ¹r   rV   rZ   r.   Fr/   N)r]   r+   r0   r#   r1   r   r   Úobjectr$   r_   r`   )rR   r?   ra   rb   rc   rh   s   &&&  @r   Útest_map_na_action_ignoreÚ*TestMaskedArrays.test_map_na_action_ignore¸   s–   ø€ Ø'¨Õ*ˆØ)×-Ñ-¬nÈÐ-ÓQˆØ#×)Ñ)×.Ñ.°#Ô5Ü—x’x ¬¯©¨uÐ 5¼VÔD‰Hß ä—x’x ¤r§u¡u¨dÐ 3¼6ÔB‰Hä—x’x ¤r§v¡v¨tÐ 4Ó5ˆHÜ
×#Ò# FÖ5r   c                ó  €  \         P                  ! V4      pVP                  R 8X  d;   VP	                  R4      P                  R4      R9   d   \        # VR9   d   \        # R# R#   \         d    \         P                  ! T4      p Lpi ; i)r.   Ú_ÚrN)ÚpowÚtruedivÚfloordiv)Ú__sub__Ú__rsub__)r_   Ú	get_dtypeÚAttributeErrorr0   ÚstripÚlstripÚNotImplementedErrorÚ	TypeError)rR   Úop_nameÚobjÚotherr+   s   &&&& r   Ú_get_expected_exceptionÚ(TestMaskedArrays._get_expected_exceptionÄ   sz   € ð	(Ü—L’L Ó%ˆEð
 �:‰:˜ÔØ�}‰}˜SÓ!×(Ñ(¨Ó-Ð1OÔOä*Ð*ØÐ3Ô3ä Ð ÙÙøô ô 	(ä—L’L Ó'ŠEð	(ús   ‚A% Á%!B	ÂB	c                ó    <€ V ^8„  d   QhRS[ /# )r;   r{   )Ústr)ÚformatÚ__classdict__s   "€r   Ú__annotate__ÚTestMaskedArrays.__annotate__Õ   s   ø€ ÷ ñ ©cñ r   c                óˆ   € \         P                  ! V4      pTpVP                  R 8X  d   VR9   d   VP                  R4      pV# )r.   ÚInt8)Ú__mod__Ú__rmod__)r_   ru   r0   Úastype)rR   r{   r|   r}   Úpointwise_resultÚsdtyperc   s   &&&&&  r   Ú_cast_pointwise_resultÚ'TestMaskedArrays._cast_pointwise_resultÕ   sC   € Ü—’˜cÓ"ˆØ#ˆà�;‰;˜#ÔØð ô ð
 $Ÿ?™?¨6Ó2�àˆr   c                ó¾   <€ VP                   P                  R 8X  d2   \        P                  P	                  RR7      pVP                  V4       \        SV `  W4       R# )r.   z‡Inconsistency between floordiv and divmod; we raise for floordiv but not for divmod. This matches what we do for non-masked bool dtype.©ÚreasonN)r+   r0   ÚpytestÚmarkÚxfailÚapplymarkerÚsuperÚtest_divmod_series_array)rR   r2   r5   r*   r“   Ú	__class__s   &&&& €r   r—   Ú)TestMaskedArrays.test_divmod_series_arrayã   sN   ø€ Ø�:‰:�?‰?˜cÔ!Ü—;‘;×$Ñ$ð)ð %ó ˆDð
 ×Ñ Ô%Ü‰Ñ(¨Ö=r   c                ó@   <€ V ^8„  d   QhRS[ P                  RS[RS[/# ©r;   Úserr{   Úreturn©r   ÚSeriesr�   Úbool)r‚   rƒ   s   "€r   r„   r…   í   s&   ø€ ÷ ñ ¡r§y¡yð ¹3ð Á4ñ r   c                óx   € VR9   d3   VP                   P                  R8w  d   \        P                  ! RR7       R# )Úanyr.   z-Tested in tests/reductions/test_reductions.pyr�   T©r¢   Úall)r+   r0   r’   Úskip©rR   rœ   r{   s   &&&r   Ú_supports_reductionÚ$TestMaskedArrays._supports_reductioní   s)   € Ø�nÔ$¨¯©¯©¸3Ô)>Ü�KŠKÐNÕOÙr   c                ó@   <€ V ^8„  d   QhRS[ P                  RS[RS[/# ©r;   rœ   r{   Úskipnarž   )r‚   rƒ   s   "€r   r„   r…   ò   s&   ø€ ÷ 1ñ 1¡§	¡	ð 1±Cð 1Áñ 1r   c                ó>  € R pVP                   P                  R8X  d   VP                   P                  pM$VP                   P                  R8X  d
   VR9   d   RpVP                  4       P	                  V4      pVR8X  d"   \        W4      ! 4       p\        WR4      ! 4       pMg\        W4      ! VR7      p\        WR4      ! VR7      pV'       g<   VP                  4       P                  4       '       d   VR9  d   \        P                  p\        P                  ! Wg4       R# )	Úint64r-   r.   r    Úcount©r«   N©ÚminÚmaxr£   )r+   r0   Únumpy_dtypeÚdropnarŠ   ÚgetattrÚisnar¢   r   r   r_   Úassert_almost_equal)rR   rœ   r{   r«   Ú	cmp_dtypeÚaltrb   rc   s   &&&&    r   Úcheck_reduceÚTestMaskedArrays.check_reduceò   sÒ   € ð ˆ	Ø�9‰9�>‰>˜SÔ ð Ÿ	™	×-Ñ-‰IØ�Y‰Y�^‰^˜sÔ"Ø˜.Ô(Ø"�	ð
 �j‰j‹l×!Ñ! )Ó,ˆØ�gÔÜ˜SÔ*Ó,ˆFÜ˜sÔ,Ó.‰Hä˜SÔ*°&Ô9ˆFÜ˜sÔ,°FÔ;ˆHß˜cŸh™h›jŸn™n×.Ò.°7À.Ô3PÜŸ5™5�Ü
×Ò˜vÖ0r   c                ó&   <€ V ^8„  d   QhRS[ RS[/# )r;   r{   r«   )r�   r    )r‚   rƒ   s   "€r   r„   r…     s   ø€ ÷ &ñ &¹#ð &Átñ &r   c                óL  € \        VP                  4      '       d   VP                  P                  pV# VR	9   d   RpV# VR
9   d   VP                  P                  pV# VP                  R9   d   VP                  P                  pV# \        VP                  4      '       d9   \	        4       '       d   \
        '       d   V'       d   \        '       g   RpV# RpV# \        VP                  4      '       d9   \	        4       '       d   \
        '       d   V'       d   \        '       g   RpV# RpV# VP                  P                  R8X  dT   VR9   d   RpV# VR9   d7   \	        4       '       d   \
        '       d   V'       d   \        '       g   RMRpV# \        R4      h\        R4      h)ÚmeanÚFloat64ÚInt64ÚUInt64ÚInt32ÚUInt32r.   rN   znot supposed to reach this)r¾   ÚmedianÚvarÚstdÚskewÚkurtÚsem)r²   r±   )rÀ   rÁ   r°   )ÚsumÚprod)
r   r+   Únamer   r   r   r   r   r0   rz   )rR   Úarrr{   r«   r¸   s   &&&& r   Ú_get_expected_reduction_dtypeÚ.TestMaskedArrays._get_expected_reduction_dtype  s”  € Ü˜#Ÿ)™)×$Ò$ØŸ	™	Ÿ™ˆIðH ÐðG ÐOÔOØ!ˆIðD ÐðC ˜Ô&ØŸ	™	Ÿ™ˆIð@ Ðð? �Y‰YÐ-Ô-ØŸ	™	Ÿ™ˆIð< Ðô; % S§Y¡Y×/Ò/ô (×)Ò)·>³>Ïß“tð ð ð6 Ðð/ ð	 ð6 Ðô+ ' s§y¡y×1Ò1ô (×)Ò)·>³>Ïß“tð ð ð( Ðð! ð	 ð( Ðð �Y‰Y�^‰^˜sÔ"Ø˜.Ô(Ø%�	ð Ðð ˜OÔ+ô ,×-Ò-·~³~ÏVß›4ñ ð !ð	 ð Ðô  Ð <Ó=Ð=äÐ8Ó9Ð9r   c                ó@   <€ V ^8„  d   QhRS[ P                  RS[RS[/# r›   rž   )r‚   rƒ   s   "€r   r„   r…   5  s&   ø€ ÷ ñ ©"¯)©)ð ¹cð Ádñ r   c                ó   € R # )Tr   r¦   s   &&&r   Ú_supports_accumulationÚ'TestMaskedArrays._supports_accumulation5  s   € Ùr   c                ó@   <€ V ^8„  d   QhRS[ P                  RS[RS[/# rª   rž   )r‚   rƒ   s   "€r   r„   r…   8  s&   ø€ ÷ 11ñ 11¡B§I¡Ið 11¹ð 11ÁTñ 11r   c           	     ó  € ^@p\         '       d   VP                  P                  ^8X  g   ^ pVP                  P                  P	                  R4      '       d   RV 2pM“VP                  P                  P	                  R4      '       d   RV 2pMbVP                  P                  P	                  R4      '       d   VP                  pM*VP                  P
                  R8X  d   VR9   d   RpMRV 2pXR8X  d,   VR	8X  d%   V'       d   \        P                  ! R
V RV 24       VR8X  d   M3VR9   d   VP                  pMVR	8X  d   VR,          pM\        V R24      h\        W4      ! VR7      p\        P                  ! \        P                  ! \        VP                  R4      V4      ! VR7      RR7      4      p\        P                  V\        P                   ! V4      &   VP                  V4      p\"        P$                  ! Wg4       R# )é@   ÚUÚUIntÚIÚIntÚFr.   rN   ÚFloat32Úcumprodz4Float32 precision lead to large differences with op z and skipna=Úcumsum:Né   Nz not supportedr¯   r[   r¿   r/   N)ÚcumminÚcummax)rá   rà   )Úis_windows_or_32bitr+   ÚitemsizerÌ   Ú
startswithr0   r’   r¥   ry   rµ   r   rŸ   r1   rŠ   r   r#   Úisnanr_   Úassert_series_equal)rR   rœ   r{   r«   ÚlengthÚexpected_dtyperb   rc   s   &&&&    r   Úcheck_accumulateÚ!TestMaskedArrays.check_accumulate8  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•(‰Cä%¨¨	°Ð&@ÓAÐAä˜Ô&¨fÔ5ˆÜ—9’9Ü�HŠHÜ˜Ÿ
™
 9Ó-¨wÔ7¸vÔFØôó
ˆô (*§u¡uˆ”—’˜(Ó#Ñ$Ø—?‘? >Ó2ˆÜ
×Ò˜vÖ0r   c                ó&   <€ \         SV `  V4       R # r(   )r–   Ú8test_loc_setitem_with_expansion_preserves_ea_index_dtype)rR   r2   r*   r˜   s   &&&€r   rì   ÚITestMaskedArrays.test_loc_setitem_with_expansion_preserves_ea_index_dtypek  s   ø€ Ü‰ÑHÈÖNr   r   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú_combine_le_expected_dtyper’   ÚfixturerS   r“   Úparametrizerd   rk   r~   r�   r—   r§   rº   rÎ   rÒ   ré   rì   Ú__static_attributes__Ú__classdictcell__Ú__classcell__)r˜   rƒ   s   @@r   rM   rM   ¤   s©   ù‡ € Ø!*Ðà‡^‚^˜DÔ!ñ&ó "ð&ð ‡[�[×Ñ˜[¨4°Ð*:Ó;ñ6ó <ð6ò
6ò÷"ð õ>÷ð ÷
1ð 1÷6&ð &÷Pð ÷11ð 11÷fOõ Or   rM   rÍ   TFr    g       @c                 ó  € \         P                  \         P                  .pV P                  V4      pVP                  V P                  8X  g   Q h\        ;QJ d    R  V 4       F  '       d   K   RM	  RM! R  V 4       4      '       g   Q hR# )c              3   óD   "  € T F  q\         P                  J x € K  	  R # 5ir(   r   )Ú.0rB   s   & r   Ú	<genexpr>ÚLtest_cast_pointwise_result_all_na_respects_original_dtype.<locals>.<genexpr>w  s   é € Ð*¡6˜a”B—E‘E�z£6ùs   ‚ FTN)r   r   r�   r+   r¤   )rÍ   Úvaluesrb   s   &  r   Ú9test_cast_pointwise_result_all_na_respects_original_dtyperþ   o  sb   € ô
 �e‰e”R—U‘Uˆ^€FØ×'Ñ'¨Ó/€FØ�<‰<˜3Ÿ9™9Ô$Ð$Ð$ß‹3Ñ*¡6Ó*�3�3Š3Ñ*¡6Ó*×*Ò*Ð*Ò*r   )7Ú__doc__Únumpyr#   r’   Úpandas.compatr   r   Úpandas.compat.numpyr   Ú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“   ÚfilterwarningsÚ
pytestmarkr   r!   r%   ró   r+   r2   r5   r8   r=   r?   rF   rK   ÚExtensionTestsrM   rô   r1   rþ   r   r   r   Ú<module>r     s  ðñó  Û ÷õ /÷ñ ó Ý Ý 3÷÷	÷ 	ó 	õ (á*Ó,×CÐC°^Ô1C×PÐPÈDÌÐ ð ‡K�K×ÑØCóð ‡K�K×ÑÐJÓKà
‡K�K×ÑÐUÓVð€
ò7òCòSð ‡‚àØØØØØØØØØØðôñóðð ‡�ñ'ó ð'ð ‡�ñ2ó ð2ð ‡�ñ-ó ð-ð ‡�ñ,ó ð,ð ‡�ñ0ó ð0ð ‡�ñ2ó ð2ð
 ‡�ñ=ó ð=ô$HO�t×*Ñ*ô HOðV ‡�×ÑØ	ˆB�HŠH�d˜E�]Ó# R§X¢X¨q°!¨fÓ%5°r·x²xÀÀcÀ
Ó7KÐLóñ+óò+r   