o
    i00                  
   @   s  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 dd Zdd Zdd	 Zejd
edededgdd Zejdededdfededfededfededfededfgdd Zejdddidg diddigdd  Zejdd!d"gejdg d#ejd$g d%d&d' Zejd(e	d)d*gdd+gd,e	d)d*gd-d.gd,d/fejdd+gd0d1gd)d*gd2d3d4gd,jejd-d.gd0d1gd)d*gd2d3d4gd,jd5fgd6d7 Zejd8d9d:gd;d< Zejd=d9d:gd>d? Zd@dA ZdBdC ZdDdE ZdFdG Z dHdI Z!dJdK Z"dLdM Z#dNdO Z$dPdQ Z%dRdS Z&ejdTdUdVgdWdX Z'dYdZ Z(d[d\ Z)d]d^ Z*dS )_    N)is_extension_array_dtype)Categorical	DataFrameSeriesc                 K   s,   t j| |fi | t j|| fi | dS )a&  
    Check that two Series equal.

    This check is performed commutatively.

    Parameters
    ----------
    a : Series
        The first Series to compare.
    b : Series
        The second Series to compare.
    kwargs : dict
        The arguments passed to `tm.assert_series_equal`.
    N)tmassert_series_equalabkwargs r   e/var/www/edux/Edux_v2/venv/lib/python3.10/site-packages/pandas/tests/util/test_assert_series_equal.py_assert_series_equal_both   s   r   c                 K   s@   zt j| |fi | d}tj|d W dS  ty   Y dS w )a  
    Check that two Series are not equal.

    Parameters
    ----------
    a : Series
        The first Series to compare.
    b : Series
        The second Series to compare.
    kwargs : dict
        The arguments passed to `tm.assert_series_equal`.
    z7The two Series were equal when they shouldn't have been)msgN)r   r   pytestfailAssertionError)r	   r
   r   r   r   r   r   _assert_not_series_equal"   s   r   c                 K   s(   t | |fi | t || fi | dS )a.  
    Check that two Series are not equal.

    This check is performed commutatively.

    Parameters
    ----------
    a : Series
        The first Series to compare.
    b : Series
        The second Series to compare.
    kwargs : dict
        The arguments passed to `tm.assert_series_equal`.
    N)r   r   r   r   r   _assert_not_series_equal_both8   s   r   data   abcu   áàäc                 C   s   t t| t|  d S N)r   r   )r   r   r   r   test_series_equalK   s   r   zdata1,data2      xyzu   éèës   aaac                 C   s   t t| t| d S r   )r   r   )data1data2r   r   r   $test_series_not_equal_value_mismatchP   s   r   r   dtypefloat64indexr      r   namefooc                 C   s.   t d}t|}t|fi | }t|| d S )Nr   )ranger   r   )r   r   s1s2r   r   r   'test_series_not_equal_metadata_mismatch^   s   	r*   )g|Pk?g9]?)gV-?g??)float32r!   Float32decimals)r   r   r$   r      
   c                 C   s   d|  }t | g|d}t |g|d}|dks'|dks'|dkrRt| | dkrRt|r.d}nd}tjt|d tj|||d	 W d    d S 1 sKw   Y  d S t|||d	 d S )
Nr/   r    r.   r   gMb@?zExtensionArray are differentzSeries values are differentmatchrtol)	r   absr   r   raisesr   r   r   r   )r   r   r    r-   r4   r(   r)   r   r   r   r   test_less_precisen   s   
"r7   z	s1,s2,msgl1l2r$   r"   g      ?g       @zSeries\.index are differentg @g      ?r	   r
   cr	   r
   z$MultiIndex level \[0\] are differentc                 C   sl   d|i}|r*t jt|d tj| |fi | W d    d S 1 s#w   Y  d S tj| |fi | d S )Ncheck_index_typer1   )r   r6   r   r   r   )r(   r)   r   r=   r   r   r   r   test_series_equal_index_dtype   s   "r>   
