Ë
    êñi>  ã                   óŠ  — 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         úc/var/www/pod-logistic/pod-ai/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
   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                 ó  — |j                   dk(  rBt        j                  t        d«      D �cg c]  }|f‘Œ c}«      j                  }t        |«      S t        j                  dd|j                  ¬«      }t        |«      S c c}w )Nr   é
   é   é   ©r
   )	r   ÚpdÚSeriesÚrangeÚ_valuesr   ÚarangeÚ_dtyper   )r)   r
   ÚiÚarrs       r   Údatar7   M   sj   € à×Ñ˜HÒ$Ü�i‰i¤u¨R£yÖ1 !˜!šÒ1Ó2×:Ñ:ˆô ˜sÓ#Ð#ô �i‰i˜˜2 U§\¡\Ô2ˆÜ˜sÓ#Ð#ùò 2s   ¬
A?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_missingr>   V   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   © )rD   s    r   Úna_cmprF   ]   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   )rE   ©é   ©é   r9   r.   r,   N)r,   rI   r   )r   r   r   r;   r   r=   s     r   Údata_for_sortingrL   e   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   r9   )r   r.   r,   r   r:   r=   s     r   Údata_missing_for_sortingrN   s   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   )r9   rH   rJ   rK   r.   )r   r   r3   r   r;   r<   )r)   r
   rB   rC   Úcs        r   Údata_for_groupingrQ      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+   rI   r.   )ÚkindÚpytestÚskipr   Úonesr   Ú_from_sequence)r
   r6   s     r   Údata_for_twosrY   �   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)rU   Ú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ˆ 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                  jK                  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                  jK                  d'd(dg«      ˆ fd)„«       «       Z,eˆ fd*„«       Z-eej                  jK                  d+ e.j^                  g d,¢«       ej^                  g d,¢d-¬.«      gd/d0g¬1«      ˆ fd2„«       «       Z0eej                  jK                  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                  j%                  d;¬«      ˆ fd<„«       Z5eej                  jK                  d=d>d?g«      ˆ fd@„«       «       Z6ˆ fdA„Z7ˆ xZ8S )BÚTestNumpyExtensionArrayzWe don't register our dtyper[   c                  ó   — y r   rE   )Úselfr7   s     r   Útest_from_dtypez'TestNumpyExtensionArray.test_from_dtype¬   ó   € ð 	r   c                 ó&   •— t         ‰| �  ||«       y r   )ÚsuperÚ)test_series_constructor_scalar_with_index)rd   r7   r
   Ú	__class__s      €r   ri   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_   rU   r]   r^   rh   Útest_check_dtype)rd   r7   r   Úusing_infer_stringrj   s       €r   rl   z(TestNumpyExtensionArray.test_check_dtype¶   sc   ø€ Ø�:‰:×!Ñ! XÒ-Ø×ÑÜ—‘×!Ñ!ð#Ø#'§:¡:×#9Ñ#9Ð":ð<ð "ó ôô 	‰Ñ  Õ&r   c                 ó^   •— |j                   dk(  rt        |«      sJ ‚y t        ‰| �  |«       y )Nr   )r   r   rh   Útest_is_not_object_type)rd   r
   r   rj   s      €r   ro   z/TestNumpyExtensionArray.test_is_not_object_typeÀ   s.   ø€ Ø×Ñ Ò(ô # 5Ô)Ð)Ñ)ä‰GÑ+¨EÕ2r   c                 ó$   •— t         ‰| �  |«       y r   )rh   Útest_getitem_scalar©rd   r7   rj   s     €r   rq   z+TestNumpyExtensionArray.test_getitem_scalarÈ   s   ø€ ô 	‰Ñ# DÕ)r   c                 ó$   •— t         ‰| �  |«       y r   )rh   Útest_shift_fill_valuerr   s     €r   rt   z-TestNumpyExtensionArray.test_shift_fill_valueÍ   s   ø€ ô 	‰Ñ% dÕ+r   c                 ó$   •— t         ‰| �  |«       y r   )rh   Útest_fillna_limit_frame©rd   r>   rj   s     €r   rv   z/TestNumpyExtensionArray.test_fillna_limit_frameÒ   s   ø€ ô 	‰Ñ'¨Õ5r   c                 ó$   •— t         ‰| �  |«       y r   )rh   Útest_fillna_limit_seriesrw   s     €r   ry   z0TestNumpyExtensionArray.test_fillna_limit_seriesØ   s   ø€ ô 	‰Ñ(¨Õ6r   c                 ó$   •— t         ‰| �  |«       y r   )rh   Útest_fillna_copy_framerw   s     €r   r{   z.TestNumpyExtensionArray.test_fillna_copy_frameÞ   s   ø€ ô 	‰Ñ& |Õ4r   c                 ó$   •— t         ‰| �  |«       y r   )rh   Útest_fillna_copy_seriesrw   s     €r   r}   z/TestNumpyExtensionArray.test_fillna_copy_seriesã   s   ø€ ô 	‰Ñ'¨Õ5r   c                 ó&   •— t         ‰| �  ||«       y r   )rh   Útest_searchsorted)rd   rL   Ú	as_seriesrj   s      €r   r   z)TestNumpyExtensionArray.test_searchsortedè   s   ø€ ô
 	‰Ñ!Ð"2°IÕ>r   z*NumpyExtensionArray.diff may fail on dtypec                 ó$   •— t         ‰| �  ||«      S r   )rh   Ú	test_diff)rd   r7   Úperiodsrj   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   rU   r]   r^   r_   rh   Útest_insert©rd   r7   r   r]   rj   s       €r   r…   z#TestNumpyExtensionArray.test_insertó   sH   ø€ Ø�:‰:×!Ñ!¤VÒ+Ü—;‘;×$Ñ$Ð,RÐ$ÓSˆDØ×Ñ Ô%ä‰Ñ˜DÕ!r   c                 ó&   •— t         ‰| �  ||«       y r   )rh   Útest_insert_invalid©rd   r7   Úinvalid_scalarrj   s      €r   rˆ   z+TestNumpyExtensionArray.test_insert_invalidú   s   ø€ ô 	‰Ñ# D¨.Õ9r   Nc                 ót   •— d }|j                   j                  dk(  rt        }|| _        t        ‰| �  |«       y ©NrS   )r
   rT   Ú	TypeErrorÚ
divmod_excrh   Útest_divmod)rd   r7   rŽ   rj   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
   rT   r�   rŽ   Ú_check_divmod_opÚdivmod)rd   r7   Ú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.r[   )r
   r   r   rU   r]   r^   ÚnodeÚ
