Ë
    u™ãj›N  ã                   óŠ  — d Z ddlZddlZddlm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 e
j"                  Zddedefd	„Z ej*                  g d
¢¬«      d„ «       Zej*                  d„ «       Zej*                  d„ «       Zej*                  d„ «       Zej*                  d„ «       Zej*                  d„ «       Zej*                  d„ «       Zej*                  d„ «       Zej*                  d„ «       Zej*                  d„ «       Zej@                  jC                  d«      Z" G d„ dejF                  «      Z$ G d„ dejJ                  «      Z&y)aÖ  
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/`.

Note: we do not bother with base.BaseIndexTests because NumpyExtensionArray
will never be held in an Index.
é    N)ÚNumpyEADtype)Úis_object_dtype)ÚNumpyExtensionArray)ÚbaseÚattrÚobjc                 óL  — | dk(  r‘t        |dd«      }t        |dd«      }t        |t        «      r,t        |t        «      s|j                  |j                  «      }n;t        |t        «      r+t        |t        «      s|j                  |j                  «      }t        | |||«       y)zi
    patch tm.assert_attr_equal so NumpyEADtype("object") is closed enough to
    np.dtype("object")
    ÚdtypeN)ÚgetattrÚ
isinstancer   ÚastypeÚnumpy_dtypeÚorig_assert_attr_equal)r   ÚleftÚrightr   ÚlattrÚrattrs         úl/var/www/html/python-recuperauto-other/env/lib/python3.12/site-packages/pandas/tests/extension/test_numpy.pyÚ_assert_attr_equalr   !   sƒ   € ð
 ˆw‚Ü˜˜g tÓ,ˆÜ˜˜w¨Ó-ˆÜ�eœ\Ô*´:¸eÄ\Ô3RØ—;‘;˜u×0Ñ0Ó1‰DÜ˜œ|Ô,´ZÀÄ|Ô5TØ—L‘L ×!2Ñ!2Ó3ˆEä˜4  u¨cÕ2ó    )ÚcomplexÚfloatÚobject)Úparamsc                 óR   — t        t        j                  | j                  «      «      S ©N)r   Únpr
   Úparam)Úrequests    r   r
   r
   1   s   € äœŸ™ §¡Ó/Ó0Ð0r   c              #   óÖ   K  — | j                  «       5 }|j                  t        dd«       |j                  t        j                  dt
        «       d–— ddd«       y# 1 sw Y   yxY w­w)a  
    A monkeypatch to tells pandas to let us in.

    By default, passing a NumpyExtensionArray to an index / series / frame
    constructor will unbox that NumpyExtensionArray to an ndarray, and treat
    it as a non-EA column. We don't want people using EAs without
    reason.

    The mechanism for this is a check against ABCNumpyExtensionArray
    in each constructor.

    But, for testing, we need to allow them in pandas. So we patch
    the _typ of NumpyExtensionArray, so that we evade the ABCNumpyExtensionArray
    check.
    Ú_typÚ	extensionÚassert_attr_equalN)ÚcontextÚsetattrr   ÚtmÚ	assertersr   )ÚmonkeypatchÚms     r   Úallow_in_pandasr*   6   sT   è ø€ ð" 
×	Ñ	Ó	ð  !Ø	�	‰	Ô% v¨{Ô;Ø	�	‰	”"—,‘,Ð 3Ô5GÔHÛ÷÷ ñ üs   ‚A)“AAÁ	A)ÁA&Á"A)c                 ó6  — |j                   dk(  rBt        j                  t        d«      D �cg c]  }|f‘Œ c}«      j                  }t        |«      S t        j                  dd|j                  ¬«      }|j                  dk(  r||dz  z   }t        |«      S c c}w )Nr   é
   é   é   ©r
   Úcy              ð?)
r   ÚpdÚSeriesÚrangeÚ_valuesr   ÚarangeÚ_dtypeÚkindr   )r*   r
   ÚiÚarrs       r   Údatar:   M   s„   € à×Ñ˜HÒ$Ü�i‰i¤u¨R£yÖ1 !˜!šÒ1Ó2×:Ñ:ˆô
 ˜sÓ#Ð#ô �i‰i˜˜2 U§\¡\Ô2ˆØ�:‰:˜ÒØ˜˜r™Ñ"ˆCÜ˜sÓ#Ð#ùò 2s   ¬
Bc                 óä   — |j                   dk(  r4t        t        j                  t        j                  dgt
        ¬«      «      S t        t        j                  t        j                  dg«      «      S )Nr   ©r-   r/   g      ð?©r   r   r   ÚarrayÚnanr   ©r*   r
   s     r   Údata_missingrA   X   sJ   € à×Ñ˜HÒ$Ü"¤2§8¡8¬R¯V©V°T¨NÄ&Ô#IÓJÐJÜœrŸx™x¬¯©°¨Ó6Ó7Ð7r   c                  ó   — d„ } | S )Nc                 óZ   — t        j                  | «      xr t        j                  |«      S r   )r   Úisnan)ÚaÚbs     r   Úcmpzna_cmp.<locals>.cmpa   s   € Ü�x‰x˜‹{Ò*œrŸx™x¨›{Ð*r   © )rG   s    r   Úna_cmprI   _   s   € ò+ð €Jr   c                 ó²   — |j                   dk(  r)t        t        j                  g d¢t        ¬«      dd «      S t        t        j                  g d¢«      «      S )ziLength-3 array with a known sort order.

    This should be three items [B, C, A] with
    A < B < C
    r   )rH   ©é   ©é   r<   r/   r-   N)r-   rL   r   )r   r   r   r>   r   r@   s     r   Údata_for_sortingrO   g   sH   € ð ×Ñ˜HÒ$ô #¤2§8¡8Ò,BÌ&Ô#QÐRSÐRTÐ#UÓVÐVÜœrŸx™xª	Ó2Ó3Ð3r   c                 óè   — |j                   dk(  r5t        t        j                  dt        j                  dgt
        ¬«      «      S t        t        j                  dt        j                  dg«      «      S )zvLength-3 array with a known sort order.

    This should be three items [B, NA, A] with
    A < B and NA missing.
    r   r<   )r   r/   r-   r   r=   r@   s     r   Údata_missing_for_sortingrQ   u   sQ   € ð ×Ñ˜HÒ$Ü"¤2§8¡8¨T´2·6±6¸4Ð,@ÌÔ#OÓPÐPÜœrŸx™x¨¬B¯F©F°A¨Ó7Ó8Ð8r   c                 óü   — |j                   dk(  rd\  }}}nt        j                  d«      \  }}}t        t        j                  ||t        j
                  t        j
                  ||||g|j                   ¬«      «      S )z“Data for factorization, grouping, and unique tests.

    Expected to be like [B, B, NA, NA, A, A, B, C]

    Where A < B < C and NA is missing
    r   )r<   rK   rM   rN   r/   )r   r   r5   r   r>   r?   )r*   r
   rE   rF   r0   s        r   Údata_for_groupingrS   �   sj   € ð ×Ñ˜HÒ$Ø"‰ˆˆ1‰aä—)‘)˜A“,‰ˆˆ1ˆaÜÜ
�‰�!�QœŸ™¤§¡¨¨1¨a°Ð3¸5×;LÑ;LÔMóð r   c                 ó®   — | j                   dk(  rt        j                  | › d�«       t        j                  d«      dz  }t        j                  || ¬«      S )NÚOz is not a numeric dtyper,   rL   r/   )r7   ÚpytestÚskipr   Úonesr   Ú_from_sequence)r
   r9   s     r   Údata_for_twosrZ   ’   sF   € à‡z�z�SÒÜ�‰�u�gÐ4Ð5Ô6Ü
�'‰'�"‹+˜‰/€CÜ×-Ñ-¨c¸Ô?Ð?r   c                 ór   — | dk(  r2t         j                  j                  d¬«      }|j                  |«       yy)a”  
    Tests for NumpyExtensionArray with nested data. Users typically won't create
    these objects via `pd.array`, but they can show up through `.array`
    on a Series with nested data. Many of the base tests fail, as they aren't
    appropriate for nested data.

    This fixture allows these tests to be skipped when used as a usefixtures
    marker to either an individual test or a test class.
    r   zFails for object dtype©ÚreasonN)rV   ÚmarkÚxfailÚapplymarker)r
   r   r^   s      r   Úskip_numpy_objectra   š   s7   € ð �ÒÜ�{‰{× Ñ Ð(@Ð ÓAˆØ×Ñ˜DÕ!ð r   ra   c            
       ó`  ‡ — e Zd Zej                  j                  d¬«      d„ «       Zeˆ fd„«       Zˆ fd„Z	ˆ fd„Z