check_likeTFc                 C   s   t g dg dd}t g dg dd}| s8tjtdd tj||| d W d    d S 1 s1w   Y  d S t||| d d S )	Nr   r$   r   r;   r:   )r   r$   r   r<   r
   r	   Series.index are differentr1   )r?   r   r   r6   r   r   r   r   )r?   r(   r)   r   r   r    test_series_equal_order_mismatch      "rD   check_indexc                 C   s   t g dg dd}t g dg dd}| r8tjtdd tj||| d W d    d S 1 s1w   Y  d S t||| d d S )Nr@   r;   r:   rA   rB   r1   )rF   rC   )rF   r(   r)   r   r   r    test_series_equal_index_mismatch   rE   rG   c                  C   sZ   t td} t td}tjtdd tj| |ddd W d    d S 1 s&w   Y  d S )Nr0   z0check_like must be False if check_index is Falser1   FT)rF   r?   )r   objectr   r6   
ValueErrorr   r   leftrightr   r   r   %test_series_invalid_param_combination   s   

"rM   c                 C   `   d}t g d}t g d}tjt|d tj||| d W d    d S 1 s)w   Y  d S )NzSeries are different

Series length are different
\[left\]:  3, RangeIndex\(start=0, stop=3, step=1\)
\[right\]: 4, RangeIndex\(start=0, stop=4, step=1\)r@   )r   r$   r   r   r1   r3   r   r   r6   r   r   r   r4   r   r(   r)   r   r   r   !test_series_equal_length_mismatch   s   "rQ   c                 C   rN   )NzSeries are different

Series values are different \(33\.33333 %\)
\[index\]: \[0, 1, 2\]
\[left\]:  \[1, 2, 3\]
\[right\]: \[1, 2, 4\]r@   r#   r1   r3   rO   rP   r   r   r   )test_series_equal_numeric_values_mismatch   s   "rR   c                 C   sh   d}t tg d}t tg d}tjt|d tj||| d W d    d S 1 s-w   Y  d S )NzSeries are different

Series values are different \(66\.66667 %\)
\[index\]: \[0, 1, 2\]
\[left\]:  \['a', 'b', 'c'\]
Categories \(3, object\): \['a', 'b', 'c'\]
\[right\]: \['a', 'c', 'b'\]
Categories \(3, object\): \['a', 'b', 'c'\]r;   )r	   r<   r
   r1   r3   )r   r   r   r6   r   r   r   rP   r   r   r   -test_series_equal_categorical_values_mismatch   s   	"rS   c                 C   sp   d}t tjdddd}t tjdddd}tjt|d tj||| d W d    d S 1 s1w   Y  d S )	Nznumpy array are different

numpy array values are different \(100.0 %\)
\[index\]: \[0, 1, 2\]
\[left\]:  \[1514764800000000000, 1514851200000000000, 1514937600000000000\]
\[right\]: \[1549065600000000000, 1549152000000000000, 1549238400000000000\]z
2018-01-01r   D)periodsfreqz
2019-02-02r1   r3   )r   pd
date_ranger   r6   r   r   r   rP   r   r   r   *test_series_equal_datetime_values_mismatch   s   "rY   c                 C   s   d}t tddg}t tddgtdd}| r:tjt|d tj||| d W d    d S 1 s3w   Y  d S t||| d d S )NzAttributes of Series are different

Attribute "dtype" are different
\[left\]:  CategoricalDtype\(categories=\['a', 'b'\], ordered=False\)
\[right\]: CategoricalDtype\(categories=\['a', 'b', 'c'\], ordered=False\)r	   r
   r   )
