o
    5c                     @   sT   d dl Zd dlmZ d dlmZ d dlZd dlm	Z
 d dlmZ G dd deZdS )    N)is_extension_array_dtype)ExtensionDtype)BaseExtensionTestsc                   @   s   e Zd ZdZdd Zdd Zdd Zdd	 Zd
d Zdd Z	dd Z
dd Zdd Zdd Zdd Zdd Zdd Zdd ZdS )BaseInterfaceTestsz,Tests that the basic interface is satisfied.c                 C   s   t |dksJ d S Nd   )lenselfdata r   [/var/www/html/gps/gps/lib/python3.10/site-packages/pandas/tests/extension/base/interface.pytest_len   s   zBaseInterfaceTests.test_lenc                 C      |j dksJ d S r   )sizer	   r   r   r   	test_size      zBaseInterfaceTests.test_sizec                 C   r   )N   )ndimr	   r   r   r   	test_ndim   r   zBaseInterfaceTests.test_ndimc                 C   s   |j du sJ d S )NT)_can_hold_nar	   r   r   r   test_can_hold_na_valid   s   z)BaseInterfaceTests.test_can_hold_na_validc                 C   s   |j j}||   }|d |v sJ |d |v sJ ||v s!J ||vs'J tjD ]}||u s8t|t|kr9q*||vs?J ||vsEJ q*d S )Nr   )dtypena_valueisnatmNULL_OBJECTStype)r
   r   data_missingr   na_value_objr   r   r   test_contains   s   
z BaseInterfaceTests.test_containsc                 C   s(   t |}|jdd}||jksJ d S )NF)index)pdSeriesmemory_usagenbytes)r
   r   sresultr   r   r   test_memory_usage9   s   
z$BaseInterfaceTests.test_memory_usagec                 C   sN   t |}|d |d ksJ t j|td}t jt|td}t|| d S )Nr   r   )nparrayobjectlistr   assert_numpy_array_equalr
   r   r'   expectedr   r   r   test_array_interface>   s
   
z'BaseInterfaceTests.test_array_interfacec                 C   s@   t |sJ t |jsJ t t|sJ t|jtsJ d S N)r   r   r"   r#   
isinstancer   r	   r   r   r   test_is_extension_array_dtypeF   s   z0BaseInterfaceTests.test_is_extension_array_dtypec                 C   s    t |drJ t |drJ d S )Nvalues_values)hasattrr	   r   r   r   test_no_values_attributeL   s   z+BaseInterfaceTests.test_no_values_attributec                 C   s8   t |}t|jdr|jjd j|jju sJ d S d S )Nblocksr   )r"   r#   r7   _mgrr9   
is_numericr   _is_numericr
   r   r'   r   r   r   test_is_numeric_honoredR   s
   
z*BaseInterfaceTests.test_is_numeric_honoredc                 C   sX   |  }t|r(|dsJ | sJ |drJ | r"J |jjs*J d S d S )Nanyall)r   r   _reducer?   r@   r   _is_boolean)r
   r   nar   r   r   test_isna_extension_arrayW   s   z,BaseInterfaceTests.test_isna_extension_arrayc                 C   s@   |d |d ks
J |  }|d |d< |d |d ksJ d S )Nr   r   )copyr=   r   r   r   	test_copyd   s   zBaseInterfaceTests.test_copyc                 C   sl   |d |d ks
J |  }||usJ t|t|ksJ |d |d< |d |d ks.J |j d d d S )Nr   r   r)   )viewr   r=   r   r   r   	test_viewl   s   zBaseInterfaceTests.test_viewc                 C   s.   |  }t|}t|tsJ ||ksJ d S r2   )tolistr-   r3   r/   r   r   r   test_tolist{   s   zBaseInterfaceTests.test_tolistN)__name__
__module____qualname____doc__r   r   r   r   r    r(   r1   r4   r8   r>   rD   rF   rH   rJ   r   r   r   r   r      s     r   )numpyr*   pandas.core.dtypes.commonr   pandas.core.dtypes.dtypesr   pandasr"   pandas._testing_testingr    pandas.tests.extension.base.baser   r   r   r   r   r   <module>   s    