
    o[we2                     \    d dl Zd dlZd dlmZ d dlmZ d dlZd dl	m
Z  G d d          ZdS )    N)is_extension_array_dtype)ExtensionDtypec                   f    e Zd ZdZd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd Zd ZdS )BaseInterfaceTestsz,Tests that the basic interface is satisfied.c                 0    t          |          dk    sJ d S Nd   )lenselfdatas     Elib/python3.11/site-packages/pandas/tests/extension/base/interface.pytest_lenzBaseInterfaceTests.test_len   s    4yyC    c                      |j         dk    sJ d S r   )sizer   s     r   	test_sizezBaseInterfaceTests.test_size   s    yCr   c                      |j         dk    sJ d S )N   )ndimr   s     r   	test_ndimzBaseInterfaceTests.test_ndim   s    yA~~~~~~r   c                     |j         du sJ d S )NT)_can_hold_nar   s     r   test_can_hold_na_validz)BaseInterfaceTests.test_can_hold_na_valid   s     D((((((r   c                    |j         j        }||                                          }|d         |v sJ |d         |v sJ ||v sJ ||vsJ t          j        D ]3}||u s t          |          t          |          k    r'||vsJ ||vsJ 4d S )Nr   )dtypena_valueisnatmNULL_OBJECTStype)r   r   data_missingr   na_value_objs        r   test_containsz BaseInterfaceTests.test_contains   s     :&TYY[[L! Aw$A,.... <''''t#### O 	4 	4Lx''4+=+=h+O+Ot++++|33333	4 	4r   c                 t    t          j        |          }|                    d          }||j        k    sJ d S )NF)index)pdSeriesmemory_usagenbytes)r   r   sresults       r   test_memory_usagez$BaseInterfaceTests.test_memory_usage9   s;    IdOOe,,!!!!!!r   c                    t          j        |          }|d         |d         k    sJ t          j        |t                    }t          j        t          |          t                    }t	          j        ||           d S )Nr   r   )nparrayobjectlistr   assert_numpy_array_equalr   r   r,   expecteds       r   test_array_interfacez'BaseInterfaceTests.test_array_interface>   so    $ayDG####$f---8DJJf555
#FH55555r   c                     t          |          sJ t          |j                  sJ t          t          j        |                    sJ t	          |j        t
                    sJ d S N)r   r   r'   r(   
isinstancer   r   s     r   test_is_extension_array_dtypez0BaseInterfaceTests.test_is_extension_array_dtypeF   sf    '-----'
33333'	$88888$*n5555555r   c                 N    t          |d          rJ t          |d          rJ d S )Nvalues_values)hasattrr   s     r   test_no_values_attributez+BaseInterfaceTests.test_no_values_attributeL   s6     4*****4+++++++r   c                     t          j        |          }t          |j        d          r%|j        j        d         j        |j        j        u sJ d S d S )Nblocksr   )r'   r(   r?   _mgrrB   
is_numericr   _is_numericr   r   r,   s      r   test_is_numeric_honoredz*BaseInterfaceTests.test_is_numeric_honoredR   sY    46;)) 	N;%a(3tz7MMMMM	N 	NMMr   c                     |                                 }t          |          rh|                    d          sJ |                                sJ |                    d          rJ |                                rJ |j        j        sJ d S d S )Nanyall)r   r   _reducerI   rJ   r   _is_boolean)r   r"   nas      r   test_isna_extension_arrayz,BaseInterfaceTests.test_isna_extension_arrayW   s       #B'' 	(::e$$$$$6688OOOzz%(((((vvxx8''''	( 	( ('r   c                     |d         |d         k    sJ |                                 }|j        j        rt          j        d           |d         |d<   |d         |d         k    sJ d S )Nr   r   ztest_copy assumes mutability)copyr   _is_immutablepytestskiprF   s      r   	test_copyzBaseInterfaceTests.test_copyd   sr    Aw$q'!!!!:# 	8K6777q'QayF1I%%%%%%r   c                 P   |d         |d         k    sJ |                                 }||usJ t          |          t          |          k    sJ |j        j        rt	          j        d           |d         |d<   |d         |d         k    sJ |                     d            d S )Nr   r   ztest_view assumes mutabilityr/   )viewr!   r   rQ   rR   rS   rF   s      r   	test_viewzBaseInterfaceTests.test_viewo   s     Aw$q'!!!!T!!!!F||tDzz)))):# 	8K67771Iq	Aw$q'!!!! 				r   c                     |                                 }t          |          }t          |t                    sJ ||k    sJ d S r9   )tolistr3   r:   r5   s       r   test_tolistzBaseInterfaceTests.test_tolist   sG    ::&$'''''!!!!!!r   N)__name__
__module____qualname____doc__r   r   r   r   r$   r-   r7   r;   r@   rG   rN   rT   rW   rZ    r   r   r   r      s        66            ) ) )4 4 44" " "
6 6 66 6 6, , ,N N N
( ( (	& 	& 	&  $" " " " "r   r   )numpyr0   rR   pandas.core.dtypes.commonr   pandas.core.dtypes.dtypesr   pandasr'   pandas._testing_testingr   r   r_   r   r   <module>rf      s         > > > > > > 4 4 4 4 4 4          z" z" z" z" z" z" z" z" z" z"r   