o
    �¨Êhg;  ã                   @   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   ú^/var/www/html/env/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   sL   |r|dgkr|  tj d¡¡ ttg ƒt|ƒgƒ}t|ƒ}t ||¡ d S )NrL   zobject and strings dont match)Ú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(   rT   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   rU   rV   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   rU   rV   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   r`   )rc   Úsort_categoriesr&   )r   é   é   )r
   r   r   r   re   rf   ra   )	r   r   r   r   r2   r3   r4   r>   r?   )r   rU   rV   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©rd   r%   )r   r   r   r!   r"   r#   r&   r   r   rY   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   rU   rV   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$   Frh   r%   r&   r(   rZ   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   rY   r&   r   Frh   ri   r(   rZ   r   r   r   Ú+test_union_categoricals_sort_false_fastpath-  ó
   zATestUnionCategoricals.test_union_categoricals_sort_false_fastpathc                 C   rm   )	Nr   r   r$   r&   r   Frh   ri   r(   rZ   r   r   r   Ú-test_union_categoricals_sort_false_skipresort5  ro   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   Frh   r&   rS   rZ   r   r   r   Ú*test_union_categoricals_sort_false_one_nan=  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 ©NFrh   rS   rZ   r   r   r   Ú+test_union_categoricals_sort_false_only_nanD  s
   zATestUnionCategoricals.test_union_categoricals_sort_false_only_nanc                 C   s8   t g ƒ}t g ƒ}t||gdd�}t g ƒ}t ||¡ d S rr   r(   rZ   r   r   r   Ú(test_union_categoricals_sort_false_emptyK  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   rY   Tr_   r   Frh   )r   r   r   r   r(   rZ   r   r   r   Ú/test_union_categoricals_sort_false_ordered_trueR  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;   ri   z-all components to combine must be Categoricalr0   r$   )	r   r   r   r   r   r   r2   r3   r4   rj   r   r   r   Útest_union_categorical_unwrap[  s   "ÿz3TestUnionCategoricals.test_union_categorical_unwrapN)$Ú__name__Ú
__module__Ú__qualname__r2   rN   ÚparametrizeÚlistr>   r?   r@   Ú
date_rangeÚperiod_ranger   r   r   r   r,   r/   r6   r8   rJ   rR   rW   rX   r[   rb   rg   rk   rl   rn   rp   rq   rs   rt   ru   rw   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    