Ë
    ¤ehâ<  ã                   óŠ  — 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*                  d
dg¬«      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         ú_/var/www/skyplay_api_hub/venv/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ó    ÚfloatÚobject)Úparamsc                 óR   — t        t        j                  | j                  «      «      S ©N)r   Únpr
   Úparam)Úrequests    r   r
   r
   0   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)   5   sT   è ø€ ð" 
×	Ñ	Ó	ð  !Ø	�	‰	Ô% v¨{Ô;Ø	�	‰	”"—,‘,Ð 3Ô5GÔHÛ÷÷ ñ üs   ‚A)“AAÁ	A)ÁA&Á"A)c                 óî   — |j                   dk(  r7t        j                  t        d«      D �cg c]  }|f‘Œ c}«      j                  S t        t        j                  dd|j                  ¬«      «      S c c}w )Nr   éd   é   ée   ©r
   )	r   ÚpdÚSeriesÚrangeÚarrayr   r   ÚarangeÚ_dtype)r)   r
   Úis      r   Údatar6   L   sW   € à×Ñ˜HÒ$Ü�y‰y¬¨c«
Ö3 1˜1š$Ò3Ó4×:Ñ:Ð:ÜœrŸy™y¨¨C°u·|±|ÔDÓEÐEùò 4s   ¬
A2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   r2   Únanr   ©r)   r
   s     r   Údata_missingr<   S   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>.cmp\   s   € Ü�x‰x˜‹{Ò*œrŸx™x¨›{Ð*r   © )rB   s    r   Úna_cmprD   Z   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   )rC   ©é   ©é   r8   r.   r,   N)r,   rG   r   )r   r   r   r2   r   r;   s     r   Údata_for_sortingrJ   b   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   r8   )r   r.   r,   r   r9   r;   s     r   Údata_missing_for_sortingrL   p   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   )r8   rF   rH   rI   r.   )r   r   r3   r   r2   r:   )r)   r
   r@   rA   Úcs        r   Údata_for_groupingrO   |   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+   rG   r.   )ÚkindÚpytestÚskipr   Úonesr   Ú_from_sequence)r
   Úarrs     r   Údata_for_twosrX   �   sG   € à‡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)rS   ÚmarkÚxfailÚapplymarker)r
   r   r\   s      r   Úskip_numpy_objectr_   •   s7   € ð �ÒÜ�{‰{× Ñ Ð(@Ð ÓAˆØ×Ñ˜DÕ!ð r   r_   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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ˆ 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                  jG                  dddg«      d„ «       «       Z$eˆ fd „«       Z%eˆ fd!„«       Z&eˆ fd"„«       Z'eˆ fd#„«       Z(eej                  jG                  d$d%dg«      ˆ fd&„«       «       Z)eˆ fd'„«       Z*eej                  jG                  d( e+jX                  g d)¢«       ejX                  g d)¢d*¬+«      gd,d-g¬.«      ˆ fd/„«       «       Z-eej                  jG                  d0g d1¢ ejX                  g d1¢d2¬+«       e+jX                  g d1¢«      gg d3¢¬.«      ˆ fd4„«       «       Z.ej                  jG                  d5d6d7d8ej^                  gdf ej`                  d6d7d8ej^                  gdej                  j                   ¬9«       ejX                  d6d7d8ej^                  gd2¬+«      df ejX                  d6d7d8ej^                  gd2¬+«      dfgg d:¢¬.«      ˆ fd;„«       Z1eˆ fd<„«       Z2eˆ fd=„«       Z3d>„ Z4ej                  j!                  d?¬«      ˆ fd@„«       Z5eej                  jG                  dAdBdCg«      ˆ fdD„«       «       Z6ˆ xZ7S )EÚTestNumpyExtensionArrayzWe don't register our dtyperZ   c                  ó   — y r   rC   )Úselfr6   s     r   Útest_from_dtypez'TestNumpyExtensionArray.test_from_dtype©   ó   € ð 	r   c                 ó&   •— t         ‰| �  ||«       y r   )ÚsuperÚ)test_series_constructor_scalar_with_index)rc   r6   r
   Ú	__class__s      €r   rh   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: rZ   )r
   r   r^   rS   r\   r]   rg   Útest_check_dtype)rc   r6   r   Úusing_infer_stringri   s       €r   rk   z(TestNumpyExtensionArray.test_check_dtype³   sc   ø€ Ø�:‰:×!Ñ! XÒ-Ø×ÑÜ—‘×!Ñ!ð#Ø#'§:¡:×#9Ñ#9Ð":ð<ð "ó ôô 	‰Ñ  Õ&r   c                 ó^   •— |j                   dk(  rt        |«      sJ ‚y t        ‰| �  |«       y )Nr   )r   r   rg   Útest_is_not_object_type)rc   r
   r   ri   s      €r   rn   z/TestNumpyExtensionArray.test_is_not_object_type½   s.   ø€ Ø×Ñ Ò(ô # 5Ô)Ð)Ñ)ä‰GÑ+¨EÕ2r   c                 ó$   •— t         ‰| �  |«       y r   )rg   Útest_getitem_scalar©rc   r6   ri   s     €r   rp   z+TestNumpyExtensionArray.test_getitem_scalarÅ   s   ø€ ô 	‰Ñ# DÕ)r   c                 ó$   •— t         ‰| �  |«       y r   )rg   Útest_shift_fill_valuerq   s     €r   rs   z-TestNumpyExtensionArray.test_shift_fill_valueÊ   s   ø€ ô 	‰Ñ% dÕ+r   c                 ó$   •— t         ‰| �  |«       y r   )rg   Útest_fillna_copy_frame©rc   r<   ri   s     €r   ru   z.TestNumpyExtensionArray.test_fillna_copy_frameÏ   s   ø€ ô 	‰Ñ& |Õ4r   c                 ó$   •— t         ‰| �  |«       y r   )rg   Útest_fillna_copy_seriesrv   s     €r   rx   z/TestNumpyExtensionArray.test_fillna_copy_seriesÔ   s   ø€ ô 	‰Ñ'¨Õ5r   c                 ó&   •— t         ‰| �  ||«       y r   )rg   Útest_searchsorted)rc   rJ   Ú	as_seriesri   s      €r   rz   z)TestNumpyExtensionArray.test_searchsortedÙ   s   ø€ ô
 	‰Ñ!Ð"2°IÕ>r   z*NumpyExtensionArray.diff may fail on dtypec                 ó$   •— t         ‰| �  ||«      S r   )rg   Ú	test_diff)rc   r6   Úperiodsri   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.concatenaterZ   )	r
   r   r   rS   r\   r]   r^   rg   Útest_insert)rc   r6   r   r\   ri   s       €r   r€   z#TestNumpyExtensionArray.test_insertä   sH   ø€ Ø�:‰:×!Ñ!¤VÒ+Ü—;‘;×$Ñ$Ð,RÐ$ÓSˆDØ×Ñ Ô%ä‰Ñ˜DÕ!r   c                 ó&   •— t         ‰| �  ||«       y r   )rg   Útest_insert_invalid©rc   r6   Úinvalid_scalarri   s      €r   r‚   z+TestNumpyExtensionArray.test_insert_invalidë   s   ø€ ô 	‰Ñ# D¨.Õ9r   Nc                 ót   •— d }|j                   j                  dk(  rt        }|| _        t        ‰| �  |«       y ©NrQ   )r
   rR   Ú	TypeErrorÚ
