U
    ÎZj¼  ã                   @   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t‚d S ©Néd   )ÚlenÚAssertionError©ÚselfÚdata© r   úh/var/www/html/TRUCKING_PROJECT/venv/lib/python3.8/site-packages/pandas/tests/extension/base/interface.pyÚtest_len   s    zBaseInterfaceTests.test_lenc                 C   s   |j dkst‚d S r   )Úsizer	   r
   r   r   r   Ú	test_size   s    zBaseInterfaceTests.test_sizec                 C   s   |j dkst‚d S )Né   )Úndimr	   r
   r   r   r   Ú	test_ndim   s    zBaseInterfaceTests.test_ndimc                 C   s   |j dkst‚d S )NT)Z_can_hold_nar	   r
   r   r   r   Útest_can_hold_na_valid   s    z)BaseInterfaceTests.test_can_hold_na_validc                 C   s�   |j j}|| ¡   }|d |ks&t‚|d |ks6t‚||ksBt‚||ksNt‚tjD ]6}||ksTt|ƒt|ƒkrrqT||ks~t‚||ksTt‚qTd S )Nr   )ÚdtypeÚna_valueÚisnar	   Ú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$t‚d S )NF)Úindex)ÚpdÚSeriesZmemory_usageÚnbytesr	   )r   r   ÚsÚresultr   r   r   Útest_memory_usage9   s    
z$BaseInterfaceTests.test_memory_usagec                 C   sN   t  |¡}|d |d kst‚t j|td�}t jt|ƒtd�}t ||¡ d S )Nr   ©r   )ÚnpÚarrayr	   ÚobjectÚlistr   Zassert_numpy_array_equal©r   r   r"   Úexpectedr   r   r   Útest_array_interface>   s
    
z'BaseInterfaceTests.test_array_interfacec                 C   s@   t |ƒst‚t |jƒst‚t t |¡ƒs,t‚t|jtƒs<t‚d S ©N)r   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t‚t |dƒrt‚d S )NÚvaluesZ_values)Úhasattrr	   r
   r   r   r   Útest_no_values_attributeL   s    z+BaseInterfaceTests.test_no_values_attributec                 C   s4   t  |¡}t|jdƒr0|jjd j|jjks0t‚d S )NÚblocksr   )	r   r   r0   Z_mgrr2   Z
is_numericr   Z_is_numericr	   ©r   r   r"   r   r   r   Útest_is_numeric_honoredR   s    
z*BaseInterfaceTests.test_is_numeric_honoredc                 C   sT   |  ¡ }t|ƒrP| d¡st‚| ¡ s*t‚| d¡r8t‚| ¡ rDt‚|jjsPt‚d S )NÚanyÚall)r   r   Z_reducer	   r5   r6   r   Z_is_boolean)r   r   Únar   r   r   Útest_isna_extension_arrayW   s    z,BaseInterfaceTests.test_isna_extension_arrayc                 C   s@   |d |d kst ‚| ¡ }|d |d< |d |d ks<t ‚d S )Nr   r   )r	   Úcopyr3   r   r   r   Ú	test_copyd   s    zBaseInterfaceTests.test_copyc                 C   sl   |d |d kst ‚| ¡ }||k	s(t ‚t|ƒt|ƒks<t ‚|d |d< |d |d ks\t ‚|jd d� d S )Nr   r   r$   )r	   Úviewr   r3   r   r   r   Ú	test_viewl   s    zBaseInterfaceTests.test_viewc                 C   s.   |  ¡ }t|ƒ}t|tƒst‚||ks*t‚d S r,   )Útolistr(   r-   r	   r)   r   r   r   Útest_tolist{   s    zBaseInterfaceTests.test_tolistN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r   r   r   r#   r+   r.   r1   r4   r8   r:   r<   r>   r   r   r   r   r      s   r   )Únumpyr%   Zpandas.core.dtypes.commonr   Zpandas.core.dtypes.dtypesr   Zpandasr   Zpandas._testingZ_testingr   Z pandas.tests.extension.base.baser   r   r   r   r   r   Ú<module>   s   