U
    b                     @   s:   d dl Zd dlZd dlmZmZmZmZ G dd dZdS )    N)CategoricalCategoricalIndexIndex
MultiIndexc                   @   s,   e Zd Zdd Zdd Zdd Zdd Zd	S )

TestEqualsc              	   C   s"  t ddgddgdd}t ddgdddgdd}||s<t||rJt||ts^t|t|srt||k st||k rt||k rt||k  rt||k st||k st|dk rt|tddgk st||jk sttj	t
dd |tdddgk W 5 Q R X d	}tj	t|d ||k W 5 Q R X tj	t|d |t|jd
dk W 5 Q R X tj	t|d |t|jtddk W 5 Q R X t tddddgd}|tdrt|t tdst|t tdddrt|| s.tt tdtjg dddgd}|tdr`t|t tdrxt|| stt tdtjg dddgd}|tdtjg rt|t tdtjg st|t tdtjg ddr
t|| std S )NabT)
categoriesorderedc   zLengths must match)matchz>Categoricals can only be compared if 'categories' are the sameF)r
   abcr	   Zaabca)r   equalsAssertionErrorastypeobjectallr   valuespytestZraises
ValueError	TypeErrorr   listcopynpnan)selfZci1Zci2msgci r    P/tmp/pip-unpacked-wheel-ck39h295/pandas/tests/indexes/categorical/test_equals.pytest_equals_categorical   sL      $z"TestEquals.test_equals_categoricalc                 C   sd   t dgddgd}t dgddgd}t dgddgd}||sDt||rRt||r`td S )NABr   C)r   r   r   )r   r   r   r   r    r    r!   !test_equals_categorical_unorderedC   s    z,TestEquals.test_equals_categorical_unorderedc                 C   s8   t ddtjtjg}tdddtjg}||r4td S )Nr#   r$   D)r   r   r   r   r   r   )r   r   otherr    r    r!   test_equals_non_categoryL   s    z#TestEquals.test_equals_non_categoryc                 C   s:   t ddddgtdg}| d}||r6td S )Nr#   r$   r%   r'      category)r   Zfrom_arraysrangeZto_flat_indexr   r   r   )r   mir   r    r    r!   test_equals_multiindexT   s    z!TestEquals.test_equals_multiindexN)__name__
__module____qualname__r"   r&   r)   r.   r    r    r    r!   r      s   6	r   )	Znumpyr   r   Zpandasr   r   r   r   r   r    r    r    r!   <module>   s   