o
    ôT·jÅ;  ã                   @   sV   d dl Z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)Úunion_categoricals)ÚCategoricalÚCategoricalIndexÚSeriesc                   @   s¾  e Zd Zej dedƒedƒedƒfg d¢g d¢g d¢fg d¢g d	¢g d
¢fddejdgdejdgddejddejdgfe	 
dd¡e	 
dd¡e	 
dd¡fe	j
dddd�e	j
dddd�e	j
dddd�fe	 dd¡e	 dd¡e	 dd¡fg¡ej deeeg¡dd„ ƒƒZdd„ Zdd„ Zdd„ Zdd„ Zdd „ Zej d!g d"gg¡d#d$„ ƒZd%d&„ Zd'd(„ Zd)d*„ Zd+d,„ Zd-d.„ Zd/d0„ Zd1d2„ Zd3d4„ Zd5d6„ Zd7d8„ Zd9d:„ Z d;d<„ Z!d=d>„ Z"d?d@„ Z#dAS )BÚTestUnionCategoricalsza, b, combinedÚabcÚabdÚabcabd)r   é   é   ©r   é   é   )r   r
   r   r   r   r   ©r   ç333333ó?r   )r   ç333333@r   )r   r   r   r   r   r   ÚbÚaÚcz
2014-01-01z
2014-01-05z
2014-01-06z
2014-01-07z
US/Central)ÚtzÚboxc                 C   s4   t |t|ƒƒ|t|ƒƒgƒ}t|ƒ}t ||¡ d S )N)r   r   ÚtmÚassert_categorical_equal)Úselfr   r   Úcombinedr   ÚresultÚexpected© r   úo/home/dinkstrade/pdmp-scanner/venv/lib/python3.10/site-packages/pandas/tests/reshape/test_union_categoricals.pyÚtest_union_categorical   s   z,TestUnionCategoricals.test_union_categoricalc                 C   sH   t g d¢ƒ}t g d¢ƒ}t||gƒ}t g d¢g d¢d�}t ||¡ d S )N©ÚxÚyÚz©r   r   r   ©r!   r"   r#   r   r   r   ©Ú
categories©r   r   r   r   ©r   ÚsÚs2r   r   r   r   r   Ú)test_union_categorical_ordered_appearance3   s   ÿz?TestUnionCategoricals.test_union_categorical_ordered_appearancec                 C   sL   t g d¢dd�}t g d¢dd�}t||gƒ}t g d¢dd�}t ||¡ d S )Nr   T©Úordered)r   r   r   r   r   r   r(   r)   r   r   r   Ú#test_union_categorical_ordered_true=   s
   z9TestUnionCategoricals.test_union_categorical_ordered_truec                 C   s\   t g d¢ƒ}t g d¢ƒ}d}tjt|d�� t||gƒ W d   ƒ d S 1 s'w   Y  d S )Nr   r   z$dtype of categories must be the same©Úmatch)r   ÚpytestÚraisesÚ	TypeErrorr   )r   r*   r+   Úmsgr   r   r   Ú"test_union_categorical_match_typesD   s   "ÿz8TestUnionCategoricals.test_union_categorical_match_typesc                 C   s@   d}t jt|d�� tg ƒ W d   ƒ d S 1 sw   Y  d S )NzNo Categoricals to unionr0   )r2   r3   Ú
ValueErrorr   )r   r5   r   r   r   Útest_union_categorical_emptyL   s   
"ÿz2TestUnionCategoricals.test_union_categorical_emptyc                 C   s¢  t tddtjgƒtddtjgƒgƒ}tddtjddtjgƒ}t ||¡ t tddgƒtddtjgƒgƒ}tddddtjgƒ}t ||¡ t d¡t d¡tjg}tjt d¡t d¡g}t t|ƒt|ƒgƒ}t|| t d¡t d¡t d¡gd	�}t ||¡ t ttj	tjtjgt
d
�ƒtdgtjdgt
d
�d	�gƒ}ttjtjdgƒ}t ||¡ t ttjtjgƒttjtjgƒgƒ}ttjtjtjtjgƒ}t ||¡ d S )Nr
   r   r   ÚAÚBz