eˆ fd„«       Zeˆ fd„«       Zeˆ fd	„«       Zeˆ fd
„«       Zeˆ fd„«       Zeˆ fd„«       Zeˆ fd„«       Zej                  j%                  d¬«      ˆ fd„«       Zˆ fd„Zeˆ fd„«       ZdZdZdZdZˆ fd„Zd„ Zˆ fd„Zˆ fd„Zeˆ fd„«       Zdej@                  de!de"fd„Z#dej@                  de!de"fd„Z$ej                  j                  d«      ej                  jK                  ddd g«      d!„ «       «       Z&eˆ fd"„«       Z'eˆ fd#„«       Z(eˆ fd$„«       Z)ˆ fd%„Z*ej                  jK                  d&ejV                  jY                  d'd(gd)d*ggd)d*g¬+«      ejV                  j[                  g d,¢«      ejV                  jY                  g d-¢«      ejV                  j[                  g d.¢«      g«      ej                  jK                  d/d0d1g«      ˆ fd2„«       «       Z.eˆ fd3„«       Z/eˆ fd4„«       Z0eej                  jK                  d5d6dg«      ˆ fd7„«       «       Z1eˆ fd8„«       Z2eej                  jK                  d9 e3jh                  g d:¢«       ejh                  g d:¢d;¬<«      gd=d>g¬?«      ˆ fd@„«       «       Z5eej                  jK                  dAg dB¢ ejh                  g dB¢dC¬<«       e3jh                  g dB¢«      gg dD¢¬?«      ˆ fdE„«       «       Z6eˆ fdF„«       Z7eˆ fdG„«       Z8dH„ Z9ej                  j%                  dI¬«      ˆ fdJ„«       Z:eej                  jK                  dKdLdMg«      ˆ fdN„«       «       Z;ˆ fdO„Z<ˆ fdP„Z=ej                  j}                  dQ«      ˆ fdR„«       Z?ˆ xZ@S )SÚTestNumpyExtensionArrayzWe don't register our dtyper\   c                  ó   — y r   rH   )Úselfr:   s     r   Útest_from_dtypez'TestNumpyExtensionArray.test_from_dtype®   ó   € ð 	r   c                 ó&   •— t         ‰| �  ||«       y r   )ÚsuperÚ)test_series_constructor_scalar_with_index)re   r:   r
   Ú	__class__s      €r   rj   zATestNumpyExtensionArray.test_series_constructor_scalar_with_index³   s   ø€ ô 	‰Ñ9¸$ÀÕFr   c                 óâ   •— |j                   j                  dk(  rF|j                  t        j                  j                  d|j                   j                  › �¬«      «       t        ‰| �  |«       y )Nr   z:NumpyExtensionArray expectedly clashes with a NumPy name: r\   )r
   r   r`   rV   r^   r_   ri   Útest_check_dtype)re   r:   r   Úusing_infer_stringrk   s       €r   rm   z(TestNumpyExtensionArray.test_check_dtype¸   sc   ø€ Ø�:‰:×!Ñ! XÒ-Ø×ÑÜ—‘×!Ñ!ð#Ø#'§:¡:×#9Ñ#9Ð":ð<ð "ó ôô 	‰Ñ  Õ&r   c                 ó^   •— |j                   dk(  rt        |«      sJ ‚y t        ‰| �  |«       y )Nr   )r   r   ri   Útest_is_not_object_type)re   r
   r   rk   s      €r   rp   z/TestNumpyExtensionArray.test_is_not_object_typeÂ   s.   ø€ Ø×Ñ Ò(ô # 5Ô)Ð)Ñ)ä‰GÑ+¨EÕ2r   c                 ó$   •— t         ‰| �  |«       y r   )ri   Útest_getitem_scalar©re   r:   rk   s     €r   rr   z+TestNumpyExtensionArray.test_getitem_scalarÊ   s   ø€ ô 	‰Ñ# DÕ)r   c                 ó$   •— t         ‰| �  |«       y r   )ri   Útest_shift_fill_valuers   s     €r   ru   z-TestNumpyExtensionArray.test_shift_fill_valueÏ   s   ø€ ô 	‰Ñ% dÕ+r   c                 ó$   •— t         ‰| �  |«       y r   )ri   Útest_fillna_limit_frame©re   rA   rk   s     €r   rw   z/TestNumpyExtensionArray.test_fillna_limit_frameÔ   s   ø€ ô 	‰Ñ'¨Õ5r   c                 ó$   •— t         ‰| �  |«       y r   )ri   Útest_fillna_limit_seriesrx   s     €r   rz   z0TestNumpyExtensionArray.test_fillna_limit_seriesÚ   s   ø€ ô 	‰Ñ(¨Õ6r   c                 ó$   •— t         ‰| �  |«       y r   )ri   Útest_fillna_copy_framerx   s     €r   r|   z.TestNumpyExtensionArray.test_fillna_copy_frameà   s   ø€ ô 	‰Ñ& |Õ4r   c                 ó$   •— t         ‰| �  |«       y r   )ri   Útest_fillna_copy_seriesrx   s     €r   r~   z/TestNumpyExtensionArray.test_fillna_copy_serieså   s   ø€ ô 	‰Ñ'¨Õ5r   c                 ó&   •— t         ‰| �  ||«       y r   )ri   Útest_searchsorted)re   rO   Ú	as_seriesrk   s      €r   r€   z)TestNumpyExtensionArray.test_searchsortedê   s   ø€ ô
 	‰Ñ!Ð"2°IÕ>r   z*NumpyExtensionArray.diff may fail on dtypec                 ó$   •— t         ‰| �  ||«      S r   )ri   Ú	test_diff)re   r:   Úperiodsrk   s      €r   rƒ   z!TestNumpyExtensionArray.test_diffñ   s   ø€ ä‰wÑ   wÓ/Ð/r   c                 óÀ   •— |j                   j                  t        k(  r1t        j                  j                  d¬«      }|j                  |«       t        ‰| �!  |«       y )Nz$Dimension mismatch in np.concatenater\   )	r
   r   r   rV   r^   r_   r`   ri   Útest_insert©re   r:   r   r^   rk   s       €r   r†   z#TestNumpyExtensionArray.test_insertõ   sH   ø€ Ø�:‰:×!Ñ!¤VÒ+Ü—;‘;×$Ñ$Ð,RÐ$ÓSˆDØ×Ñ Ô%ä‰Ñ˜DÕ!r   c                 ó&   •— t         ‰| �  ||«       y r   )ri   Útest_insert_invalid©re   r:   Úinvalid_scalarrk   s      €r   r‰   z+TestNumpyExtensionArray.test_insert_invalidü   s   ø€ ô 	‰Ñ# D¨.Õ9r   Nc                 ór   •— d }|j                   j                  dv rt        }|| _        t        ‰| �  |«       y ©NÚOc)r
   r7   Ú	TypeErrorÚ
