ó
    ­œ‘hâ<  ã                   óˆ  • S r SSKrSSKrSSKJr  SSKrSSKJ	r
  SSKJr  SSKJr  SSKJr  \
R"                  rSS\S\4S	 jjr\R*                  " S
S/S9S 5       r\R*                  S 5       r\R*                  S 5       r\R*                  S 5       r\R*                  S 5       r\R*                  S 5       r\R*                  S 5       r\R*                  S 5       r\R*                  S 5       r\R*                  S 5       r\R@                  RC                  S5      r" " S S\RF                  5      r$ " S S\RJ                  5      r&g)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                 ór  • U S:X  a¥  [        USS5      n[        USS5      n[        U[        5      (       a1  [        U[        5      (       d  UR                  UR                  5      nOE[        U[        5      (       a0  [        U[        5      (       d  UR                  UR                  5      n[        XX#5        g)z]
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         ÚeC:\Users\psant\Downloads\Noiseback\school\venv\Lib\site-packages\pandas/tests/extension/test_numpy.pyÚ_assert_attr_equalr       s‹   € ð
 ˆwƒÜ˜˜g tÓ,ˆÜ˜˜w¨Ó-ˆÜ�eœ\×*Ñ*´:¸eÄ\×3RÑ3RØ—;‘;˜u×0Ñ0Ó1‰DÜ˜œ|×,Ñ,´ZÀÄ|×5TÑ5TØ—L‘L ×!2Ñ!2Ó3ˆEä˜4 uÕ2ó    ÚfloatÚobject)Úparamsc                 óT   • [        [        R                  " U R                  5      5      $ ©N)r   Únpr
   Úparam)Úrequests    r   r
   r
   0   s   € äœŸš §¡Ó/Ó0Ð0r   c              #   óà   #   • U R                  5        nUR                  [        SS5        UR                  [        R                  S[
        5        Sv •  SSS5        g! , (       d  f       g= f7f)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   sJ   é € ð" 
×	Ñ	Ô	 !Ø	�	‰	Ô% v¨{Ô;Ø	�	‰	”"—,‘,Ð 3Ô5GÔHÛ÷ 
×	Ö	üs   ‚A.“AAÁ	A.Á
A+Á'A.c                 óò   • UR                   S:X  a:  [        R                  " [        S5       Vs/ s H  o"4PM     sn5      R                  $ [        [        R                  " SSUR                  S95      $ s  snf )Nr   éd   é   ée   ©r
   )	r   ÚpdÚSeriesÚrangeÚarrayr   r   ÚarangeÚ_dtype)r)   r
   Úis      r   Údatar6   L   sY   € à×Ñ˜HÓ$Ü�yŠy¬¨c¬
Ó3ª
 1›$©