divmod_excrg   Útest_divmod)rc   r6   rˆ   ri   s      €r   r‰   z#TestNumpyExtensionArray.test_divmodõ   s1   ø€ Øˆ
Ø�:‰:�?‰?˜cÒ!Ü"ˆJØ$ˆŒÜ‰Ñ˜DÕ!r   c                 ó¬   — t        j                  |«      }d }|j                  j                  dk(  rt        }|| _        | j                  |t        |«       y r†   )r/   r0   r
   rR   r‡   rˆ   Ú_check_divmod_opÚdivmod)rc   r6   ÚserÚexcs       r   Útest_divmod_series_arrayz0TestNumpyExtensionArray.test_divmod_series_arrayü   sB   € Ü�i‰i˜‹oˆØˆØ�:‰:�?‰?˜cÒ!ÜˆCØ!ˆDŒOØ×Ñ˜c¤6¨4Õ0r   c                 ó   •— |}d }|j                   j                  t        k(  rE|dv r;t        j                  j                  d¬«      }|j                  j                  |«       t        }|| _	        t        ‰| �-  ||«       y ©N)Ú__mul__Ú__rmul__z9the Series.combine step raises but not the Series method.rZ   )r
   r   r   rS   r\   r]   ÚnodeÚ
add_markerr‡   Úseries_scalar_excrg   Útest_arith_series_with_scalar)rc   r6   Úall_arithmetic_operatorsr   Úopnamer–   r\   ri   s          €r   r—   z5TestNumpyExtensionArray.test_arith_series_with_scalar  sw   ø€ Ø)ˆØ ÐØ�:‰:×!Ñ!¤VÒ+ØÐ0Ñ0Ü—{‘{×(Ñ(ØVð )ó �ð —‘×'Ñ'¨Ô-Ü )ÐØ!2ˆÔÜ‰Ñ-¨dÐ4LÕMr   c                 óŠ   •— |}d }|j                   j                  t        k(  r
|dvrt        }|| _        t
        ‰| �  ||«       y )N)Ú__add__Ú__radd__)r
   r   r   r‡   Úseries_array_excrg   Útest_arith_series_with_array)rc   r6   r˜   r™   r�   ri   s        €r   rž   z4TestNumpyExtensionArray.test_arith_series_with_array  sF   ø€ Ø)ˆØÐØ�:‰:×!Ñ!¤VÒ+°Ð>UÑ0UÜ(ÐØ 0ˆÔÜ‰Ñ,¨TÐ3KÕLr   c                 ó   •— |}d }|j                   j                  t        k(  rE|dv r;t        j                  j                  d¬«      }|j                  j                  |«       t        }|| _	        t        ‰| �-  ||«       y r‘   )r
   r   r   rS   r\   r]   r”   r•   r‡   Úframe_scalar_excrg   Útest_arith_frame_with_scalar)rc   r6   r˜   r   r™   r    r\   ri   s          €r   r¡   z4TestNumpyExtensionArray.test_arith_frame_with_scalar  sw   ø€ Ø)ˆØÐØ�:‰:×!Ñ!¤VÒ+ØÐ0Ñ0Ü—{‘{×(Ñ(ØVð )ó �ð —‘×'Ñ'¨Ô-Ü(ÐØ 0ˆÔÜ‰Ñ,¨TÐ3KÕLr   r�   Úop_nameÚreturnc                 ó>   — |j                   j                  dk(  r|dv S y)NrQ   )ÚsumÚminÚmaxÚanyÚallT)r
   rR   )rc   r�   r¢   s      r   Ú_supports_reductionz+TestNumpyExtensionArray._supports_reduction&  s!   € Ø�9‰9�>‰>˜SÒ ØÐAÐAÐAØr   Úskipnac                 óú   — t        ||«      }|j                  j                  }|j                  |«      }t        ||«      }|dk(  r |«       } |«       }	n ||¬«      } ||¬«      }	t	        j
                  ||	«       y )NÚcount)r«   )r   r
   r   r   r%   Úassert_almost_equal)
