U
    f/e                     @   sN   d dl Zd dlmZ d dlZd dlmZmZmZ d dl	m
Z G dd dZdS )    N)CategoricalDtype)Categorical	DataFrameSeriesc                   @   sL   e 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S )TestCategoricalConcatc                 C   s  t tjddddddddgd	}t tjd
ddddddgd	}dddddddg}tt||d< tj||fdd|d}t dddddddddddddgddddddtjtjtjtjtjtjtjgddddd
ddddddddgd gd | d}|d 	|d j
|d< t|| d S ) N   int64dtype      abc)columns         ZoneZtwohr   T)axisignore_indexsort	               
                     )r   r   r   r   )r   nparangeZreshaper   r   pdconcatnanastyper
   tmassert_frame_equal)selfr   df1df2Z
cat_valuesresexp r1   P/tmp/pip-unpacked-wheel-tiezk1ph/pandas/tests/reshape/concat/test_categorical.pytest_categorical_concat   s<     "z-TestCategoricalConcat.test_categorical_concatc                 C   s   dddg}t dddg}tdddg}tddd	g}tjt|||gd|d
}|jdk}tdddg|d}t|| |jdk}tdddg|d}t|| |jdk}tdddg|d}t|| d S )Ncatobjnumr   r   r   r   r   r   )r   keysobjectFTindexr   category)r   r   r&   r'   Zdtypesr*   assert_series_equal)r,   r:   r4   r5   r6   dfresultexpectedr1   r1   r2   test_categorical_concat_dtypes4   s    



z4TestCategoricalConcat.test_categorical_concat_dtypesc                 C   s   dddddg}t dtjddg|dd}t dtjddg|dd}t dtjddg|dd}tj|||gdd}tjddddg|d}tddtjtjgtjddtjgtjtjddgd	dddg|d
}t|| d S )Nr   r   r   r   r   
categoriesr9   r   )r   r   r   )r   r:   )	r   r&   ZCategoricalIndexr'   r   r$   r(   r*   r+   )r,   rB   r   r   r   r>   Zexp_idxr0   r1   r1   r2   test_concat_categoricalindexI   s    	z2TestCategoricalConcat.test_concat_categoricalindexc                 C   s8  t tddd}t tddd}t td}tj||gdd}t|| t tddd}tj||gdd}t|| t tdd	d
dd	d
dgdd}t||g}t|| t tjddd}t td}t||	t
tdd}t||g}tt||gt||g	t
tdd}t|| d S )Nabcr;   r	   ZabdZabcabdTr   Zabcabcr   r   r   )r:   r
   r   r   aabbcacabAB)r   listr&   r'   r*   r<   r$   r%   r   r)   r   r+   )r,   ss2r0   r/   r   r   r.   r1   r1   r2    test_categorical_concat_preserve_   s*    z6TestCategoricalConcat.test_categorical_concat_preservec                 C   s   t tjddd}t td}t||ttddd}t	||g}tt	||gt	||gttddd}t
|| t|t|tdd	dd}t	||g}t	|j|jtd
d|j|jtd
dg}t
|| d S )Nr   r   r	   rG   rH   rI   rK   ZaberA   r   rC   )r   r$   r%   rL   r   r)   r   Z	set_indexr&   r'   r*   r+   r   Zset_axisr:   r8   )r,   r   r   r.   r>   r?   Zdf3r1   r1   r2    test_categorical_index_preserver   s8    z6TestCategoricalConcat.test_categorical_index_preserverc                 C   sj   t tjdddd}t ddgdd}tj||gd	d
}t tjdddtjdddddg}t|| d S )Nz
2017-01-01r   z
US/Pacific)Zperiodstzr   r   r;   r	   TrF   )rQ   z
2017-01-02)r   r&   Z
date_ranger'   Z	Timestampr*   r<   )r,   r   r   r>   r?   r1   r1   r2   test_concat_categorical_tz   s    z0TestCategoricalConcat.test_concat_categorical_tzc                 C   s   t tdddgddd}tddd	gddd
gdd}tj||gdd}t tdddtjgddtddtjd	gddd}t|| d S )Nr   r   r   r;   rJ   )r
   namer   r   r   r   rK   )r:   rS   rC   r	   floatrI   )r   r   r&   r'   r$   r(   r*   Zassert_equal)r,   r=   Zserr>   r?   r1   r1   r2   !test_concat_categorical_unchanged   s    z7TestCategoricalConcat.test_concat_categorical_unchangedc                 C   s   t ddddddgtdd}t|d	 |d
< |d
 jdddg |dd }|dd  }t|d
 jj|d
 jj t|d
 jj|d
 jj t	||g}t|d
 jj|d
 jj |
|}t|d
 jj|d
 jj d S )Nr   r   r   r   r!   r   Zabbaae)id	raw_graderW   Zgradeer   r   r   )r   rL   r   r4   Zset_categoriesr*   Zassert_index_equalrB   r&   r'   append)r,   r=   r-   r.   ZdfxZdfar1   r1   r2   test_categorical_concat_gh7864   s    
z4TestCategoricalConcat.test_categorical_concat_gh7864N)__name__
__module____qualname__r3   r@   rD   rO   rP   rR   rU   rZ   r1   r1   r1   r2   r      s   % r   )Znumpyr$   Zpandas.core.dtypes.dtypesr   Zpandasr&   r   r   r   Zpandas._testingZ_testingr*   r   r1   r1   r1   r2   <module>   s
   