§
    tŠtj>  ã                   óV  — 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          !                    d¦  «        Z" G d„ dej#        ¦  «        Z$ G d„ dej%        ¦  «        Z&dS )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Ú
AttributesÚattrÚobjc                 óŒ  — | dk    r«t          |dd¦  «        }t          |dd¦  «        }t          |t          ¦  «        r0t          |t          ¦  «        s|                     |j        ¦  «        }nDt          |t          ¦  «        r/t          |t          ¦  «        s|                     |j        ¦  «        }t          | |||¦  «         dS )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/html/CA-Chatbot/venv/lib/python3.11/site-packages/pandas/tests/extension/test_numpy.pyÚ_assert_attr_equalr   !   s¹   € ð
 ˆw‚€Ý˜˜g tÑ,Ô,ˆÝ˜˜w¨Ñ-Ô-ˆÝ�e�\Ñ*Ô*ð 	4µ:¸eÅ\Ñ3RÔ3Rð 	4Ø—;’;˜uÔ0Ñ1Ô1ˆDˆDÝ˜�|Ñ,Ô,ð 	4µZÀÅ|Ñ5TÔ5Tð 	4Ø—L’L Ô!2Ñ3Ô3ˆEå˜4  u¨cÑ2Ô2Ð2Ð2Ð2ó    ÚfloatÚobject)Úparamsc                 óN   — t          t          j        | j        ¦  «        ¦  «        S ©N)r   Únpr   Úparam)Úrequests    r   r   r   1   s   € å�œ ¤Ñ/Ô/Ñ0Ô0Ð0r   c              #   óð   K  — |                       ¦   «         5 }|                     t          dd¦  «         |                     t          j        dt
          ¦  «         dV — ddd¦  «         dS # 1 swxY w Y   dS )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   sµ   è è € ð" 
×	Ò	Ñ	Ô	ð  !Ø	�	Š	Õ% v¨{Ñ;Ô;Ð;Ø	�	Š	•"”,Ð 3Õ5GÑHÔHÐHØˆˆˆðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s   —AA+Á+A/Á2A/c                 óÐ   — |j         dk    r1t          j        d„ t          d¦  «        D ¦   «         ¦  «        j        }nt          j        dd|j        ¬¦  «        }t          |¦  «        S )Nr   c                 ó   — g | ]}|f‘ŒS © r-   )Ú.0Úis     r   ú
<listcomp>zdata.<locals>.<listcomp>P   s   € Ð1Ð1Ð1 !˜!˜Ð1Ð1Ð1r   é
   é   é   ©r   )	r   ÚpdÚSeriesÚrangeÚ_valuesr   ÚarangeÚ_dtyper   )r*   r   Úarrs      r   Údatar<   M   s_   € àÔ˜HÒ$Ð$ÝŒiÐ1Ð1¥u¨R¡y¤yÐ1Ñ1Ô1Ñ2Ô2Ô:ˆˆåŒi˜˜2 U¤\Ð2Ñ2Ô2ˆÝ˜sÑ#Ô#Ð#r   c                 óÚ   — |j         dk    r4t          t          j        t          j        dgt
          ¬¦  «        ¦  «        S t          t          j        t          j        dg¦  «        ¦  «        S )Nr   ©r2   r4   g      ð?©r   r   r   ÚarrayÚnanr   ©r*   r   s     r   Údata_missingrC   V   sQ   € àÔ˜HÒ$Ð$Ý"¥2¤8­R¬V°T¨NÅ&Ð#IÑ#IÔ#IÑJÔJÐJÝ�rœx­¬°¨Ñ6Ô6Ñ7Ô7Ð7r   c                  ó   — d„ } | S )Nc                 óR   — t          j        | ¦  «        ot          j        |¦  «        S r   )r   Úisnan)ÚaÚbs     r   Úcmpzna_cmp.<locals>.cmp_   s   € ÝŒx˜‰{Œ{Ð*�rœx¨™{œ{Ð*r   r-   )rI   s    r   Úna_cmprJ   ]   s   € ð+ð +ð +ð €Jr   c                 óÂ   — |j         dk    r2t          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   )r-   ©é   ©é   r>   r4   r2   N)r2   rM   r   )r   r   r   r@   r   rB   s     r   Údata_for_sortingrP   e   s`   € ð Ô˜HÒ$Ð$õ #¥2¤8Ð,BÐ,BÐ,BÍ&Ð#QÑ#QÔ#QÐRSÐRTÐRTÔ#UÑVÔVÐVÝ�rœx¨	¨	¨	Ñ2Ô2Ñ3Ô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   r4   r2   r   r?   rB   s     r   Údata_missing_for_sortingrR   s   sX   € ð Ô˜HÒ$Ð$Ý"¥2¤8¨Tµ2´6¸4Ð,@ÍÐ#OÑ#OÔ#OÑPÔPÐPÝ�rœx¨­B¬F°A¨Ñ7Ô7Ñ8Ô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>   rL   rN   rO   r4   )r   r   r9   r   r@   rA   )r*   r   rG   rH   Úcs        r   Údata_for_groupingrU      sn   € ð Ô˜HÒ$Ð$Ø"‰ˆˆ1ˆaˆaå”)˜A‘,”,‰ˆˆ1ˆaÝÝ
