U
    *if+                     @   s   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 d dlmZ G dd dejZG dd deZG d	d
 d
Zdd Zdd Zejde e gdd ZdS )    N)dtypes)is_extension_array_dtype)ExtensionArrayc                   @   s   e Zd ZdS )
DummyDtypeN)__name__
__module____qualname__ r	   r	   U/home/mars/bis/venv/lib/python3.8/site-packages/pandas/tests/extension/test_common.pyr      s   r   c                   @   s2   e Zd Zdd Zdd Zedd Zddd	Zd
S )
DummyArrayc                 C   s
   || _ d S Ndata)selfr   r	   r	   r
   __init__   s    zDummyArray.__init__c                 C   s   | j S r   r   )r   dtyper	   r	   r
   	__array__   s    zDummyArray.__array__c                 C   s   t  S r   )r   )r   r	   r	   r
   r      s    zDummyArray.dtypeTc                 C   s0   t |tr |rt| | jS | S tj| ||dS )N)r   copy)
isinstancer   typer   nparray)r   r   r   r	   r	   r
   astype   s
    
zDummyArray.astypeN)T)r   r   r   r   r   propertyr   r   r	   r	   r	   r
   r      s
   
r   c                   @   s   e Zd Zejdeg eg je	eg e
 eeddggdd Zejdeg e	eg gdd ZdS )	TestExtensionArrayDtypevalues      c                 C   s   t |std S r   r   AssertionErrorr   r   r	   r	   r
   test_is_extension_array_dtype&   s    z5TestExtensionArrayDtype.test_is_extension_array_dtypec                 C   s   t |rtd S r   r   r    r	   r	   r
   !test_is_not_extension_array_dtype3   s    z9TestExtensionArrayDtype.test_is_not_extension_array_dtypeN)r   r   r   pytestmarkparametrizepdZCategoricalr   ZSeriesr   r   r   r   r!   r"   r	   r	   r	   r
   r   %   s   


"r   c                  C   sX   t tdddg} tjdddgtd}| t}t|| | d}t|| d S )Nr   r      r   object)r   r   r   r)   r   tmZassert_numpy_array_equal)arrexpectedresultr	   r	   r
   test_astype8   s    

r.   c                  C   sR   t tjdddgtjd} | j| jdd}| |ks6t| | j}| |k	sNtd S )Nr   r   r'   r(   F)r   )r   r   r   Zint64r   r   r   )r+   r-   r	   r	   r
   test_astype_no_copyD   s
    r/   r   c                 C   s    t | tjstt| std S r   )r   r   ExtensionDtyper   r   r(   r	   r	   r
   r!   N   s    r!   )numpyr   r#   Zpandas.core.dtypesr   Zpandas.core.dtypes.commonr   Zpandasr&   Zpandas._testingZ_testingr*   Zpandas.core.arraysr   r0   r   r   r   r.   r/   r$   r%   ZCategoricalDtypeZIntervalDtyper!   r	   r	   r	   r
   <module>   s   
