a
    Pf[                     @   sZ   d dl Zd dlZd dlmZ d dlmZ d dlmZ d dl	Z
d dlmZ G dd dZdS )    N)'construct_1d_object_array_from_listlike)is_extension_array_dtype)ExtensionDtypec                   @   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/ai-form-bot/venv/lib/python3.9/site-packages/pandas/tests/extension/base/interface.pytest_len   s    zBaseInterfaceTests.test_lenc                 C   s   |j dksJ d S r   )sizer	   r   r   r   	test_size   s    zBaseInterfaceTests.test_sizec                 C   s   |j dksJ d S )N   )ndimr	   r   r   r   	test_ndim   s    zBaseInterfaceTests.test_ndimc                 C   s   |j du sJ d S )NT)Z_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 s6J ||v sBJ ||vsNJ tjD ]6}||u sTt|t|krrqT||vs~J ||vsTJ qTd S )Nr   )dtypena_valueisnatmZNULL_OBJECTStype)r
   r   data_missingr   Z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SeriesZmemory_usagenbytes)r
   r   sresultr   r   r   test_memory_usage:   s    
z$BaseInterfaceTests.test_memory_usagec                 C   sd   t |}|d |d ksJ t j|td}t jt|td}|jdkrTtt|}t|| d S )Nr   r   r   )nparrayobjectlistr   r   r   Z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_dtypeJ   s    z0BaseInterfaceTests.test_is_extension_array_dtypec                 C   s    t |drJ t |drJ d S )NvaluesZ_values)hasattrr	   r   r   r   test_no_values_attributeP   s    z+BaseInterfaceTests.test_no_values_attributec                 C   s4   t |}t|jdr0|jjd j|jju s0J d S )Nblocksr   )r   r   r/   Z_mgrr1   Z
is_numericr   Z_is_numericr
   r   r!   r   r   r   test_is_numeric_honoredV   s    
z*BaseInterfaceTests.test_is_numeric_honoredc                 C   sT   |  }t|rP|dsJ | s*J |dr8J | rDJ |jjsPJ d S )Nanyall)r   r   Z_reducer4   r5   r   Z_is_boolean)r
   r   nar   r   r   test_isna_extension_array[   s    z,BaseInterfaceTests.test_isna_extension_arrayc                 C   s\   |d |d ksJ |  }|jjr8td|j d |d |d< |d |d ksXJ d S )Nr   r   z!test_copy assumes mutability and  is immutable)copyr   _is_immutablepytestskipr2   r   r   r   	test_copyh   s    zBaseInterfaceTests.test_copyc                 C   s   |d |d ksJ |  }||us(J t|t|ks<J |jjrXtd|j d |d |d< |d |d ksxJ |j d d d S )Nr   r   z!test_view assumes mutability and r8   r#   )viewr   r   r:   r;   r<   r2   r   r   r   	test_views   s    zBaseInterfaceTests.test_viewc                 C   s.   |  }t|}t|tsJ ||ks*J d S r+   )tolistr'   r,   r(   r   r   r   test_tolist   s    zBaseInterfaceTests.test_tolistN)__name__
__module____qualname____doc__r   r   r   r   r   r"   r*   r-   r0   r3   r7   r=   r?   rA   r   r   r   r   r      s   r   )numpyr$   r;   Zpandas.core.dtypes.castr   Zpandas.core.dtypes.commonr   Zpandas.core.dtypes.dtypesr   Zpandasr   Zpandas._testingZ_testingr   r   r   r   r   r   <module>   s   