categoriesr1   )check_categorical)	r   r   listr   r6   r   r   r   r   )r[   r   r(   r)   r   r   r   &test_series_equal_categorical_mismatch   s   "r]   c                  C   sx   t tjg ddd} | t}d}tj| |dd tjt	|d tj| |dd W d    d S 1 s5w   Y  d S )	Nr@   Int64r0   zjAttributes of Series are different

Attribute "dtype" are different
\[left\]:  Int64
\[right\]: int[32|64]Fcheck_dtyper1   T)
r   rW   arrayastypeintr   r   r   r6   r   rK   rL   r   r   r   r   1test_assert_series_equal_extension_dtype_mismatch     
"re   c                  C   sx   t tddgdd} | t}d}tj| |dd tjt	|d tj| |d	d W d    d S 1 s5w   Y  d S )
Nr   r   intervalr0   zyAttributes of Series are different

Attribute "dtype" are different
\[left\]:  interval\[int64, right\]
\[right\]: objectFr_   r1   T)
r   rW   Intervalrb   rH   r   r   r   r6   r   rd   r   r   r   0test_assert_series_equal_interval_dtype_mismatch#  rf   ri   c                  C   s   G dd dt } t ddg}t ddg}| ddg}tj||dd tj||dd tj||dd tj||dd tjtdd	 tj||dd W d    n1 sTw   Y  tjtdd	 tj||dd W d    d S 1 stw   Y  d S )
Nc                   @   s   e Zd ZdS )z/test_series_equal_series_type.<locals>.MySeriesN)__name__
__module____qualname__r   r   r   r   MySeries5  s    rm   r   r$   F)check_series_typeTzSeries classes are differentr1   r   r   r   r   r6   r   )rm   r(   r)   s3r   r   r   test_series_equal_series_type4  s   "rq   c                  C   s   t ddg} t ddg}t ddg}tj| |dd tj|| dd d}tjt|d tj| |dd W d    n1 s>w   Y  d}tjt|d tj|| dd W d    d S 1 s`w   Y  d S )Nr	   r
   Tcheck_exactzzSeries are different

Series values are different \(100\.0 %\)
\[index\]: \[0, 1\]
\[left\]:  \[a, b\]
\[right\]: \[b, a\]r1   zzSeries are different

Series values are different \(100\.0 %\)
\[index\]: \[0, 1\]
\[left\]:  \[b, a\]
\[right\]: \[a, b\]ro   )r(   r)   rp   r   r   r   r   &test_series_equal_exact_for_nonnumericI  s   "rt   right_dtypeInt32int64c                 C   s4   t g ddd}t g d| d}tj||dd d S )Nr@   r^   r0   Fr_   )r   r   r   )ru   rK   rL   r   r   r   8test_assert_series_equal_ignore_extension_dtype_mismatche  s   rx   c                  C   s   t dg} t dgjdd}t| |  t|| tj| |dd tj|| dd tjtdd t| | W d    n1 sBw   Y  tjtdd t| | W d    d S 1 s`w   Y  d S )Nr   F)allows_duplicate_labels)check_flagsz<Flagsr1   )r   	set_flagsr   r   r   r6   r   rJ   r   r   r   test_allows_duplicate_labelsm  s   
"r|   c                 C   s<   t | g}t||  t|}t||jdd d S )NT)deep)r   r   r   copyrW   Indexassert_index_equal)nulls_fixtureseridxr   r   r   %test_assert_series_equal_identical_na|  s   

r   c                  C   sp   t dddtddgg} t dddtddgg}t| |  tj| | dd t| | tj| |dd d S )Nr   g=ۊ?g߷>g	ﰴ9?g?Trr   )r   npra   r   r   )xyr   r   r   %test_identical_nested_series_is_equal  s$   
r   )+numpyr   r   pandas.core.dtypes.commonr   pandasrW   r   r   r   pandas._testing_testingr   r   r   r   markparametrizer'   r\   r   r   r*   r7   from_recordsr<   r>   rD   rG   rM   rQ   rR   rS   rY   r]   re   ri   rq   rt   rx   r|   r   r   r   r   r   r   <module>   s    








	

