a
    Pf                     @   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                   @   s4   e Zd Zdd Zdd Zdd Zdd Zd	d
 ZdS )
TestEqualsc                 C   sp  t ddgddgdd}t ddgg ddd}||s:J ||rHJ ||ts\J |t|spJ ||k sJ ||k rJ ||k rJ ||k  rJ ||k sJ ||k sJ |dk rJ |tddgk sJ ||jk sJ tjt	dd  |tg dk W d    n1 sB0    Y  d	}tjt
|d ||k W d    n1 s~0    Y  tjt
|d" |t|jd
dk W d    n1 s0    Y  tjt
|d& |t|jtddk W d    n1 s0    Y  t tdg dd}|tdr8J |t tdsPJ |t tdddrlJ || sJ t tdtjg g dd}|tdrJ |t tdrJ || sJ t tdtjg g dd}|tdtjg rJ |t tdtjg s4J |t tdtjg ddrXJ || slJ d S )NabT)
categoriesorderedr   r   c   zLengths must match)matchz>Categoricals can only be compared if 'categories' are the sameF)r
   abcr	   Zaabca)r   r   r   )r   equalsastypeobjectallr   valuespytestZraises
ValueError	TypeErrorr   listcopynpnan)selfZci1Zci2msgci r    e/var/www/ai-form-bot/venv/lib/python3.9/site-packages/pandas/tests/indexes/categorical/test_equals.pytest_equals_categorical   sL    0(26 $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}||sDJ ||rRJ ||r`J d S )NABr   C)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}||r4J d S )Nr#   r$   D)r   r   r   r   r   )r   r   otherr    r    r!   test_equals_non_categoryL   s    z#TestEquals.test_equals_non_categoryc                 C   s6   t g dtdg}| d}||r2J d S )N)r#   r$   r%   r'      category)r   Zfrom_arraysrangeZto_flat_indexr   r   )r   mir   r    r    r!   test_equals_multiindexT   s    z!TestEquals.test_equals_multiindexc                 C   s4   t tddd}tg dd|d}||s0J d S )Nr   r$   )namer   )r/   Zdtype)r   r   r   r   )r   Zany_string_dtypeidxr(   r    r    r!   test_equals_string_dtype\   s    z#TestEquals.test_equals_string_dtypeN)__name__
__module____qualname__r"   r&   r)   r.   r1   r    r    r    r!   r      s
   6	r   )	numpyr   r   Zpandasr   r   r   r   r   r    r    r    r!   <module>   s   