Œ�!�Q�œ¥¤¨¨1¨a°Ð3¸5Ô;LÐMÑMÔMñô ð r   c                 ó    — | j         dk    rt          j        | › d�¦  «         t          j        d¦  «        dz  }t          j        || ¬¦  «        S )NÚOz is not a numeric dtyper1   rM   r4   )ÚkindÚpytestÚskipr   Úonesr   Ú_from_sequence)r   r;   s     r   Údata_for_twosr]   �   sO   € à„z�SÒÐÝŒ�uÐ5Ð5Ð5Ñ6Ô6Ð6Ý
Œ'�"‰+Œ+˜‰/€CÝÔ-¨c¸Ð?Ñ?Ô?Ð?r   c                 ó€   — | dk    r7t           j                             d¬¦  «        }|                     |¦  «         dS dS )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)rY   ÚmarkÚxfailÚapplymarker)r   r   ra   s      r   Úskip_numpy_objectrd   ˜   sJ   € ð �ÒÐÝŒ{× Ò Ð(@Ð ÑAÔAˆØ×Ò˜DÑ!Ô!Ð!Ð!Ð!ð Ðr   rd   c            
       ó   ‡ — e Zd Ze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                             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                             d¦  «        ej         %                    ddd g¦  «        d!„ ¦   «         ¦   «         Z&eˆ fd"„¦   «         Z'eˆ fd#„¦   «         Z(eˆ fd$„¦   «         Z)eˆ fd%„¦   «         Z*eˆ fd&„¦   «         Z+eej         %                    d'd(dg¦  «        ˆ fd)„¦   «         ¦   «         Z,eˆ fd*„¦   «         Z-eej         %                    d+ e.j/        g d,¢¦  «         ej/        g d,¢d-¬.¦  «        gd/d0g¬1¦  «        ˆ fd2„¦   «         ¦   «         Z0eej         %                    d3g d4¢ ej/        g d4¢d5¬.¦  «         e.j/        g d4¢¦  «        gg d6¢¬1¦  «        ˆ fd7„¦   «         ¦   «         Z1eˆ fd8„¦   «         Z2eˆ fd9„¦   «         Z3d:„ Z4ej                             d;¬¦  «        ˆ fd<„¦   «         Z5eej         %                    d=d>d?g¦  «        ˆ fd@„¦   «         ¦   «         Z6ˆ fdA„Z7ˆ xZ8S )BÚTestNumpyExtensionArrayzWe don't register our dtyper_   c                 ó   — d S r   r-   )Úselfr<   s     r   Útest_from_dtypez'TestNumpyExtensionArray.test_from_dtype¬   ó	   € ð 	ˆr   c                 óL   •— t          ¦   «                              ||¦  «         d S r   )ÚsuperÚ)test_series_constructor_scalar_with_index)rh   r<   r   Ú	__class__s      €r   rm   zATestNumpyExtensionArray.test_series_constructor_scalar_with_index±   s%   ø€ õ 	‰Œ×9Ò9¸$ÀÑFÔFÐFÐFÐFr   c                 óê   •— |j         j        dk    r@|                     t          j                             d|j         j        › �¬¦  «        ¦  «         t          ¦   «                              |¦  «         d S )Nr   z:NumpyExtensionArray expectedly clashes with a NumPy name: r_   )r   r   rc   rY   ra   rb   rl   Útest_check_dtype)rh   r<   r   Úusing_infer_stringrn   s       €r   rp   z(TestNumpyExtensionArray.test_check_dtype¶   s|   ø€ ØŒ:Ô! XÒ-Ð-Ø×ÒÝ”×!Ò!ð<Ø#'¤:Ô#9ð<ð <ð "ñ ô ñô ð õ 	‰Œ× Ò  Ñ&Ô&Ð&Ð&Ð&r   c                 ó†   •— |j         dk    rt          |¦  «        sJ ‚d S t          ¦   «                              |¦  «         d S )Nr   )r   r   rl   Útest_is_not_object_type)rh   r   r   rn   s      €r   rs   z/TestNumpyExtensionArray.test_is_not_object_typeÀ   sK   ø€ ØÔ Ò(Ð(õ # 5Ñ)Ô)Ð)Ð)Ð)Ð)Ð)å‰GŒG×+Ò+¨EÑ2Ô2Ð2Ð2Ð2r   c                 óJ   •— t          ¦   «                              |¦  «         d S r   )rl   Útest_getitem_scalar©rh   r<   rn   s     €r   ru   z+TestNumpyExtensionArray.test_getitem_scalarÈ   s#   ø€ õ 	‰Œ×#Ò# DÑ)Ô)Ð)Ð)Ð)r   c                 óJ   •— t          ¦   «                              |¦  «         d S r   )rl   Útest_shift_fill_valuerv   s     €r   rx   z-TestNumpyExtensionArray.test_shift_fill_valueÍ   s#   ø€ õ 	‰Œ×%Ò% dÑ+Ô+Ð+Ð+Ð+r   c                 óJ   •— t          ¦   «                              |¦  «         d S r   )rl   Útest_fillna_limit_frame©rh   rC   rn   s     €r   rz   z/TestNumpyExtensionArray.test_fillna_limit_frameÒ   s#   ø€ õ 	‰Œ×'Ò'¨Ñ5Ô5Ð5Ð5Ð5r   c                 óJ   •— t          ¦   «                              |¦  «         d S r   )rl   Útest_fillna_limit_seriesr{   s     €r   r}   z0TestNumpyExtensionArray.test_fillna_limit_seriesØ   s#   ø€ õ 	‰Œ×(Ò(¨Ñ6Ô6Ð6Ð6Ð6r   c                 óJ   •— t          ¦   «                              |¦  «         d S r   )rl   Útest_fillna_copy_framer{   s     €r   r   z.TestNumpyExtensionArray.test_fillna_copy_frameÞ   s#   ø€ õ 	‰Œ×&Ò& |Ñ4Ô4Ð4Ð4Ð4r   c                 óJ   •— t          ¦   «                              |¦  «         d S r   )rl   Útest_fillna_copy_seriesr{   s     €r   r�   z/TestNumpyExtensionArray.test_fillna_copy_seriesã   s#   ø€ õ 	‰Œ×'Ò'¨Ñ5Ô5Ð5Ð5Ð5r   c                 óL   •— t          ¦   «                              ||¦  «         d S r   )rl   Útest_searchsorted)rh   rP   Ú	as_seriesrn   s      €r   rƒ   z)TestNumpyExtensionArray.test_searchsortedè   s&   ø€ õ
 	‰Œ×!Ò!Ð"2°IÑ>Ô>Ð>Ð>Ð>r   z*NumpyExtensionArray.diff may fail on dtypec                 óH   •— t          ¦   «                              ||¦  «        S r   )rl   Ú	test_diff)rh   r<   Úperiodsrn   s      €r   r†   z!TestNumpyExtensionArray.test_diffï   s   ø€ å‰wŒw× Ò   wÑ/Ô/Ð/r   c                 óÞ   •— |j         j        t          k    r5t          j                             d¬¦  «        }|                     |¦  «         t          ¦   «                              |¦  «         d S )Nz$Dimension mismatch in np.concatenater_   )	r   r   r   rY   ra   rb   rc   rl   Útest_insert©rh   r<   r   ra   rn   s       €r   r‰   z#TestNumpyExtensionArray.test_insertó   s^   ø€ ØŒ:Ô!¥VÒ+Ð+Ý”;×$Ò$Ð,RÐ$ÑSÔSˆDØ×Ò Ñ%Ô%Ð%å‰Œ×Ò˜DÑ!Ô!Ð!Ð!Ð!r   c                 óL   •— t          ¦   «                              ||¦  «         d S r   )rl   Útest_insert_invalid©rh   r<   Úinvalid_scalarrn   s      €r   rŒ   z+TestNumpyExtensionArray.test_insert_invalidú   s%   ø€ õ 	‰Œ×#Ò# D¨.Ñ9Ô9Ð9Ð9Ð9r   Nc                 óŠ   •— d }|j         j        dk    rt          }|| _        t	          ¦   «                              |¦  «         d S ©NrW   )r   rX   Ú	TypeErrorÚ
divmod_excrl   Útest_divmod)rh   r<   r’   rn   s      €r   r“   z#TestNumpyExtensionArray.test_divmod  sA   ø€ Øˆ
ØŒ:Œ?˜cÒ!Ð!Ý"ˆJØ$ˆŒÝ‰Œ×Ò˜DÑ!Ô!Ð!Ð!Ð!r   c                 ó¦   — t          j        |¦  «        }d }|j        j        dk    rt          }|| _        |                      |t          |¦  «         d S r�   )r5   r6   r   rX   r‘   r’   Ú_check_divmod_opÚdivmod)rh   r<   ÚserÚexcs       r   Útest_divmod_series_arrayz0TestNumpyExtensionArray.test_divmod_series_array  sM   € ÝŒi˜‰oŒoˆØˆØŒ:Œ?˜cÒ!Ð!ÝˆCØ!ˆDŒOØ×Ò˜c¥6¨4Ñ0Ô0Ð0Ð0Ð0r   c                 ó  •— |}d }|j         j        t          k    rE|dv r:t          j                             d¬¦  «        }|j                             |¦  «         t          }|| _	        t          ¦   «                              ||¦  «         d S ©N)Ú__mul__Ú__rmul__z9the Series.combine step raises but not the Series method.r_   )r   r   r   rY   ra   rb   ÚnodeÚ
add_markerr‘   Úseries_scalar_excrl   Útest_arith_series_with_scalar)rh   r<   Úall_arithmetic_operatorsr   Úopnamer    ra   rn   s          €r   r¡   z5TestNumpyExtensionArray.test_arith_series_with_scalar  s�   ø€ Ø)ˆØ ÐØŒ:Ô!¥VÒ+Ð+ØÐ0Ð0Ð0Ý”{×(Ò(ØVð )ñ ô �ð ”×'Ò'¨Ñ-Ô-Ð-Ý )ÐØ!2ˆÔÝ‰Œ×-Ò-¨dÐ4LÑMÔMÐMÐMÐMr   c                 ó¢   •— |}d }|j         j        t          k    r|dvrt          }|| _        t          ¦   «                              ||¦  «         d S )N)Ú__add__Ú__radd__)r   r   r   r‘   Úseries_array_excrl   Útest_arith_series_with_array)rh   r<   r¢   r£   r§   rn   s        €r   r¨   z4TestNumpyExtensionArray.test_arith_series_with_array   sX   ø€ Ø)ˆØÐØŒ:Ô!¥VÒ+Ð+°Ð>UÐ0UÐ0UÝ(ÐØ 0ˆÔÝ‰Œ×,Ò,¨TÐ3KÑLÔLÐLÐLÐLr   c                 ó  •— |}d }|j         j        t          k    rE|dv r:t          j                             d¬¦  «        }|j                             |¦  «         t          }|| _	        t          ¦   «                              ||¦  «         d S r›   )r   r   r   rY   ra   rb   rž   rŸ   r‘   Úframe_scalar_excrl   Útest_arith_frame_with_scalar)rh   r<   r¢   r   r£   rª   ra   rn   s          €r   r«   z4TestNumpyExtensionArray.test_arith_frame_with_scalar(  s�   ø€ Ø)ˆØÐØŒ:Ô!¥VÒ+Ð+ØÐ0Ð0Ð0Ý”{×(Ò(ØVð )ñ ô �ð ”×'Ò'¨Ñ-Ô-Ð-Ý(ÐØ 0ˆÔÝ‰Œ×,Ò,¨TÐ3KÑLÔLÐLÐLÐLr   r—   Úop_nameÚreturnc                 ó.   — |j         j        dk    r|dv S dS )NrW   )ÚsumÚminÚmaxÚanyÚallT)r   rX   )rh   r—   r¬   s      r   Ú_supports_reductionz+TestNumpyExtensionArray._supports_reduction5  s"   € ØŒ9Œ>˜SÒ Ð ØÐAÐAÐAØˆtr   Úskipnac                 ó  — t          ||¦  «        }|j        j        }|                     |¦  «        }t          ||¦  «        }|dk    r |¦   «         } |¦   «         }	n ||¬¦  «        } ||¬¦  «        }	t	          j        ||	¦  «         d S )NÚcount)rµ   )r   r   r   r   r&   Úassert_almost_equal)
rh   r—   r¬   rµ   Úres_opÚ	cmp_dtypeÚaltÚexp_opÚresultÚexpecteds
             r   Úcheck_reducez$TestNumpyExtensionArray.check_reduce:  s�   € Ý˜˜gÑ&Ô&ˆð ”IÔ)ˆ	Ø�jŠj˜Ñ#Ô#ˆÝ˜˜gÑ&Ô&ˆØ�gÒÐØ�V‘X”XˆFØ�v‘x”xˆHˆHà�V 6Ð*Ñ*Ô*ˆFØ�v VÐ,Ñ,Ô,ˆHÝ