add_markerr�   Úseries_scalar_excrh   Útest_arith_series_with_scalar)rd   r7   Úall_arithmetic_operatorsr   Úopnamerœ   r]   rj   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_excrh   Útest_arith_series_with_array)rd   r7   rž   rŸ   r£   rj   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   rU   r]   r^   rš   r›   r�   Úframe_scalar_excrh   Útest_arith_frame_with_scalar)rd   r7   rž   r   rŸ   r¦   r]   rj   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)NrS   )ÚsumÚminÚmaxÚanyÚallT)r
   rT   )rd   r“   r¨   s      r   Ú_supports_reductionz+TestNumpyExtensionArray._supports_reduction5  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)
rd   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   rE   )rd   r7   Úall_numeric_reductionsr±   s       r   Útest_reduce_framez)TestNumpyExtensionArray.test_reduce_frameJ  rf   r   c                 ó$   •— t         ‰| �  |«       y r   )rh   Útest_fillna_seriesrw   s     €r   rÀ   z*TestNumpyExtensionArray.test_fillna_seriesO  s   ø€ ô 	‰Ñ" <Õ0r   c                 ó$   •— t         ‰| �  |«       y r   )rh   Útest_fillna_framerw   s     €r   rÂ   z)TestNumpyExtensionArray.test_fillna_frameT  s   ø€ ô 	‰Ñ! ,Õ/r   c                 ó$   •— t         ‰| �  |«       y r   )rh   Útest_fillna_readonlyrw   s     €r   rÄ   z,TestNumpyExtensionArray.test_fillna_readonlyY  s   ø€ ô 	‰Ñ$ \Õ2r   c                 ó&   •— t         ‰| �  ||«       y r   )rh   Útest_setitem_invalidr‰   s      €r   rÆ   z,TestNumpyExtensionArray.test_setitem_invalid^  s   ø€ ô 	‰Ñ$ T¨>Õ:r   c                 ó&   •— t         ‰| �  ||«       y r   )rh   Ú test_setitem_sequence_broadcasts©rd   r7   Úbox_in_seriesrj   s      €r   rÈ   z8TestNumpyExtensionArray.test_setitem_sequence_broadcastsc  s   ø€ ô 	‰Ñ0°°}ÕEr   ÚsetterÚlocc                 ó&   •— t         ‰| �  ||«       y r   )rh   Útest_setitem_mask_broadcast)rd   r7   rË   rj   s      €r   rÎ   z3TestNumpyExtensionArray.test_setitem_mask_broadcasti  s   ø€ ô
 	‰Ñ+¨D°&Õ9r   c                 ó$   •— t         ‰| �  |«       y r   )rh   Ú&test_setitem_scalar_key_sequence_raiserr   s     €r   rÐ   z>TestNumpyExtensionArray.test_setitem_scalar_key_sequence_raisep  s   ø€ ô 	‰Ñ6°tÕ<r   Úmask)TTTFFÚbooleanr.   únumpy-arrayzboolean-array)Úidsc                 ó(   •— t         ‰| �  |||«       y r   )rh   Útest_setitem_mask)rd   r7   rÑ   rÊ   rj   s       €r   rÖ   z)TestNumpyExtensionArray.test_setitem_maskx  s   ø€ ô 	‰Ñ! $¨¨mÕ<r   Úidx)r   r,   rI   ÚInt64)Úlistzinteger-arrayrÓ   c                 ó(   •— t         ‰| �  |||«       y r   )rh   Útest_setitem_integer_array)rd   r7   r×   rÊ   rj   s       €r   rÛ   z2TestNumpyExtensionArray.test_setitem_integer_array„  s   ø€ ô 	‰Ñ*¨4°°mÕDr   c                 ó&   •— t         ‰| �  ||«       y r   )rh   Útest_setitem_slicerÉ   s      €r   rÝ   z*TestNumpyExtensionArray.test_setitem_slice�  s   ø€ ä‰Ñ" 4¨Õ7r   c                 ó$   •— t         ‰| �  |«       y r   )rh   Útest_setitem_loc_iloc_slicerr   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 )Nr7   )ÚindexF)Úcheck_column_type)r/   Ú	DataFramer0   rá   rÌ   r
   r   r   r   ÚsliceÚto_numpyr%   Úassert_frame_equal)rd   r7   Ú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   )rh   Ú#test_index_from_listlike_with_dtyperr   s     €r   rì   z;TestNumpyExtensionArray.test_index_from_listlike_with_dtype¦  s   ø€ ä‰Ñ3°DÕ9r   ÚenginerP   Úpythonc                 ó(   •— t         ‰| �  |||«       y r   )rh   Útest_EA_types)rd   rí   r7   r   rj   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   ÚtuplerU   r]   r^   r_   rh   Ú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   )9Ú__name__Ú