divmod_excri   Útest_divmod)re   r:   r�   rk   s      €r   r‘   z#TestNumpyExtensionArray.test_divmod  s1   ø€ Øˆ
Ø�:‰:�?‰?˜dÑ"Ü"ˆJØ$ˆŒÜ‰Ñ˜DÕ!r   c                 óª   — t        j                  |«      }d }|j                  j                  dv rt        }|| _        | j                  |t        |«       y r�   )r1   r2   r
   r7   r�   r�   Ú_check_divmod_opÚdivmod)re   r:   ÚserÚexcs       r   Útest_divmod_series_arrayz0TestNumpyExtensionArray.test_divmod_series_array  sB   € Ü�i‰i˜‹oˆØˆØ�:‰:�?‰?˜dÑ"ÜˆCØ!ˆDŒOØ×Ñ˜c¤6¨4Õ0r   c                 óH  •— |}d }|j                   j                  t        k(  rF|dv r;t        j                  j                  d¬«      }|j                  j                  |«       t        }n#|j                   j                  dk(  r
|dv rt        }|| _
        t        ‰| �1  ||«       y ©N)Ú__mul__Ú__rmul__z9the Series.combine step raises but not the Series method.r\   r0   ©Ú__floordiv__Ú__rfloordiv__Ú__mod__Ú__rmod__)r
   r   r   rV   r^   r_   ÚnodeÚ