Ô˜v xÑ0Ô0Ð0Ð0Ð0r   zTODO: tests not written yetTFc                 ó   — d S r   r-   )rh   r<   Úall_numeric_reductionsrµ   s       r   Útest_reduce_framez)TestNumpyExtensionArray.test_reduce_frameJ  rj   r   c                 óJ   •— t          ¦   «                              |¦  «         d S r   )rl   Útest_fillna_seriesr{   s     €r   rÄ   z*TestNumpyExtensionArray.test_fillna_seriesO  s#   ø€ õ 	‰Œ×"Ò" <Ñ0Ô0Ð0Ð0Ð0r   c                 óJ   •— t          ¦   «                              |¦  «         d S r   )rl   Útest_fillna_framer{   s     €r   rÆ   z)TestNumpyExtensionArray.test_fillna_frameT  s#   ø€ õ 	‰Œ×!Ò! ,Ñ/Ô/Ð/Ð/Ð/r   c                 óJ   •— t          ¦   «                              |¦  «         d S r   )rl   Útest_fillna_readonlyr{   s     €r   rÈ   z,TestNumpyExtensionArray.test_fillna_readonlyY  s#   ø€ õ 	‰Œ×$Ò$ \Ñ2Ô2Ð2Ð2Ð2r   c                 óL   •— t          ¦   «                              ||¦  «         d S r   )rl   Útest_setitem_invalidr�   s      €r   rÊ   z,TestNumpyExtensionArray.test_setitem_invalid^  s%   ø€ õ 	‰Œ×$Ò$ T¨>Ñ:Ô:Ð:Ð:Ð:r   c                 óL   •— t          ¦   «                              ||¦  «         d S r   )rl   Ú test_setitem_sequence_broadcasts©rh   r<   Úbox_in_seriesrn   s      €r   rÌ   z8TestNumpyExtensionArray.test_setitem_sequence_broadcastsc  s%   ø€ õ 	‰Œ×0Ò0°°}ÑEÔEÐEÐEÐEr   ÚsetterÚlocc                 óL   •— t          ¦   «                              ||¦  «         d S r   )rl   Útest_setitem_mask_broadcast)rh   r<   rÏ   rn   s      €r   rÒ   z3TestNumpyExtensionArray.test_setitem_mask_broadcasti  s%   ø€ õ
 	‰Œ×+Ò+¨D°&Ñ9Ô9Ð9Ð9Ð9r   c                 óJ   •— t          ¦   «                              |¦  «         d S r   )rl   Ú&test_setitem_scalar_key_sequence_raiserv   s     €r   rÔ   z>TestNumpyExtensionArray.test_setitem_scalar_key_sequence_raisep  s#   ø€ õ 	‰Œ×6Ò6°tÑ<Ô<Ð<Ð<Ð<r   Úmask)TTTFFÚbooleanr4   únumpy-arrayzboolean-array)Úidsc                 óN   •— t          ¦   «                              |||¦  «         d S r   )rl   Útest_setitem_mask)rh   r<   rÕ   rÎ   rn   s       €r   rÚ   z)TestNumpyExtensionArray.test_setitem_maskx  s'   ø€ õ 	‰Œ×!Ò! $¨¨mÑ<Ô<Ð<Ð<Ð<r   Úidx)r   r2   rM   ÚInt64)Úlistzinteger-arrayr×   c                 óN   •— t          ¦   «                              |||¦  «         d S r   )rl   Útest_setitem_integer_array)rh   r<   rÛ   rÎ   rn   s       €r   rß   z2TestNumpyExtensionArray.test_setitem_integer_array„  s'   ø€ õ 	‰Œ×*Ò*¨4°°mÑDÔDÐDÐDÐDr   c                 óL   •— t          ¦   «                              ||¦  «         d S r   )rl   Útest_setitem_slicerÍ   s      €r   rá   z*TestNumpyExtensionArray.test_setitem_slice�  s#   ø€ å‰Œ×"Ò" 4¨Ñ7Ô7Ð7Ð7Ð7r   c                 óJ   •— t          ¦   «                              |¦  «         d S r   )rl   Útest_setitem_loc_iloc_slicerv   s     €r   rã   z3TestNumpyExtensionArray.test_setitem_loc_iloc_slice‘  s!   ø€ å‰Œ×+Ò+¨DÑ1Ô1Ð1Ð1Ð1r   c                 óÀ  — t          j        dt          j        |¦  «        i¦  «        x}}t          j        |j        ¬¦  «        } ||¦  «        }|d         |j        |df<   |j        j        t          k    rPt          |t          ¦  «        r|t          d ¦  «        k    r(t          j        d| 
                    ¦   «         i¦  «        }t          j        ||d¬¦  «         d S )Nr<   )ÚindexF)Úcheck_column_type)r5   Ú	DataFramer6   rå   rÐ   r   r   r   r   ÚsliceÚto_numpyr&   Úassert_frame_equal)rh   r<   Úfull_indexerÚdfr¾   r½   Úkeys          r   Ú,test_setitem_with_expansion_dataframe_columnzDTestNumpyExtensionArray.test_setitem_with_expansion_dataframe_column•  sË   € åœ f­b¬i¸©o¬oÐ%>Ñ?Ô?Ð?ˆˆXÝ” B¤HÐ-Ñ-Ô-ˆð ˆl˜2ÑÔˆØ"$ V¤*ˆŒ
