
    m*io                     t    S SK r S SK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  S SKrS SKJr   " S S5      rg)    N)np_version_gt2)'construct_1d_object_array_from_listlike)is_extension_array_dtype)ExtensionDtypec                   r    \ rS rSrSrS rS rS rS rS r	S r
S	 rS
 rS rS rS rS rS rS rS rSrg)BaseInterfaceTests   z,Tests that the basic interface is satisfied.c                 &    [        U5      S:X  d   eg Nd   )lenselfdatas     e/var/www/html/land-doc-ocr/venv/lib/python3.13/site-packages/pandas/tests/extension/base/interface.pytest_lenBaseInterfaceTests.test_len   s    4yC    c                 (    UR                   S:X  d   eg r   )sizer   s     r   	test_sizeBaseInterfaceTests.test_size   s    yyCr   c                 (    UR                   S:X  d   eg )N   )ndimr   s     r   	test_ndimBaseInterfaceTests.test_ndim   s    yyA~~r   c                 &    UR                   SL d   eg )NT)_can_hold_nar   s     r   test_can_hold_na_valid)BaseInterfaceTests.test_can_hold_na_valid    s      D(((r   c                 $   UR                   R                  nXR                  5       )    nUS   U;   d   eUS   U;   d   eX2;   d   eX1;  d   e[        R                   H/  nXCL d  [        U5      [        U5      :X  a  M!  XA;  d   eXB;  a  M/   e   g )Nr   )dtypena_valueisnatmNULL_OBJECTStype)r   r   data_missingr$   na_value_objs        r   test_contains BaseInterfaceTests.test_contains$   s     ::&&YY[L! Aw$A,... '''### OOL'4+=h+O+++333 ,r   c                 p    [         R                  " U5      nUR                  SS9nX2R                  :X  d   eg )NF)index)pdSeriesmemory_usagenbytes)r   r   sresults       r   test_memory_usage$BaseInterfaceTests.test_memory_usage>   s/    IIdOe,!!!r   c                 6   [         R                  " U5      nUS   US   :X  d   e[         R                  " U[        S9n[         R                  " [        U5      [        S9nUR                  S:  a  [        [        U5      5      n[        R                  " X#5        g )Nr   r#   r   )nparrayobjectlistr   r   r&   assert_numpy_array_equalr   r   r4   expecteds       r   test_array_interface'BaseInterfaceTests.test_array_interfaceC   sq    $ayDG###$f-88DJf5==1>tDzJH
##F5r   c                 f   [         R                  " USS9n[         R                  " USS9n[         R                  " X#5      (       a   e[        (       d  g SnSn[        R
                  " SS9 n[        R                  " S5        [         R                  " USS9n[        U5      S::  d   e[        U5      (       a   SnU[        US   R                  5      ;   d   eS S S 5        [        R
                  " SS9 n[        R                  " S5        [         R                  " USS9n[        U5      S::  d   e[        U5      (       a   SnU[        US   R                  5      ;   d   eS S S 5        U(       d  [         R                  " WW5      (       d   eg g ! , (       d  f       N= f! , (       d  f       NF= f)	NT)copyFzGStarting with NumPy 2.0, the behavior of the 'copy' keyword has changed)recordalwaysr   r   )
r9   r:   may_share_memoryr   warningscatch_warningssimplefilterr   strmessage)	r   r   result_copy1result_copy2warning_raisedmsgwresult_nocopy1result_nocopy2s	            r   test_array_interface_copy,BaseInterfaceTests.test_array_interface_copyN   sZ   xx40xx40&&|BBBB~W$$D1Q!!(+XXd7Nq6Q;;1vv!%c!A$,,//// 2 $$D1Q!!(+XXd7Nq6Q;;1vv!%c!A$,,//// 2 &&~~FFFF ! 21 21s   ,A-F5A-F"
F"
F0c                     [        U5      (       d   e[        UR                  5      (       d   e[        [        R                  " U5      5      (       d   e[	        UR                  [
        5      (       d   eg N)r   r#   r/   r0   
isinstancer   r   s     r   test_is_extension_array_dtype0BaseInterfaceTests.test_is_extension_array_dtypem   sX    '----'

3333'		$8888$**n5555r   c                 P    [        US5      (       a   e[        US5      (       a   eg )Nvalues_values)hasattrr   s     r   test_no_values_attribute+BaseInterfaceTests.test_no_values_attributes   s-     4****4+++++r   c                     [         R                  " U5      n[        UR                  S5      (       a=  UR                  R                  S   R
                  UR                  R                  L d   eg g )Nblocksr   )r/   r0   r]   _mgrra   
is_numericr#   _is_numericr   r   r4   s      r   test_is_numeric_honored*BaseInterfaceTests.test_is_numeric_honoredy   sR    46;;));;%%a(33tzz7M7MMMM *r   c                 <   UR                  5       n[        U5      (       a|  UR                  S5      (       d   eUR                  5       (       d   eUR                  S5      (       a   eUR	                  5       (       a   eUR
                  R                  (       d   eg g )Nanyall)r%   r   _reduceri   rj   r#   _is_boolean)r   r)   nas      r   test_isna_extension_array,BaseInterfaceTests.test_isna_extension_array~   s~      #B''::e$$$$6688O8zz%((((vvxx<88'''' (r   c                     US   US   :w  d   eUR                  5       nUR                  R                  (       a$  [        R                  " SUR                   S35        US   US'   US   US   :w  d   eg )Nr   r   z!test_copy assumes mutability and  is immutable)rC   r#   _is_immutablepytestskipre   s      r   	test_copyBaseInterfaceTests.test_copy   sm    Aw$q'!!!::##KK;DJJ<}UVq'QayF1I%%%r   c                 H   US   US   :w  d   eUR                  5       nX!Ld   e[        U5      [        U5      :X  d   eUR                  R                  (       a$  [        R
                  " SUR                   S35        US   US'   US   US   :X  d   eUR                  S S9  g )Nr   r   z!test_view assumes mutability and rq   r8   )viewr(   r#   rr   rs   rt   re   s      r   	test_viewBaseInterfaceTests.test_view   s     Aw$q'!!!!!!F|tDz)))::##KK;DJJ<}UV1Iq	Aw$q'!!! 				r   c                 v    UR                  5       n[        U5      n[        U[        5      (       d   eX#:X  d   eg rV   )tolistr<   rW   r>   s       r   test_tolistBaseInterfaceTests.test_tolist   s5    :&$''''!!!r    N)__name__
__module____qualname____firstlineno____doc__r   r   r   r    r+   r5   r@   rS   rX   r^   rf   rn   ru   ry   r}   __static_attributes__r   r   r   r   r      sR    6  )44"
	6G>6,N
(	&$"r   r   )rG   numpyr9   rs   pandas.compat.numpyr   pandas.core.dtypes.castr   pandas.core.dtypes.commonr   pandas.core.dtypes.dtypesr   pandasr/   pandas._testing_testingr&   r   r   r   r   <module>r      s,       . K > 4  \" \"r   