add_markerr�   r7   Úseries_scalar_excri   Útest_arith_series_with_scalar)re   r:   Úall_arithmetic_operatorsr   Úopnamer£   r^   rk   s          €r   r¤   z5TestNumpyExtensionArray.test_arith_series_with_scalar  s›   ø€ Ø)ˆØ ÐØ�:‰:×!Ñ!¤VÒ+ØÐ0Ñ0Ü—{‘{×(Ñ(ØVð )ó �ð —‘×'Ñ'¨Ô-Ü )ÑØ�Z‰Z�_‰_ Ò#¨ð 3
ñ )
ô !*ÐØ!2ˆÔÜ‰Ñ-¨dÐ4LÕMr   c                 óÒ   •— |}d }|j                   j                  t        k(  r|dvrt        }n#|j                   j                  dk(  r
|dv rt        }|| _        t        ‰| �  ||«       y )N)Ú__add__Ú__radd__r0   rœ   )r
   r   r   r�   r7   Úseries_array_excri   Útest_arith_series_with_array)re   r:   r¥   r¦   rª   rk   s        €r   r«   z4TestNumpyExtensionArray.test_arith_series_with_array)  sj   ø€ Ø)ˆØÐØ�:‰:×!Ñ!¤VÒ+°Ð>UÑ0UÜ(ÑØ�Z‰Z�_‰_ Ò#¨ð 3
ñ )
ô  )ÐØ 0ˆÔÜ‰Ñ,¨TÐ3KÕLr   c                 óH  •— |}d }|j                   j                  t        k(  rF|dv r;t        j                  j                  d¬«      }|j                  j                  |«       t        }n#|j                   j                  dk(  r
|dv rt        }|| _
        t        ‰| �1  ||«       y r™   )r
   r   r   rV   r^   r_   r¡   r¢   r�   r7   Úframe_scalar_excri   Útest_arith_frame_with_scalar)re   r:   r¥   r   r¦   r­   r^   rk   s          €r   r®   z4TestNumpyExtensionArray.test_arith_frame_with_scalar8  s›   ø€ à)ˆØÐØ�:‰:×!Ñ!¤VÒ+ØÐ0Ñ0Ü—{‘{×(Ñ(ØVð )ó �ð —‘×'Ñ'¨Ô-Ü(ÑØ�Z‰Z�_‰_ Ò#¨ð 3
ñ )
ô  )ÐØ 0ˆÔÜ‰Ñ,¨TÐ3KÕLr   r•   Úop_nameÚreturnc                 ó>   — |j                   j                  dk(  r|dv S y)NrU   )ÚsumÚminÚmaxÚanyÚallÚcountT)r
   r7   )re   r•   r¯   s      r   Ú_supports_reductionz+TestNumpyExtensionArray._supports_reductionM  s!   € Ø�9‰9�>‰>˜SÒ ØÐJÐJÐJØr   Úskipnac                 óú   — t        ||«      }|j                  j                  }|j                  |«      }t        ||«      }|dk(  r |«       } |«       }	n ||¬«      } ||¬«      }	t	        j
                  ||	«       y )Nr·   )r¹   )r   r
   r   r   r&   Úassert_almost_equal)
