U
    sVc3                     @   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	   F/tmp/pip-unpacked-wheel-xj8nt62q/pandas/tests/extension/test_common.pyr      s   r   c                   @   s8   e Zd ZddddZdd Zedd Zdd
dZdS )
DummyArrayN)returnc                 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.astype)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
    r0   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"   )Znumpyr   r$   Zpandas.core.dtypesr   Zpandas.core.dtypes.commonr   Zpandasr'   Zpandas._testingZ_testingr+   Zpandas.core.arraysr   r1   r   r   r   r/   r0   r%   r&   ZCategoricalDtypeZIntervalDtyper"   r	   r	   r	   r
   <module>   s   