�3˜�;Ñð Œ:Ô!¥VÒ+Ð+Ý˜c¥5Ñ)Ô)ð C¨SµE¸$±K´KÒ-?Ð-?Ýœ<¨°·²±´Ð(AÑBÔB�Ý
Ô˜f hÀ%ÐHÑHÔHÐHÐHÐHr   zNumpyEADtype is unpackedc                 óJ   •— t          ¦   «                              |¦  «         d S r   )rl   Ú#test_index_from_listlike_with_dtyperv   s     €r   rð   z;TestNumpyExtensionArray.test_index_from_listlike_with_dtype¦  s!   ø€ å‰Œ×3Ò3°DÑ9Ô9Ð9Ð9Ð9r   ÚenginerT   Úpythonc                 óN   •— t          ¦   «                              |||¦  «         d S r   )rl   Útest_EA_types)rh   rñ   r<   r   rn   s       €r   rô   z%TestNumpyExtensionArray.test_EA_typesª  s'   ø€ õ 	‰Œ×Ò˜f d¨GÑ4Ô4Ð4Ð4Ð4r   c                 óê   •— t          |d         t          ¦  «        r5t          j                             d¬¦  «        }|                     |¦  «         t          ¦   «                              |¦  «         d S )NéÿÿÿÿzUnpacks tupler_   )r   ÚtuplerY   ra   rb   rc   rl   Ú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ÒHÈÑNÔNÐNÐNÐNr   )9Ú__name__Ú
__module__Ú__qualname__rY   ra   rZ   ri   Úskip_nestedrm   rp   rs   ru   rx   rz   r}   r   r�   rƒ   rb   r†   r‰   rŒ   r’   r    rª   r§   r“   r™   r¡   r¨   r«   r5   r6   ÚstrÚboolr´   r¿   ÚparametrizerÂ   rÄ   rÆ   rÈ   rÊ   rÌ   rÒ   rÔ   r   r@   rÚ   rß   rá   rã   rî   rð   rô   rø   Ú__classcell__)rn   s   @r   rf   rf   «   s¤  ø€ € € € € Ø„[×ÒÐ:ÐÑ;Ô;ðð ñ <Ô;ðð ðGð Gð Gð Gñ „[ðGð'ð 'ð 'ð 'ð 'ð3ð 3ð 3ð 3ð 3ð ð*ð *ð *ð *ñ „[ð*ð ð,ð ,ð ,ð ,ñ „[ð,ð ð6ð 6ð 6ð 6ñ „[ð6ð
 ð7ð 7ð 7ð 7ñ „[ð7ð
 ð5ð 5ð 5ð 5ñ „[ð5ð ð6ð 6ð 6ð 6ñ „[ð6ð ð?ð ?ð ?ð ?ñ „[ð?ð „[×ÒÐJÐÑKÔKð0ð 0ð 0ð 0ñ LÔKð0ð"ð "ð "ð "ð "ð ð:ð :ð :ð :ñ „[ð:ð €JØÐØÐØÐð"ð "ð "ð "ð "ð1ð 1ð 1ðNð Nð Nð Nð NðMð Mð Mð Mð MðMð Mð Mð Mð Mð r¤yð ¸3ð À4ð ð ð ð ð
1 ¤	ð 1°Cð 1Àð 1ð 1ð 1ð 1ð  „[×ÒÐ3Ñ4Ô4Ø„[×Ò˜X¨¨e }Ñ5Ô5ðð ñ 6Ô5ñ 5Ô4ðð ð1ð 1ð 1ð 1ñ „[ð1ð ð0ð 0ð 0ð 0ñ „[ð0ð ð3ð 3ð 3ð 3ñ „[ð3ð ð;ð ;ð ;ð ;ñ „[ð;ð ðFð Fð Fð Fñ „[ðFð
 Ø„[×Ò˜X¨¨t }Ñ5Ô5ð:ð :ð :ð :ñ 6Ô5ñ „[ð:ð
 ð=ð =ð =ð =ñ „[ð=ð Ø„[×ÒØàˆBŒHÐ5Ð5Ð5Ñ6Ô6ØˆBŒHÐ5Ð5Ð5¸YÐGÑGÔGð	
ð ˜OÐ,ð ñ ô ð=ð =ð =ð =ñô ñ „[ð=ð Ø„[×ÒØØ	ˆˆ�H�B”H˜Y˜Y˜Y¨gÐ6Ñ6Ô6¸¸¼ÀÀÀÑ8KÔ8KÐLØ4Ð4Ð4ð ñ ô ð
Eð Eð Eð Eñô ñ „[ðEð ð8ð 8ð 8ð 8ñ „[ð8ð ð2ð 2ð 2ð 2ñ „[ð2ðIð Ið Ið" „[×ÒÐ8ÐÑ9Ô9ð:ð :ð :ð :ñ :Ô9ð:ð Ø„[×Ò˜X¨¨X Ñ7Ô7ð5ð 5ð 5ð 5ñ 8Ô7ñ „[ð5ðOð Oð Oð Oð Oð Oð Oð Oð Or   rf   c                   ó   — e Zd ZdS )ÚTest2DCompatN)rù   rú   rû   r-   r   r   r  r  ¶  s   € € € € € Ø€Dr   r  )r   )'Ú__doc__Únumpyr   rY   Úpandas.core.dtypes.dtypesr   Úpandasr5   Úpandas._testingÚ_testingr&   Úpandas.api.typesr   Úpandas.core.arrays.numpy_r   Úpandas.tests.extensionr   r#   r   rý   r   Úfixturer   r*   r<   rC   rJ   rP   rR   rU   r]   rd   ra   Úusefixturesrü   ÚExtensionTestsrf   ÚNDArrayBacked2DTestsr  r-   r   r   ú<module>r     s�  ððð ð$ Ð Ð Ð Ø €€€à 2Ð 2Ð 2Ð 2Ð 2Ð 2à Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,Ø 9Ð 9Ð 9Ð 9Ð 9Ð 9Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'àÔ-Ð ð3ð 3˜Sð 3°Cð 3ð 3ð 3ð 3ð  €„˜ Ð*Ð+Ñ+Ô+ð1ð 1ñ ,Ô+ð1ð „ðð ñ „ðð, „ð$ð $ñ „ð$ð „ð8ð 8ñ „ð8ð „ðð ñ „ðð „ð
4ð 
4ñ „ð
4ð „ð9ð 9ñ „ð9ð „ðð ñ „ðð  „ð@ð @ñ „ð@ð „ð"ð "ñ „ð"ð Œk×%Ò%Ð&9Ñ:Ô:€ðHOð HOð HOð HOð HO˜dÔ1ñ HOô HOð HOðV	ð 	ð 	ð 	ð 	�4Ô,ñ 	ô 	ð 	ð 	ð 	r   