re   r•   r¯   r¹   Úres_opÚ	cmp_dtypeÚaltÚexp_opÚresultÚexpecteds
             r   Úcheck_reducez$TestNumpyExtensionArray.check_reduceR  ss   € Ü˜˜gÓ&ˆð —I‘I×)Ñ)ˆ	Ø�j‰j˜Ó#ˆÜ˜˜gÓ&ˆØ�gÒÙ“XˆFÙ“x‰Há 6Ô*ˆFÙ VÔ,ˆHÜ
×Ñ˜v xÕ0r   zTODO: tests not written yetTFc                  ó   — y r   rH   )re   r:   Úall_numeric_reductionsr¹   s       r   Útest_reduce_framez)TestNumpyExtensionArray.test_reduce_frameb  rg   r   c                 ó$   •— t         ‰| �  |«       y r   )ri   Útest_fillna_seriesrx   s     €r   rÇ   z*TestNumpyExtensionArray.test_fillna_seriesg  s   ø€ ô 	‰Ñ" <Õ0r   c                 ó$   •— t         ‰| �  |«       y r   )ri   Útest_fillna_framerx   s     €r   rÉ   z)TestNumpyExtensionArray.test_fillna_framel  s   ø€ ô 	‰Ñ! ,Õ/r   c                 ó$   •— t         ‰| �  |«       y r   )ri   Útest_fillna_readonlyrx   s     €r   rË   z,TestNumpyExtensionArray.test_fillna_readonlyq  s   ø€ ô 	‰Ñ$ \Õ2r   c                 ó¾   •— |j                   j                  dk(  r4|j                  t        j                  j                  dt        ¬«      «       t        ‰| �!  |«       y )Nr0   z3no cython backfill implementation for complex dtype©r]   Úraises)	r
   r7   r`   rV   r^   r_   r�   ri   Útest_fillna_no_op_returns_copy)re   r:   r   rk   s      €r   rÏ   z6TestNumpyExtensionArray.test_fillna_no_op_returns_copyv  sM   ø€ Ø�:‰:�?‰?˜cÒ!à×ÑÜ—‘×!Ñ!ØPÜ$ð "ó ôô 	‰Ñ.¨tÕ4r   ÚindexÚAÚBrE   rF   )Únames))rÑ   rE   )rÑ   rF   )rÒ   rF   ))rÑ   rÒ   )rE   rF   r0   ©r   r-   rL   ))rÑ   rE   r-   )rÑ   rF   r   )rÑ   rE   r   )rÒ   rE   r   )rÒ   r0   r-   r   ÚseriesÚframec                 ó€  •— |j                   j                  dk(  r“|d t        t        |«      t        |«      «       j	                  «       }d}|j
                  D ]  }|t        |«      z  }Œ |j                  |k7  r4|j                  t        j                  j                  dt        ¬«      «       t        ‰| �5  |||«       y )Nr0   r-   z4complex NaN fill survives astype(object) as (nan+0j)rÍ   )r
   r7   r³   ÚlenÚremove_unused_levelsÚlevelsÚsizer`   rV   r^   r_   ÚAssertionErrorri   Útest_unstack)	re   r:   rÐ   r   r   ÚtrimmedÚn_cellsÚlevelrk   s	           €r   rÝ   z$TestNumpyExtensionArray.test_unstack�  s¬   ø€ ð& �:‰:�?‰?˜cÒ!ØÐ8œc¤# e£*¬c°$«iÓ8Ð9×NÑNÓPˆGØˆGØ Ÿ™ò &�Øœ3˜u›:Ñ%‘ð&à�|‰|˜wÒ&ð ×#Ñ#Ü—K‘K×%Ñ%ØUÜ-ð &ó ôô 	‰Ñ˜T 5¨#Õ.r   c                 ó&   •— t         ‰| �  ||«       y r   )ri   Útest_setitem_invalidrŠ   s      €r   râ   z,TestNumpyExtensionArray.test_setitem_invalid§  s   ø€ ô 	‰Ñ$ T¨>Õ:r   c                 ó&   •— t         ‰| �  ||«       y r   )ri   Ú test_setitem_sequence_broadcasts©re   r:   Úbox_in_seriesrk   s      €r   rä   z8TestNumpyExtensionArray.test_setitem_sequence_broadcasts¬  s   ø€ ô 	‰Ñ0°°}ÕEr   ÚsetterÚlocc                 ó&   •— t         ‰| �  ||«       y r   )ri   Útest_setitem_mask_broadcast)re   r:   rç   rk   s      €r   rê   z3TestNumpyExtensionArray.test_setitem_mask_broadcast²  s   ø€ ô
 	‰Ñ+¨D°&Õ9r   c                 ó$   •— t         ‰| �  |«       y r   )ri   Ú&test_setitem_scalar_key_sequence_raisers   s     €r   rì   z>TestNumpyExtensionArray.test_setitem_scalar_key_sequence_raise¹  s   ø€ ô 	‰Ñ6°tÕ<r   Úmask)TTTFFÚbooleanr/   únumpy-arrayzboolean-array)Úidsc                 ó(   •— t         ‰| �  |||«       y r   )ri   Útest_setitem_mask)re   r:   rí   ræ   rk   s       €r   rò   z)TestNumpyExtensionArray.test_setitem_maskÁ  s   ø€ ô 	‰Ñ! $¨¨mÕ<r   ÚidxrÔ   ÚInt64)Úlistzinteger-arrayrï   c                 ó(   •— t         ‰| �  |||«       y r   )ri   Útest_setitem_integer_array)re   r:   ró   ræ   rk   s       €r   r÷   z2TestNumpyExtensionArray.test_setitem_integer_arrayÍ  s   ø€ ô 	‰Ñ*¨4°°mÕDr   c                 ó&   •— t         ‰| �  ||«       y r   )ri   Útest_setitem_slicerå   s      €r   rù   z*TestNumpyExtensionArray.test_setitem_sliceÖ  s   ø€ ä‰Ñ" 4¨Õ7r   c                 ó$   •— t         ‰| �  |«       y r   )ri   Útest_setitem_loc_iloc_slicers   s     €r   rû   z3TestNumpyExtensionArray.test_setitem_loc_iloc_sliceÚ  s   ø€ ä‰Ñ+¨DÕ1r   c                 óÄ  — t        j                  dt        j                  |«      i«      x}}t        j                  |j                  ¬«      } ||«      }|d   |j                  |df<   |j
                  j                  t        k7  rCt        |t        «      r|t        d «      k7  r%t        j                  d|j                  «       i«      }t        j                  ||d¬«       y )Nr:   )rÐ   F)Úcheck_column_type)r1   Ú	DataFramer2   rÐ   rè   r
   r   r   r   ÚsliceÚto_numpyr&   Úassert_frame_equal)re   r:   Úfull_indexerÚdfrÁ   rÀ   Úkeys          r   Ú,test_setitem_with_expansion_dataframe_columnzDTestNumpyExtensionArray.test_setitem_with_expansion_dataframe_columnÞ  sª   € äŸ™ f¬b¯i©i¸«oÐ%>Ó?Ð?ˆˆXÜ—‘ B§H¡HÔ-ˆñ ˜2ÓˆØ"$ V¡*ˆ�
