o
    i"                  	   @   sz  d dl Zd dlZd dlmZmZmZmZmZm	Z	m
Z
 d dlmZ dd Zdd Zdd Zejd	d
dgdd Zejdg ddgeddggdd Zdd Zdd Zdd Zejddd
gdd Zdd  Zejd!d"d#ejejfe	e	feje	fgd$d% Zd&d' Zejd	d
dgd(d) Zd*d+ Zd,d- Z d.d/ Z!d0d1 Z"ejd2dd
gejd3dd
gd4d5 Z#dS )6    N)NACategoricalCategoricalIndexIndex
MultiIndexNaT
RangeIndexc                  C   sb   d} t g d}tg d}tjt| d tj||dd W d    d S 1 s*w   Y  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\)\],
           \)         )Ar
   r   r   Br   r      matchFexact)r   r   from_tuplespytestraisesAssertionErrortmassert_index_equal)msgidx1idx2 r!   d/var/www/edux/Edux_v2/venv/lib/python3.10/site-packages/pandas/tests/util/test_assert_index_equal.py test_index_equal_levels_mismatch   s   
"r#   c                 C   sd   d}t g d}t g d}tjt|d tj||| d W d    d S 1 s+w   Y  d S )NMultiIndex 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   check_exactr   r   r   r   r   r   r   r'   r   r   r    r!   r!   r"    test_index_equal_values_mismatch"   s   "r*   c                 C   s`   d}t g d}t g d}tjt|d tj||| d W d    d S 1 s)w   Y  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"    test_index_equal_length_mismatch0   s   "r,   r   Fequivc                 C   s(   t g d}td}tj||| d d S )N)r   r
   r   r   r   )r   r   r   r   )r   r   r    r!   r!   r"   test_index_equal_class>   s   r.   zidx_values, msg_strr
   r   g      @z5Float64Index\(\[1\.0, 2\.0, 3\.0\], dtype='float64'\)r   z%RangeIndex\(start=0, stop=3, step=1\)c                 C   sd   d| }t g d}t |}tjt|d tj||d| d W d    d S 1 s+w   Y  d S )NzpIndex are different

Index classes are different
\[left\]:  Int64Index\(\[1, 2, 3\], dtype='int64'\)
\[right\]: r	   r   T)r   r'   r+   )r'   
idx_valuesmsg_strr   r   r    r!   r!   r"   test_index_equal_class_mismatchF   s   "r2   c                 C   sx   t g d}t g d}| r2d}tjt|d tj||| d W d    d S 1 s+w   Y  d S tj||| d d S )Nr/   )r
   r   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"   test_index_equal_values_close[   s   "r3   c                 C   s   t g d}t g d}| |d}| s|dk r=d}tjt|d tj||fi | W d    d S 1 s6w   Y  d S tj||fi | d S )Nr/   )r
   r   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+   r'   r5   r   r    kwargsr   r!   r!   r"   "test_index_equal_values_less_closel   s   
"r8   c                 C   sn   t g d}t g d}| |d}d}tjt|d tj||fi | W d    d S 1 s0w   Y  d S )Nr	   )r
   r   r   r4   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+   r6   r!   r!   r"   test_index_equal_values_too_far~   s   
"r9   check_orderTc                 C   s   t g d}t g d}d}|r4tjt|d tj||| |dd W d    d S 1 s-w   Y  d S tj||| |dd d S )Nr	   )r   r   r
   zIndex are different

Index values are different \(66\.66667 %\)
\[left\]:  Int64Index\(\[1, 2, 3\], dtype='int64'\)
\[right\]: Int64Index\(\[3, 2, 1\], dtype='int64'\)r   T)r'   r5   r:   Fr+   )r'   r5   r:   r   r    r   r!   r!   r"   $test_index_equal_value_oder_mismatch   s   
"

r;   c                 C   sr   t g d}t g d}| |d}d}tjt|d tj||fi | W d    d S 1 s2w   Y  d S )Nr%   r   r4   r$   r   r(   r6   r!   r!   r"   &test_index_equal_level_values_mismatch   s   
"r<   zname1,name2)Nx)r=   r=   c                 C   s   t g d| d}t g d|d}| |ks| |u r t|| d S | dkr&dn| } |dkr.dn|}d|  d| d}tjt|d t|| W d    d S 1 sRw   Y  d S )	Nr	   namer=   z'x'zBIndex are different

Attribute "names" are different
\[left\]:  \[z\]
\[right\]: \[z\]r   )r   r   r   r   r   r   )name1name2r   r    r   r!   r!   r"   test_index_equal_names   s   "rB   c                 C   s   d}t tddg}t tddgg dd}| r:tjt|d tj||| d W d    d S 1 s3w   Y  d S 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)rC   rD   c)
categoriesr   )check_categorical)r   r   r   r   r   r   r   )rG   r   r   r    r!   r!   r"   "test_index_equal_category_mismatch   s   "rH   c                 C   s   d}t td}t ttd}| r7|r7tjt|d tj||ddd W d    d S 1 s0w   Y  d S tj||| |d d S )NzIndex are different

Index classes are different
\[left\]:  RangeIndex\(start=0, stop=10, step=1\)
\[right\]: Int64Index\(\[0, 1, 2, 3, 4, 5, 6, 7, 8, 9\], dtype='int64'\)
   r   T)rG   r   )	r   r   listranger   r   r   r   r   )rG   r   r   rcaticatr!   r!   r"   !test_index_equal_range_categories   s   "
rN   c                  C   sf   t ddgdd} t ddgdd}tjtdd tj| |dd	d
 W d    d S 1 s,w   Y  d S )Nr
   r   rC   r>   rD   z"names" are differentr   FT)r:   check_namesr+   r   r    r!   r!   r"   9test_assert_index_equal_different_names_check_order_false   s
   "rQ   c                  C   s    t g d} tj| | dd d S )N)foobar*   Fr:   r   r   r   )idxr!   r!   r"   #test_assert_index_equal_mixed_dtype   s   rX   c                 C   s4   t ddg| d}t ddg| d}tj||dd d S )Nr
   r   dtypeFrU   rV   )any_numeric_ea_dtyper   r    r!   r!   r"   ,test_assert_index_equal_ea_dtype_order_false      r\   c                  C   s4   t ddgdd} t ddgdd}tj| |dd d S )Nr
   r   objectrY   FrU   rV   rP   r!   r!   r"   /test_assert_index_equal_object_ints_order_false  r]   r_   rG   rO   c                 C   sf   t ddgdd}t dtgdd}tjtdd tj||| |d W d    d S 1 s,w   Y  d S )Nr
   r   Int64rY   z50.0 %r   )rO   rG   )r   r   r   r   r   r   r   )rO   rG   r   r    r!   r!   r"   *test_assert_ea_index_equal_non_matching_na  s   "ra   )$numpynpr   pandasr   r   r   r   r   r   r   pandas._testing_testingr   r#   r*   r,   markparametrizer.   rK   r2   r3   r8   r9   r;   r<   nanrB   rH   rN   rQ   rX   r\   r_   ra   r!   r!   r!   r"   <module>   sJ    $	