Ñ3Ó4×:Ñ:Ð:ÜœrŸyšy¨¨C°u·|±|ÑDÓEÐEùò 4s   ®A4c                 óä   • UR                   S:X  a2  [        [        R                  " [        R                  S/[
        S95      $ [        [        R                  " [        R                  S/5      5      $ )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                  ó   • S n U $ )Nc                 óh   • [         R                  " U 5      =(       a    [         R                  " U5      $ r   )r   Úisnan)ÚaÚbs     r   ÚcmpÚna_cmp.<locals>.cmp\   s   € Ü�xŠx˜‹{×*œrŸxšx¨›{Ð*r   © )rB   s    r   Úna_cmprE   Z   s   € ò+ð €Jr   c                 ó²   • UR                   S:X  a'  [        [        R                  " / SQ[        S9SS 5      $ [        [        R                  " / SQ5      5      $ )z]Length-3 array with a known sort order.

This should be three items [B, C, A] with
A < B < C
r   )rD   ©é   ©é   r8   r.   r,   N)r,   rH   r   )r   r   r   r2   r   r;   s     r   Údata_for_sortingrK   b   sH   € ð ×Ñ˜HÓ$ô #¤2§8¢8Ò,BÌ&Ñ#QÐRSÐRTÐ#UÓVÐVÜœrŸxšxª	Ó2Ó3Ð3r   c                 óè   • UR                   S:X  a3  [        [        R                  " S[        R                  S/[
        S95      $ [        [        R                  " S[        R                  S/5      5      $ )zjLength-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_sortingrM   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                 óò   • UR                   S:X  a  Su  p#nO[        R                  " S5      u  p#n[        [        R                  " X3[        R
                  [        R
                  X"X4/UR                   S95      $ )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   rG   rI   rJ   r.   )r   r   r3   r   r2   r:   )r)   r
   r@   rA   Úcs        r   Údata_for_groupingrP   |   s`   € ð ×Ñ˜HÓ$Ø"‰ˆ‰aä—)’)˜A“,‰ˆˆaÜÜ
�Š�!œŸ™¤§¡¨¨aÐ3¸5×;LÑ;LÑMóð r   c                 ó®   • U R                   S:X  a  [        R                  " U  S35        [        R                  " S5      S-  n[
        R                  " XS9$ )NÚOz is not a numeric dtyper+   rH   r.   )ÚkindÚpytestÚskipr   Úonesr   Ú_from_sequence)r
   Úarrs     r   Údata_for_twosrY   �   sE   € à‡z�z�SÓÜ�Š�u�gÐ4Ð5Ô6Ü
�'Š'�#‹,˜Ñ
€CÜ×-Ò-¨cÑ?Ð?r   c                 ón   • U S:X  a/  [         R                  R                  SS9nUR                  U5        gg)ax  
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)rT   ÚmarkÚxfailÚapplymarker)r
   r   r]   s      r   Úskip_numpy_objectr`   •   s7   € ð �ÓÜ�{‰{× Ñ Ð(@Ð ÐAˆØ×Ñ˜DÕ!ð r   r`   c                   ó¨  ^ • \ rS rSr\R
                  R                  SS9S 5       r\U 4S j5       r	U 4S jr
U 4S jr\U 4S j5       r\U 4S	 j5       r\U 4S
 j5       r\U 4S j5       r\U 4S j5       r\R
                  R#                  SS9U 4S j5       rU 4S jr\U 4S j5       rSrSrSrSrU 4S jrS rU 4S jrU 4S jrU 4S jrS\R>                  S\ S\!4S jr"S\R>                  S\ S\!4S jr#\R
                  R                  S5      \R
                  RI                  SSS/5      S  5       5       r%\U 4S! j5       r&\U 4S" j5       r'\U 4S# j5       r(\U 4S$ j5       r)\\R
                  RI                  S%S&S/5      U 4S' j5       5       r*\U 4S( j5       r+\\R
                  RI                  S)\,RZ                  " / S*Q5      \RZ                  " / S*QS+S,9/S-S./S/9U 4S0 j5       5       r.\\R
                  RI                  S1/ S2Q\RZ                  " / S2QS3S,9\,RZ                  " / S2Q5      // S4QS/9U 4S5 j5       5       r/\R
                  RI                  S6S7S8S9\R`                  /S4\Rb                  " S7S8S9\R`                  /S\R
                  R"                  S:9\RZ                  " S7S8S9\R`                  /S3S,9S4\RZ                  " S7S8S9\R`                  /S3S,9S4// S;QS/9U 4S< j5       r2\U 4S= j5       r3\U 4S> j5       r4S? r5\R
                  R#                  S@S9U 4SA j5       r6\\R
                  RI                  SBSCSD/5      U 4SE j5       5       r7SFr8U =r9$ )GÚTestNumpyExtensionArrayé¨   zWe don't register our dtyper[   c                 ó   • g r   rD   )Úselfr6   s     r   Útest_from_dtypeÚ'TestNumpyExtensionArray.test_from_dtype©   ó   € ð 	r   c                 ó$   >• [         TU ]  X5        g r   )ÚsuperÚ)test_series_constructor_scalar_with_index)re   r6   r
   Ú	__class__s      €r   rk   ÚATestNumpyExtensionArray.test_series_constructor_scalar_with_index®   s   ø€ ô 	‰Ñ9¸$ÕFr   c                 óÞ   >• UR                   R                  S:X  aC  UR                  [        R                  R                  SUR                   R                   3S95        [        TU ]  U5        g )Nr   z:NumpyExtensionArray expectedly clashes with a NumPy name: r[   )r
   r   r_   rT   r]   r^   rj   Útest_check_dtype)re   r6   r   Úusing_infer_stringrl   s       €r   ro   Ú(TestNumpyExtensionArray.test_check_dtype³   sc   ø€ Ø�:‰:×!Ñ! XÓ-Ø×ÑÜ—‘×!Ñ!ð#Ø#'§:¡:×#9Ñ#9Ð":ð<ð "ð ôô 	‰Ñ  Õ&r   c                 ój   >• UR                   S:X  a  [        U5      (       d   eg [        TU ]  U5        g )Nr   )r   r   rj   Útest_is_not_object_type)re   r
   r   rl   s      €r   rs   Ú/TestNumpyExtensionArray.test_is_not_object_type½   s1   ø€ Ø×Ñ Ó(ô # 5×)Ñ)Ð)Ñ)ä‰GÑ+¨EÕ2r   c                 ó$   >• [         TU ]  U5        g r   )rj   Útest_getitem_scalar©re   r6   rl   s     €r   rv   Ú+TestNumpyExtensionArray.test_getitem_scalarÅ   s   ø€ ô 	‰Ñ# DÕ)r   c                 ó$   >• [         TU ]  U5        g r   )rj   Útest_shift_fill_valuerw   s     €r   rz   Ú-TestNumpyExtensionArray.test_shift_fill_valueÊ   s   ø€ ô 	‰Ñ% dÕ+r   c                 ó$   >• [         TU ]  U5        g r   )rj   Útest_fillna_copy_frame©re   r<   rl   s     €r   r}   Ú.TestNumpyExtensionArray.test_fillna_copy_frameÏ   s   ø€ ô 	‰Ñ& |Õ4r   c                 ó$   >• [         TU ]  U5        g r   )rj   Útest_fillna_copy_seriesr~   s     €r   r�   Ú/TestNumpyExtensionArray.test_fillna_copy_seriesÔ   s   ø€ ô 	‰Ñ'¨Õ5r   c                 ó$   >• [         TU ]  X5        g r   )rj   Útest_searchsorted)re   rK   Ú	as_seriesrl   s      €r   r„   Ú)TestNumpyExtensionArray.test_searchsortedÙ   s   ø€ ô
 	‰Ñ!Ð"2Õ>r   z*NumpyExtensionArray.diff may fail on dtypec                 ó"   >• [         TU ]  X5      $ r   )rj   Ú	test_diff)re   r6   Úperiodsrl   s      €r   rˆ   Ú!TestNumpyExtensionArray.test_diffà   s   ø€ ä‰wÑ  Ó/Ð/r   c                 ó¼   >• UR                   R                  [        :X  a.  [        R                  R                  SS9nUR                  U5        [        TU ]!  U5        g )Nz$Dimension mismatch in np.concatenater[   )	r
   r   r   rT   r]   r^   r_   rj   Útest_insert)re   r6   r   r]   rl   s       €r   rŒ   Ú#TestNumpyExtensionArray.test_insertä   sH   ø€ Ø�:‰:×!Ñ!¤VÓ+Ü—;‘;×$Ñ$Ð,RÐ$ÐSˆDØ×Ñ Ô%ä‰Ñ˜DÕ!r   c                 ó$   >• [         TU ]  X5        g r   )rj   Útest_insert_invalid©re   r6   Úinvalid_scalarrl   s      €r   r�   Ú+TestNumpyExtensionArray.test_insert_invalidë   s   ø€ ô 	‰Ñ# DÕ9r   Nc                 ót   >• S nUR                   R                  S:X  a  [        nX l        [        TU ]  U5        g ©NrR   )r
   rS   Ú	TypeErrorÚ
divmod_excrj   Útest_divmod)re   r6   r–   rl   s      €r   r—   Ú#TestNumpyExtensionArray.test_divmodõ   s/   ø€ Øˆ
Ø�:‰:�?‰?˜cÓ!Ü"ˆJØ$ŒÜ‰Ñ˜DÕ!r   c                 ó®   • [         R                  " U5      nS nUR                  R                  S:X  a  [        nX0l        U R                  U[        U5        g r”   )r/   r0   r
   rS   r•   r–   Ú_check_divmod_opÚdivmod)re   r6   ÚserÚexcs       r   Útest_divmod_series_arrayÚ0TestNumpyExtensionArray.test_divmod_series_arrayü   s@   € Ü�iŠi˜‹oˆØˆØ�:‰:�?‰?˜cÓ!ÜˆCØ!ŒOØ×Ñ˜c¤6¨4Õ0r   c                 óü   >• UnS nUR                   R                  [        :X  aD  US;   a8  [        R                  R                  SS9nUR                  R                  U5        [        nXPl	        [        TU ]-  X5        g ©N)Ú__mul__Ú__rmul__z9the Series.combine step raises but not the Series method.r[   )r
   r   r   rT   r]   r^   ÚnodeÚ
add_markerr•   Úseries_scalar_excrj   Útest_arith_series_with_scalar)re   r6   Úall_arithmetic_operatorsr   Úopnamer¦   r]   rl   s          €r   r§   Ú5TestNumpyExtensionArray.test_arith_series_with_scalar  sr   ø€ Ø)ˆØ ÐØ�:‰:×!Ñ!¤VÓ+ØÐ0Ó0Ü—{‘{×(Ñ(ØVð )ð �ð —‘×'Ñ'¨Ô-Ü )ÐØ!2ÔÜ‰Ñ-¨dÕMr   c                 óŒ   >• UnS nUR                   R                  [        :X  a  US;  a  [        nX@l        [
        TU ]  X5        g )N)Ú__add__Ú__radd__)r
   r   r   r•   Úseries_array_excrj   Útest_arith_series_with_array)re   r6   r¨   r©   r®   rl   s        €r   r¯   Ú4TestNumpyExtensionArray.test_arith_series_with_array  sA   ø€ Ø)ˆØÐØ�:‰:×!Ñ!¤VÓ+°Ð>UÓ0UÜ(ÐØ 0ÔÜ‰Ñ,¨TÕLr   c                 óü   >• UnS nUR                   R                  [        :X  aD  US;   a8  [        R                  R                  SS9nUR                  R                  U5        [        nXPl	        [        TU ]-  X5        g r¡   )r
   r   r   rT   r]   r^   r¤   r¥   r•   Úframe_scalar_excrj   Útest_arith_frame_with_scalar)re   r6   r¨   r   r©   r²   r]   rl   s          €r   r³   Ú4TestNumpyExtensionArray.test_arith_frame_with_scalar  sr   ø€ Ø)ˆØÐØ�:‰:×!Ñ!¤VÓ+ØÐ0Ó0Ü—{‘{×(Ñ(ØVð )ð �ð —‘×'Ñ'¨Ô-Ü(ÐØ 0ÔÜ‰Ñ,¨TÕLr   rœ   Úop_nameÚreturnc                 óB   • UR                   R                  S:X  a  US;   $ g)NrR   )ÚsumÚminÚmaxÚanyÚallT)r
   rS   )re   rœ   rµ   s      r   Ú_supports_reductionÚ+TestNumpyExtensionArray._supports_reduction&  s!   € Ø�9‰9�>‰>˜SÓ ØÐAÑAÐAØr   Úskipnac                 óì   • [        X5      nUR                  R                  nUR                  U5      n[        Xb5      nUS:X  a  U" 5       nU" 5       n	OU" US9nU" US9n	[        R
                  " X‰5        g )NÚcount)r¿   )r   r
   r   r   r%   Úassert_almost_equal)
re   rœ   rµ   r¿   Úres_opÚ	cmp_dtypeÚaltÚexp_opÚresultÚexpecteds
             r   Úcheck_reduceÚ$TestNumpyExtensionArray.check_reduce+  sm   € Ü˜Ó&ˆð —I‘I×)Ñ)ˆ	Ø�j‰j˜Ó#ˆÜ˜Ó&ˆØ�gÓÙ“XˆFÙ“x‰Há 6Ñ*ˆFÙ VÑ,ˆHÜ