‰
�3˜�;Ñð �:‰:×!Ñ!¤VÒ+Ü˜c¤5Ô)¨S´E¸$³KÒ-?ÜŸ<™<¨°·±³Ð(AÓB�Ü
×Ñ˜f hÀ%ÖHr   zNumpyEADtype is unpackedc                 ó$   •— t         ‰| �  |«       y r   )ri   Ú#test_index_from_listlike_with_dtypers   s     €r   r  z;TestNumpyExtensionArray.test_index_from_listlike_with_dtypeï  s   ø€ ä‰Ñ3°DÕ9r   Úenginer0   Úpythonc                 ó(   •— t         ‰| �  |||«       y r   )ri   Útest_EA_types)re   r  r:   r   rk   s       €r   r  z%TestNumpyExtensionArray.test_EA_typesó  s   ø€ ô 	‰Ñ˜f d¨GÕ4r   c                 ó¬   •— t        |d   t        «      r1t        j                  j	                  d¬«      }|j                  |«       t        ‰| �  |«       y )NéÿÿÿÿzUnpacks tupler\   )r   ÚtuplerV   r^   r_   r`   ri   Ú8test_loc_setitem_with_expansion_preserves_ea_index_dtyper‡   s       €r   r  zPTestNumpyExtensionArray.test_loc_setitem_with_expansion_preserves_ea_index_dtypeø  sC   ø€ Ü�d˜2‘h¤Ô&Ü—;‘;×$Ñ$¨OÐ$Ó<ˆDØ×Ñ Ô%Ü‰ÑHÈÕNr   c                 óD  •— |j                   j                  t        j                   d«      k(  r	 t        ‰| �  |«       y t        ‰| �  |«       y # t
        $ rG}dt        |«      v r4|j                  t        j                  j                  t
        d¬«      «       ‚ d }~ww xY w)NÚ