2011-01-01z
2011-03-01z
2011-02-01r&   ©ÚdtypeÚX)r   r   ÚnpÚnanr   r   ÚpdÚ	TimestampÚNaTÚarrayÚobjectÚIndex)r   ÚresÚexpÚval1Úval2r   r   r   Útest_union_categoricals_nanQ   sB   ÿÿýþþÿÿz1TestUnionCategoricals.test_union_categoricals_nanÚvalÚ1c                 C   sN   |r|dgkr|  tjjdd�¡ ttg ƒt|ƒgƒ}t|ƒ}t ||¡ d S )NrL   z0TDOD(infer_string) object and strings dont match)Úreason)Úapplymarkerr2   ÚmarkÚxfailr   r   r   r   )r   rK   ÚrequestÚusing_infer_stringrF   rG   r   r   r   Útest_union_categoricals_empty}   s   ÿÿz3TestUnionCategoricals.test_union_categoricals_emptyc              	   C   sl   t g d¢g d¢d�}t dddtjgg d¢d�}t||gƒ}t dddddddtjgg d¢d�}t ||¡ d S )N)r
   r   r   r   r&   r   r   r
   r   ©r   r>   r?   r   r   r   ©r   Úc1Úc2rF   rG   r   r   r   Ú$test_union_categorical_same_categoryŠ   s
   "z:TestUnionCategoricals.test_union_categorical_same_categoryc                 C   sX   t g d¢g d¢d�}t g d¢g d¢d�}t||gƒ}t g d¢g d¢d�}t ||¡ d S )N)r#   r#   r#   r    r&   )r!   r!   r!   )r#   r#   r#   r!   r!   r!   r(   rU   r   r   r   Ú(test_union_categorical_same_category_str’   s
   z>TestUnionCategoricals.test_union_categorical_same_category_strc                 C   sX   t g d¢g d¢d�}t g d¢g d¢d�}t||gƒ}t g d¢g d¢d�}t ||¡ d S )Nr$   r&   ©r   r   r   )r   r   r   r   r   r   r(   ©r   rV   rW   r   r   r   r   r   Ú6test_union_categorical_same_categories_different_order™   s   ÿzLTestUnionCategoricals.test_union_categorical_same_categories_different_orderc                 C   sN  t g d¢dd�}t g d¢dd�}d}tjt|d�� t||gƒ W d   ƒ n1 s*w   Y  t||gƒ}t g d¢dd�}t ||¡ t dd	d
tjgdd�}t d
d	gg d¢dd�}t||gƒ}t dd	d
tjd
d	gdd�}t ||¡ t g d¢dd�}t g d¢g d¢dd�}d}tjt|d�� t||gƒ W d   ƒ d S 1 s w   Y  d S )N©r
   r   r   Tr-   Fú$Categorical.ordered must be the samer0   ©r
   r   r   r
   r   r   r
   r   r   ©r'   r.   ©r   r   r
   ú>to union ordered Categoricals, all categories must be the same)	r   r2   r3   r4   r   r   r   r>   r?   )r   rV   rW   r5   rF   rG   r   r   r   Útest_union_categoricals_ordered£   s(   ÿ"ÿz5TestUnionCategoricals.test_union_categoricals_orderedc                 C   s�  t g d¢dd�}t g d¢dd�}t||gdd�}t g d¢ƒ}t ||¡ d}tjt|d�� t||gdd� W d   ƒ n1 s@w   Y  t||gdd�}t g d¢ƒ}t ||¡ t||gdd�}t g d¢g d¢dd	�}t ||¡ t d
ddtjgdd�}t ddgg d¢dd	�}t||gdd�}t d
ddtjddgƒ}t ||¡ t g d¢dd�}t g d¢g d¢dd	�}t||gdd�}t g d¢ƒ}t ||¡ t||gddd�}t g d¢g d¢d�}t ||¡ t g d¢dd�}t g d¢dd�}t||gdd�}t g d¢ƒ}t ||¡ d}tjt|d�� t||gdd� W d   ƒ n	1 �s"w   Y  tjt|d�� t||gƒ W d   ƒ d S 1 �sAw   Y  d S )Nr]   Tr-   F)Úignore_orderr_   r^   r0   r`   r
   r   r   ra   )rd   Úsort_categoriesr&   )r   é   é   )r
   r   r   r   rf   rg   rb   )	r   r   r   r   r2   r3   r4   r>   r?   )r   rV   rW   rF   rG   r5   r   r   r   r   r   Ú$test_union_categoricals_ignore_order½   sP   ÿÿ$ÿz:TestUnionCategoricals.test_union_categoricals_ignore_orderc                 C   s’  t g d¢ƒ}t g d¢ƒ}t||gdd�}t g d¢g d¢d�}t ||¡ t dd	gg d