×Ò˜vÕ0r   zTODO: tests not written yetTFc                 ó   • g r   rD   )re   r6   Úall_numeric_reductionsr¿   s       r   Útest_reduce_frameÚ)TestNumpyExtensionArray.test_reduce_frame;  rh   r   c                 ó$   >• [         TU ]  U5        g r   )rj   Útest_fillna_seriesr~   s     €r   rÐ   Ú*TestNumpyExtensionArray.test_fillna_series@  s   ø€ ô 	‰Ñ" <Õ0r   c                 ó$   >• [         TU ]  U5        g r   )rj   Útest_fillna_framer~   s     €r   rÓ   Ú)TestNumpyExtensionArray.test_fillna_frameE  s   ø€ ô 	‰Ñ! ,Õ/r   c                 ó$   >• [         TU ]  X5        g r   )rj   Útest_setitem_invalidr�   s      €r   rÖ   Ú,TestNumpyExtensionArray.test_setitem_invalidJ  s   ø€ ô 	‰Ñ$ TÕ:r   c                 ó$   >• [         TU ]  X5        g r   )rj   Ú test_setitem_sequence_broadcasts©re   r6   Úbox_in_seriesrl   s      €r   rÙ   Ú8TestNumpyExtensionArray.test_setitem_sequence_broadcastsO  s   ø€ ô 	‰Ñ0°ÕEr   ÚsetterÚlocc                 ó$   >• [         TU ]  X5        g r   )rj   Útest_setitem_mask_broadcast)re   r6   rÝ   rl   s      €r   rà   Ú3TestNumpyExtensionArray.test_setitem_mask_broadcastU  s   ø€ ô
 	‰Ñ+¨DÕ9r   c                 ó$   >• [         TU ]  U5        g r   )rj   Ú&test_setitem_scalar_key_sequence_raiserw   s     €r   rã   Ú>TestNumpyExtensionArray.test_setitem_scalar_key_sequence_raise\  s   ø€ ô 	‰Ñ6°tÕ<r   Úmask)TTTFFÚbooleanr.   únumpy-arrayzboolean-array)Úidsc                 ó&   >• [         TU ]  XU5        g r   )rj   Útest_setitem_mask)re   r6   rå   rÛ   rl   s       €r   rê   Ú)TestNumpyExtensionArray.test_setitem_maskd  s   ø€ ô 	‰Ñ! $¨mÕ<r   Úidx)r   r,   rH   ÚInt64)Úlistzinteger-arrayrç   c                 ó&   >• [         TU ]  XU5        g r   )rj   Útest_setitem_integer_array©re   r6   rì   rÛ   rl   s       €r   rð   Ú2TestNumpyExtensionArray.test_setitem_integer_arrayp  s   ø€ ô 	‰Ñ*¨4°mÕDr   zidx, box_in_seriesr   r,   rH   )Úmarks)z