complex128zAttribute "dtype" are differentzAttributes are different)rÎ   r]   )r
   r   r   ri   Útest_json_roundtriprÜ   Ústrr`   rV   r^   r_   )re   r:   r   Úerrrk   s       €r   r  z+TestNumpyExtensionArray.test_json_roundtripþ  s�   ø€ ð �:‰:×!Ñ!¤R§X¡X¨lÓ%;Ò;ð	Ü‘Ñ+¨DÕ1ô ‰GÑ'¨Õ-øô "ò Ø4¼¸C»Ñ@Ø×'Ñ'ÜŸ™×)Ñ)Ü#1Ð:Tð *ó ôð
 ûðús   ¯A Á	BÁABÂBzaignore:Casting complex values to real discards the imaginary part:numpy.exceptions.ComplexWarningc                 óÔ   •— t        |d   j                  «      r4t        j                  t        d¬«      5  t
        ‰| �  |«       d d d «       y t
        ‰| �  |«       y # 1 sw Y   y xY w)NÚDatazno numeric data to plot)Úmatch)r   r
   rV   rÎ   r�   ri   Útest_plot_on_y_axis)re   Ú	plot_datark   s     €r   r  z+TestNumpyExtensionArray.test_plot_on_y_axis  s]   ø€ ô ˜9 VÑ,×2Ñ2Ô3Ü—‘œyÐ0IÔJñ 7Ü‘Ñ+¨IÔ6÷7ð 7ô ‰GÑ'¨	Õ2÷7ð 7ús   µAÁA')AÚ__name__Ú
__module__Ú__qualname__rV   r^   rW   rf   Úskip_nestedrj   rm   rp   rr   ru   rw   rz   r|   r~   r€   r_   rƒ   r†   r‰   r�   r£   r­   rª   r‘   r—   r¤   r«   r®   r1   r2   r  Úboolr¸   rÂ   ÚparametrizerÅ   rÇ   rÉ   rË   rÏ   Ú
MultiIndexÚfrom_productÚfrom_tuplesrÝ   râ   rä   rê   rì   r   r>   rò   r÷   rù   rû   r  r  r  r  r  Úfilterwarningsr  Ú__classcell__)rk   s   @r   rc   rc   ­   s¬  ø„ Ø‡[�[×ÑÐ:ÐÓ;ñó <ðð óGó ðGô'ô3ð ó*ó ð*ð ó,ó ð,ð ó6ó ð6ð
 ó7ó ð7ð
 ó5ó ð5ð ó6ó ð6ð ó?ó ð?ð ‡[�[×ÑÐJÐÓKó0ó Lð0ô"ð ó:ó ð:ð €JØÐØÐØÐô"ò1ôNô(Mð óMó ðMð( r§y¡yð ¸3ð À4ó ð
1 §	¡	ð 1°Cð 1Àó 1ð  ‡[�[×ÑÐ3Ó4Ø‡[�[×Ñ˜X¨¨e }Ó5ñó 6ó 5ðð ó1ó ð1ð ó0ó ð0ð ó3ó ð3ô	5ð ‡[�[×ÑØà�M‰M×&Ñ&¨#¨s¨°c¸3°ZÐ(@È#ÈsÈÐ&ÓTØ�M‰M×%Ñ%Ò&JÓKØ�M‰M×&Ñ&Ò'OÓPØ�M‰M×%Ñ%òóð		
óð" ‡[�[×Ñ˜U X¨wÐ$7Ó8ó/ó 9ó#ð$/ð( ó;ó ð;ð óFó ðFð
 Ø‡[�[×Ñ˜X¨¨t }Ó5ó:ó 6ó ð:ð
 ó=ó ð=ð Ø‡[�[×ÑØàˆB�H‰HÒ5Ó6ØˆB�H‰HÒ5¸YÔGð	
ð ˜OÐ,ð ó ó=óó ð=ð Ø‡[�[×ÑØÚ	�H�B—H‘HšY¨gÔ6¸¸¿¹ÂÓ8KÐLÚ4ð ó ó
Eóó ðEð ó8ó ð8ð ó2ó ð2òIð" ‡[�[×ÑÐ8ÐÓ9ó:ó :ð:ð Ø‡[�[×Ñ˜X¨¨X Ó7ó5ó 8ó ð5ôOô.ð$ ‡[�[×Ñð	*óó3ó	ô3r   rc   c                   ó   — e Zd Zy)ÚTest2DCompatN)r  r  r  rH   r   r   r&  r&    s   „ Ør   r&  )Ú
Attributes)'Ú__doc__Únumpyr   rV   Úpandas.core.dtypes.dtypesr   Úpandasr1   Úpandas._testingÚ_testingr&   Úpandas.api.typesr   Úpandas.core.arrays.numpy_r   Úpandas.tests.extensionr   r#   r   r  r   Úfixturer
   r*   r:   rA   rI   rO   rQ   rS   rZ   ra   r^   Úusefixturesr  ÚExtensionTestsrc   ÚNDArrayBacked2DTestsr&  rH   r   r   ú<module>r5     s{  ðñó$ Û å 2ã Ý Ý ,Ý 9Ý 'à×-Ñ-Ð ñ3˜Sð 3°Có 3ð  €‡�Ò5Ô6ñ1ó 7ð1ð ‡�ñó ðð, ‡�ñ$ó ð$ð ‡�ñ8ó ð8ð ‡�ñó ðð ‡�ñ
4ó ð
4ð ‡�ñ9ó ð9ð ‡�ñó ðð  ‡�ñ@ó ð@ð ‡�ñ"ó ð"ð �k‰k×%Ñ%Ð&9Ó:€ôo3˜d×1Ñ1ô o3ôd	�4×,Ñ,õ 	r   