3
Ud                  @   s   d dl Zd dlZd dlmZmZmZmZ d dlj	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ejjdddejejfeefejefgdd Zdd ZdS )    N)CategoricalIndex
MultiIndexNaTc              C   sR   d} t dddg}tjddddg}tjt| d tj||d	d
 W d Q R X d S )NzIndex are different

Index levels are different
\[left\]:  1, Int64Index\(\[1, 2, 3\], dtype='int64'\)
\[right\]: 2, MultiIndex\(\[\('A', 1\),
            \('A', 2\),
            \('B', 3\),
            \('B', 4\)\],
           \)         AB   )matchF)exact)r	   r   )r	   r   )r
   r   )r
   r   )r   r   from_tuplespytestraisesAssertionErrortmassert_index_equal)msgidx1idx2 r   ]/var/www/html/virt/lib64/python3.6/site-packages/pandas/tests/util/test_assert_index_equal.py test_index_equal_levels_mismatch   s
    	r   c             C   sV   d}t jd
dddg}t jddddg}tjt|d tj||| d	 W d Q R X d S )NzMultiIndex level \[1\] are different

MultiIndex level \[1\] values are different \(25\.0 %\)
\[left\]:  Int64Index\(\[2, 2, 3, 4\], dtype='int64'\)
\[right\]: Int64Index\(\[1, 2, 3, 4\], dtype='int64'\)r	   r   r
   r   r   r   )r   )check_exact)r	   r   )r	   r   )r
   r   )r
   r   )r	   r   )r	   r   )r
   r   )r
   r   )r   r   r   r   r   r   r   )r   r   r   r   r   r   r    test_index_equal_values_mismatch   s
    r   c             C   sP   d}t dddg}t ddddg}tjt|d tj||| d W d Q R X d S )NzIndex are different

Index length are different
\[left\]:  3, Int64Index\(\[1, 2, 3\], dtype='int64'\)
\[right\]: 4, Int64Index\(\[1, 2, 3, 4\], dtype='int64'\)r   r   r   r   )r   )r   )r   r   r   r   r   r   )r   r   r   r   r   r   r    test_index_equal_length_mismatch(   s
    r   c             C   sP   d}t dddg}t dddg}tjt|d tj||d| d W d Q R X d S )	NzIndex are different

Index classes are different
\[left\]:  Int64Index\(\[1, 2, 3\], dtype='int64'\)
\[right\]: Float64Index\(\[1\.0, 2\.0, 3\.0\], dtype='float64'\)r   r   r   g      @)r   T)r   r   )r   r   r   r   r   r   )r   r   r   r   r   r   r   test_index_equal_class_mismatch6   s
    r   c             C   sd   t dddg}t dddg}| rPd}tjt|d tj||| d W d Q R X ntj||| d d S )Nr   r   g      @go   @zIndex are different

Index values are different \(33\.33333 %\)
\[left\]:  Float64Index\(\[1.0, 2.0, 3.0], dtype='float64'\)
\[right\]: Float64Index\(\[1.0, 2.0, 3.0000000001\], dtype='float64'\))r   )r   )r   r   r   r   r   r   )r   r   r   r   r   r   r   test_index_equal_values_closeD   s    r   c          
   C   sx   t dddg}t dddg}t| |d}| s4|dk rdd}tjt|d tj||f| W d Q R X ntj||f| d S )	Nr   r   g      @g9m4 @)r   rtolgMb@?zIndex are different

Index values are different \(33\.33333 %\)
\[left\]:  Float64Index\(\[1.0, 2.0, 3.0], dtype='float64'\)
\[right\]: Float64Index\(\[1.0, 2.0, 3.0001\], dtype='float64'\))r   )r   dictr   r   r   r   r   )r   r   r   r   kwargsr   r   r   r   "test_index_equal_values_less_closeU   s    r"   c          
   C   sZ   t dddg}t dddg}t| |d}d}tjt|d tj||f| W d Q R X d S )Nr   r   r   r   )r   r   zIndex are different

Index values are different \(33\.33333 %\)
\[left\]:  Int64Index\(\[1, 2, 3\], dtype='int64'\)
\[right\]: Int64Index\(\[1, 2, 4\], dtype='int64'\))r   )r   r    r   r   r   r   r   )r   r   r   r   r!   r   r   r   r   test_index_equal_values_too_farg   s    r#   c          
   C   sb   t jd
dddg}t jddddg}t| |d}d}tjt|d	 tj||f| W d Q R X d S )Nr	   r   r
   r   r   r   )r   r   zMultiIndex level \[1\] are different

MultiIndex level \[1\] values are different \(25\.0 %\)
\[left\]:  Int64Index\(\[2, 2, 3, 4\], dtype='int64'\)
\[right\]: Int64Index\(\[1, 2, 3, 4\], dtype='int64'\))r   )r	   r   )r	   r   )r
   r   )r
   r   )r	   r   )r	   r   )r
   r   )r
   r   )r   r   r    r   r   r   r   r   )r   r   r   r   r!   r   r   r   r   &test_index_equal_level_values_mismatchv   s    r$   zname1,name2xc          
   C   s   t dddg| d}t dddg|d}| |ks4| |krBtj|| nX| dkrNdn| } |dkr^dn|}d|  d| d	}tjt|d
 tj|| W d Q R X d S )Nr   r   r   )namer%   z'x'zBIndex are different

Attribute "names" are different
\[left\]:  \[z\]
\[right\]: \[z\])r   )r   r   r   r   r   r   )Zname1Zname2r   r   r   r   r   r   test_index_equal_names   s    r'   c             C   sr   d}t tddg}t tddgdddgd}| r^tjt|d tj||| d W d Q R X ntj||| d d S )NzIndex are different

Attribute "dtype" are different
\[left\]:  CategoricalDtype\(categories=\['a', 'b'\], ordered=False\)
\[right\]: CategoricalDtype\(categories=\['a', 'b', 'c'\], ordered=False\)abc)
categories)r   )check_categorical)r   r   r   r   r   r   r   )r,   r   r   r   r   r   r   "test_index_equal_category_mismatch   s    r-   )Nr%   )r%   r%   )Znumpynpr   Zpandasr   r   r   r   Zpandas._testingZ_testingr   r   r   r   r   r   r"   r#   r$   markZparametrizenanr'   r-   r   r   r   r   <module>   s   
*