rc   r�   r¢   r«   Úres_opÚ	cmp_dtypeÚaltÚexp_opÚresultÚexpecteds
             r   Úcheck_reducez$TestNumpyExtensionArray.check_reduce+  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   rC   )rc   r6   Úall_numeric_reductionsr«   s       r   Útest_reduce_framez)TestNumpyExtensionArray.test_reduce_frame;  re   r   c                 ó$   •— t         ‰| �  |«       y r   )rg   Útest_fillna_seriesrv   s     €r   rº   z*TestNumpyExtensionArray.test_fillna_series@  s   ø€ ô 	‰Ñ" <Õ0r   c                 ó$   •— t         ‰| �  |«       y r   )rg   Útest_fillna_framerv   s     €r   r¼   z)TestNumpyExtensionArray.test_fillna_frameE  s   ø€ ô 	‰Ñ! ,Õ/r   c                 ó&   •— t         ‰| �  ||«       y r   )rg   Útest_setitem_invalidrƒ   s      €r   r¾   z,TestNumpyExtensionArray.test_setitem_invalidJ  s   ø€ ô 	‰Ñ$ T¨>Õ:r   c                 ó&   •— t         ‰| �  ||«       y r   )rg   Ú test_setitem_sequence_broadcasts©rc   r6   Úbox_in_seriesri   s      €r   rÀ   z8TestNumpyExtensionArray.test_setitem_sequence_broadcastsO  s   ø€ ô 	‰Ñ0°°}ÕEr   ÚsetterÚlocc                 ó&   •— t         ‰| �  ||«       y r   )rg   Útest_setitem_mask_broadcast)rc   r6   rÃ   ri   s      €r   rÆ   z3TestNumpyExtensionArray.test_setitem_mask_broadcastU  s   ø€ ô
 	‰Ñ+¨D°&Õ9r   c                 ó$   •— t         ‰| �  |«       y r   )rg   Ú&test_setitem_scalar_key_sequence_raiserq   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   )rg   Útest_setitem_mask)rc   r6   rÉ   rÂ   ri   s       €r   rÎ   z)TestNumpyExtensionArray.test_setitem_maskd  s   ø€ ô 	‰Ñ! $¨¨mÕ<r   Úidx)r   r,   rG   ÚInt64)Úlistzinteger-arrayrË   c                 ó(   •— t         ‰| �  |||«       y r   )rg   Útest_setitem_integer_array©rc   r6   rÏ   rÂ   ri   s       €r   rÓ   z2TestNumpyExtensionArray.test_setitem_integer_arrayp  s   ø€ ô 	‰Ñ*¨4°°mÕDr   zidx, box_in_seriesr   r,   rG   )Úmarks)z