__module__Ú__qualname__rU   r]   rV   re   Úskip_nestedri   rl   ro   rq   rt   rv   ry   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Ð   r   r;   rÖ   rÛ   rÝ   rß   rê   rì   rð   rô   Ú__classcell__)rj   s   @r   rb   rb   «   sÀ  ø„ Ø‡[�[×ÑÐ:ÐÓ;ñó <ðð óGó ðGô'ô3ð ó*ó ð*ð ó,ó ð,ð ó6ó ð6ð
 ó7ó ð7ð
 ó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ð ó3ó ð3ð ó;ó ð;ð ó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ð Or   rb   c                   ó   — e Zd Zy)ÚTest2DCompatN)rõ   rö   r÷   rE   r   r   rþ   rþ   ¶  s   „ Ør   rþ   )Ú
Attributes)'Ú__doc__Únumpyr   rU   Ú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)   r7   r>   rF   rL   rN   rQ   rY   r`   r]   Úusefixturesrø   ÚExtensionTestsrb   ÚNDArrayBacked2DTestsrþ   rE   r   r   ú<module>r     s�  ðñó$ Û å 2ã Ý Ý ,Ý 9Ý 'à×-Ñ-Ð ñ3˜Sð 3°Có 3ð  €‡�˜ Ð*Ô+ñ1ó ,ð1ð ‡�ñó ðð, ‡�ñ$ó ð$ð ‡�ñ8ó ð8ð ‡�ñó ðð ‡�ñ
4ó ð
4ð ‡�ñ9ó ð9ð ‡�ñó ðð  ‡�ñ@ó ð@ð ‡�ñ"ó ð"ð �k‰k×%Ñ%Ð&9Ó:€ôHO˜d×1Ñ1ô HOôV	�4×,Ñ,õ 	r   