list-Falsez	list-Truezinteger-array-Falsezinteger-array-Truec                 ó&   >• [         TU ]  XU5        g r   )rj   Ú(test_setitem_integer_with_missing_raisesrñ   s       €r   rõ   Ú@TestNumpyExtensionArray.test_setitem_integer_with_missing_raisesy  s   ø€ ô 	‰Ñ8¸ÀMÕRr   c                 ó$   >• [         TU ]  X5        g r   )rj   Útest_setitem_slicerÚ   s      €r   rø   Ú*TestNumpyExtensionArray.test_setitem_slice†  s   ø€ ä‰Ñ" 4Õ7r   c                 ó$   >• [         TU ]  U5        g r   )rj   Útest_setitem_loc_iloc_slicerw   s     €r   rû   Ú3TestNumpyExtensionArray.test_setitem_loc_iloc_sliceŠ  s   ø€ ä‰Ñ+¨DÕ1r   c                 óÌ  • [         R                  " S[         R                  " U5      05      =p4[         R                  " UR                  S9nU" U5      nUS   UR                  US4'   UR
                  R                  [        :w  aJ  [        U[        5      (       a  U[        S 5      :w  a&  [         R                  " SUR                  5       05      n[        R                  " XTSS9  g )Nr6   )ÚindexF)Úcheck_column_type)r/   Ú	DataFramer0   rþ   rÞ   r
   r   r   r   ÚsliceÚto_numpyr%   Úassert_frame_equal)re   r6   Úfull_indexerÚdfrÈ   rÇ   Úkeys          r   Ú,test_setitem_with_expansion_dataframe_columnÚDTestNumpyExtensionArray.test_setitem_with_expansion_dataframe_columnŽ  s©   € äŸš f¬b¯iªi¸«oÐ%>Ó?Ð?ˆÜ—’ B§H¡HÑ-ˆñ ˜2ÓˆØ"$ V¡*ˆ�
‰
�3˜�;Ñð �:‰:×!Ñ!¤VÓ+Ü˜c¤5×)Ñ)¨S´E¸$³KÓ-?ÜŸ<š<¨°·±³Ð(AÓB�Ü
×Ò˜fÀ%ÓHr   zNumpyEADtype is unpackedc                 ó$   >• [         TU ]  U5        g r   )rj   Ú#test_index_from_listlike_with_dtyperw   s     €r   r
  Ú;TestNumpyExtensionArray.test_index_from_listlike_with_dtypeŸ  s   ø€ ä‰Ñ3°DÕ9r   ÚenginerO   Úpythonc                 ó&   >• [         TU ]  XU5        g r   )rj   Útest_EA_types)re   r  r6   r   rl   s       €r   r  Ú%TestNumpyExtensionArray.test_EA_types£  s   ø€ ô 	‰Ñ˜f¨GÕ4r   )r–   r²   r®   r¦   ):Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__rT   r]   rU   rf   Úskip_nestedrk   ro   rs   rv   rz   r}   r�   r„   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  Ú__static_attributes__Ú__classcell__)rl   s   @r   rb   rb   ¨   s$  ø† Ø‡[�[×ÑÐ:ÐÐ;ñó <ðð ô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ó ð:ð
 ô=ó ð=ð Ø‡[�[×ÑØà�HŠHÒ5Ó6Ø�HŠHÒ5¸YÑGð	
ð ˜OÐ,ð ð ô=óó ð=ð Ø‡[�[×ÑØÚ	�B—H’HšY¨gÑ6¸¿ºÂÓ8KÐLÚ4ð ð ô
Eóó ðEð ‡[�[×ÑØà��A�r—u‘uÐ˜uÐ%Ø�LŠL˜!˜Q  2§5¡5Ð)¨4°v·{±{×7HÑ7HÑIØ�XŠX�q˜!˜Q §¡Ð&¨gÑ6¸Ð>Ø�XŠX�q˜!˜Q §¡Ð&¨gÑ6¸Ð>ð		
ò Uð ð 	ôSó	ðSð ô8ó ð8ð ô2ó ð2òIð" ‡[�[×ÑÐ8ÐÐ9ô:ó :ð:ð Ø‡[�[×Ñ˜X¨¨X Ó7ô5ó 8ó ö5r   rb   c                   ó   • \ rS rSrSrg)ÚTest2DCompati©  rD   N)r  r  r  r  r  rD   r   r   r  r  ©  s   † Úr   r  )Ú
Attributes)'Ú__doc__Únumpyr   rT   Ú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<   rE   rK   rM   rP   rY   r`   r]   Úusefixturesr  ÚExtensionTestsrb   ÚNDArrayBacked2DTestsr  rD   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   