list-Falsez	list-Truezinteger-array-Falsezinteger-array-Truec                 ó(   •— t         ‰| �  |||«       y r   )rg   Ú(test_setitem_integer_with_missing_raisesrÔ   s       €r   r×   z@TestNumpyExtensionArray.test_setitem_integer_with_missing_raisesy  s   ø€ ô 	‰Ñ8¸¸sÀMÕRr   c                 ó&   •— t         ‰| �  ||«       y r   )rg   Útest_setitem_slicerÁ   s      €r   rÙ   z*TestNumpyExtensionArray.test_setitem_slice†  s   ø€ ä‰Ñ" 4¨Õ7r   c                 ó$   •— t         ‰| �  |«       y r   )rg   Útest_setitem_loc_iloc_slicerq   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 )Nr6   )ÚindexF)Úcheck_column_type)r/   Ú	DataFramer0   rÝ   rÄ   r
   r   r   r   ÚsliceÚto_numpyr%   Úassert_frame_equal)rc   r6   Ú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   )rg   Ú#test_index_from_listlike_with_dtyperq   s     €r   rè   z;TestNumpyExtensionArray.test_index_from_listlike_with_dtypeŸ  s   ø€ ä‰Ñ3°DÕ9r   ÚenginerN   Úpythonc                 ó(   •— t         ‰| �  |||«       y r   )rg   Útest_EA_types)rc   ré   r6   r   ri   s       €r   rì   z%TestNumpyExtensionArray.test_EA_types£  s   ø€ ô 	‰Ñ˜f d¨GÕ4r   )8Ú__name__Ú
__module__Ú__qualname__rS   r\   rT   rd   Úskip_nestedrh   rk   rn   rp   rs   ru   rx   rz   r]   r}   r€   r‚   rˆ   r–   r    r�   r‰   r�   r—   rž   r¡   r/   r0   ÚstrÚboolrª   rµ   Úparametrizer¸   rº   r¼   r¾   rÀ   rÆ   rÈ   r   r2   rÎ   rÓ   ÚNAr   r×   rÙ   rÛ   ræ   rè   rì   Ú__classcell__)ri   s   @r   ra   ra   ¨   s2  ø„ Ø‡[�[×ÑÐ:ÐÓ;ñó <ðð óGó ðGô'ô3ð ó*ó ð*ð ó,ó ð,ð ó5ó ð5ð ó6ó ð6ð ó?ó ð?ð ‡[�[×ÑÐJÐÓKó0ó Lð0ô"ð ó:ó ð:ð €JØÐØÐØÐô"ò1ôNôMôMð r§y¡yð ¸3ð À4ó ð
1 §	¡	ð 1°Cð 1Àó 1ð  ‡[�[×ÑÐ3Ó4Ø‡[�[×Ñ˜X¨¨e }Ó5ñó 6ó 5ðð ó1ó ð1ð ó0ó ð0ð ó;ó ð;ð ó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ð ‡[�[×ÑØà��A�r—u‘uÐ˜uÐ%ØˆF�L‰L˜!˜Q  2§5¡5Ð)¨4°v·{±{×7HÑ7HÔIØˆR�X‰X�q˜!˜Q §¡Ð&¨gÔ6¸Ð>ØˆR�X‰X�q˜!˜Q §¡Ð&¨gÔ6¸Ð>ð		
ò Uð ó 	óSó	ðSð ó8ó ð8ð ó2ó ð2òIð" ‡[�[×ÑÐ8ÐÓ9ó:ó :ð:ð Ø‡[�[×Ñ˜X¨¨X Ó7ó5ó 8ó ô5r   ra   c                   ó   — e Zd Zy)ÚTest2DCompatN)rí   rî   rï   rC   r   r   r÷   r÷   ©  s   „ Ør   r÷   )Ú
Attributes)'Ú__doc__Únumpyr   rS   Úpandas.core.dtypes.dtypesr   Úpandasr/   Úpandas._testingÚ_testingr%   Úpandas.api.typesr   Úpandas.core.arrays.numpy_r   Úpandas.tests.extensionr   r"   r   rñ   r   Úfixturer
   r)   r6   r<   rD   rJ   rL   rO   rX   r_   r\   Úusefixturesrð   ÚExtensionTestsra   ÚNDArrayBacked2DTestsr÷   rC   r   r   ú<module>r     s�  ðñó" Û å 2ã Ý Ý ,Ý 9Ý 'à×-Ñ-Ð ñ3˜Sð 3°Có 3ð  €‡�˜ Ð*Ô+ñ1ó ,ð1ð ‡�ñó ðð, ‡�ñFó ðFð ‡�ñ8ó ð8ð ‡�ñó ðð ‡�ñ
4ó ð
4ð ‡�ñ9ó ð9ð ‡�ñó ðð  ‡�ñ@ó ð@ð ‡�ñ"ó ð"ð �k‰k×%Ñ%Ð&9Ó:€ô~5˜d×1Ñ1ô ~5ôB	�4×,Ñ,õ 	r   