¢d�}t d	dgg d
¢d�}t||gdd�}t g d¢g d¢d�}t ||¡ t dd	gg d¢d�}t d	dgg d¢d�}t||gdd�}t g d¢g d¢d�}t ||¡ t dd	gg d¢d�}t d	dgg d¢d�}t||gdd�}t g d¢g d¢d�}t ||¡ t dtjgƒ}t tjd	gƒ}t||gdd�}t dtjtjd	gd	dgd�}t ||¡ t tjgƒ}t tjgƒ}t||gdd�}t tjtjgƒ}t ||¡ t g ƒ}t g ƒ}t||gdd�}t g ƒ}t ||¡ t d	dgg d
¢dd�}t ddgg d
¢dd�}d}tjt|d�� t||gdd� W d   ƒ d S 1 �sBw   Y  d S )Nr    r$   T©re   r%   )r   r   r   r!   r"   r#   r&   r   r   rZ   r   ©r   r   r   r   )r   r   r   r!   r`   z9Cannot use sort_categories=True with ordered Categoricalsr0   )	r   r   r   r   r>   r?   r2   r3   r4   ©r   rV   rW   r   r   r5   r   r   r   Útest_union_categoricals_sortñ   sV   ÿ$ÿz2TestUnionCategoricals.test_union_categoricals_sortc                 C   sL   t g d¢ƒ}t g d¢ƒ}t||gdd�}t g d¢g d¢d�}t ||¡ d S )Nr    r$   Fri   r%   r&   r(   r[   r   r   r   Ú"test_union_categoricals_sort_false'  s   ÿz8TestUnionCategoricals.test_union_categoricals_sort_falsec                 C   ó\   t ddgg d¢d�}t ddgg d¢d�}t||gdd�}t g d¢g d¢d�}t ||¡ d S )	Nr   r   rZ   r&   r   Fri   rj   r(   r[   r   r   r   Ú+test_union_categoricals_sort_false_fastpath1  ó
   zATestUnionCategoricals.test_union_categoricals_sort_false_fastpathc                 C   rn   )	Nr   r   r$   r&   r   Fri   rj   r(   r[   r   r   r   Ú-test_union_categoricals_sort_false_skipresort9  rp   zCTestUnionCategoricals.test_union_categoricals_sort_false_skipresortc                 C   sX   t dtjgƒ}t tjdgƒ}t||gdd�}t dtjtjdgddgd�}t ||¡ d S )Nr!   r   Fri   r&   rT   r[   r   r   r   Ú*test_union_categoricals_sort_false_one_nanA  s
   z@TestUnionCategoricals.test_union_categoricals_sort_false_one_nanc                 C   sH   t tjgƒ}t tjgƒ}t||gdd�}t tjtjgƒ}t ||¡ d S ©NFri   rT   r[   r   r   r   Ú+test_union_categoricals_sort_false_only_nanH  s
   zATestUnionCategoricals.test_union_categoricals_sort_false_only_nanc                 C   s8   t g ƒ}t g ƒ}t||gdd�}t g ƒ}t ||¡ d S rs   r(   r[   r   r   r   Ú(test_union_categoricals_sort_false_emptyO  s
   z>TestUnionCategoricals.test_union_categoricals_sort_false_emptyc                 C   sb   t ddgg d¢dd�}t ddgg d¢dd�}t||gdd�}t g d	¢g d¢dd�}t ||¡ d S )
Nr   r   rZ   Tr`   r   Fri   )r   r   r   r   r(   r[   r   r   r   Ú/test_union_categoricals_sort_false_ordered_trueV  s   ÿzETestUnionCategoricals.test_union_categoricals_sort_false_ordered_truec                 C   sÈ   t ddgƒ}tddgdd�}t||gƒ}t g d¢ƒ}t ||¡ t|ƒ}t||gƒ}t ||¡ t|ƒ}t||gƒ}t ||¡ d}tjt|d�� t|g d	¢gƒ W d   ƒ d S 1 s]w   Y  d S )
Nr   r   r   Úcategoryr;   rj   z-all components to combine must be Categoricalr0   r$   )	r   r   r   r   r   r   r2   r3   r4   rk   r   r   r   Útest_union_categorical_unwrap_  s   "ÿz3TestUnionCategoricals.test_union_categorical_unwrapN)$Ú__name__Ú
__module__Ú__qualname__r2   rO   ÚparametrizeÚlistr>   r?   r@   Ú
date_rangeÚperiod_ranger   r   r   r   r,   r/   r6   r8   rJ   rS   rX   rY   r\   rc   rh   rl   rm   ro   rq   rr   rt   ru   rv   rx   r   r   r   r   r      s^    
ý


ýý


ýíþ
,

46
	r   )Únumpyr>   r2   Úpandas.core.dtypes.concatr   Úpandasr@   r   r   r   Úpandas._testingÚ_testingr   r   r   r   r   r   Ú<module>   s    