a
    Pf:                  
   @   s   d dl Zd dl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d/d0gd(d)gd1d2d3gd+jejd,d-gd/d0gd(d)gd1d2d3gd+jd4fgd5d6 Zejd7d8d9gd:d; Zejd<d8d9gd=d> Zd?d@ ZdAdB ZdCdD ZdEdF ZdGdH ZdIdJ Z dKdL Z!dMdN Z"dOdP Z#dQdR Z$dSdT Z%dUdV Z&dWdX Z'dYdZ Z(d[d\ Z)ejdd]d^gd_d` Z*ejddadbgdcdd Z+ejdde,gejded8d9gejdfd
dggdhdi Z-djdk Z.dldm Z/dS )n    N)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   c/var/www/ai-form-bot/venv/lib/python3.9/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 n ty:   Y n0 dS )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   pytestZ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_both6   s    r   data   abcu   áàäc                 C   s   t t| t|  d S N)r   r   )r   r   r   r   test_series_equalI   s    r   zdata1,data2      Zxyzu   éèës   aaac                 C   s   t t| t| d S r   )r   r   )data1data2r   r   r   $test_series_not_equal_value_mismatchN   s    r   r
   dtypefloat64indexr      r   nameZ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??)Zfloat32r   ZFloat32decimals)r   r   r!   r      
   c                 C   s   d|  }t | g|d}t |g|d}|dv sF|dkrt| | dkrd}tjt|d  tj|||d W d    q1 s~0    Y  nt|||d d S )	Nr)   r   )r(   r)   r   gMb@?zSeries values are differentmatchrtol)r   absr   raisesr   r   r   r   )r   r   r   r'   r.   r$   r%   r   r   r   r   test_less_precisel   s    
 0r1   z	s1,s2,msgl1l2r!   r   g      ?g       @zSeries\.index are differentg @      ?r   r	   cr   r	   z$MultiIndex level \[0\] are differentc                 C   sh   d|i}|rPt jt|d$ tj| |fi | W d    qd1 sD0    Y  ntj| |fi | d S )Ncheck_index_typer+   )r   r0   r   r   r   )r$   r%   r   r8   r
   r   r   r   test_series_equal_index_dtype|   s
    4r9   
check_likeTFc                 C   s~   t g dg dd}t g dg dd}| sltjtdd  tj||| d W d    qz1 s`0    Y  nt||| d d S )	Nr   r!   r   r6   r4   )r   r!   r   r7   r	   r   Series.index are differentr+   )r:   r   r   r0   r   r   r   r   )r:   r$   r%   r   r   r    test_series_equal_order_mismatch   s    0r?   check_indexc                 C   s~   t g dg dd}t g dg dd}| rltjtdd  tj||| d W d    qz1 s`0    Y  nt||| d d S )Nr;   r6   r4   r<   r=   r+   )r@   r>   )r@   r$   r%   r   r   r    test_series_equal_index_mismatch   s    0rA   c                  C   sX   t td} t td}tjtdd" tj| |ddd W d    n1 sJ0    Y  d S )Nr*   z0check_like must be False if check_index is Falser+   FT)r@   r:   )r   objectr   r0   
ValueErrorr   r   leftrightr   r   r   %test_series_invalid_param_combination   s    

rG   c                 C   s^   d}t g d}t g d}tjt|d  tj||| d W d    n1 sP0    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   r+   r-   r   r   r0   r   r   r   r.   r   r$   r%   r   r   r   !test_series_equal_length_mismatch   s
    rJ   c                 C   s^   d}t g d}t g d}tjt|d  tj||| d W d    n1 sP0    Y  d S )NzSeries are different

Series values are different \(33\.33333 %\)
\[index\]: \[0, 1, 2\]
\[left\]:  \[1, 2, 3\]
\[right\]: \[1, 2, 4\]r;   r    r+   r-   rH   rI   r   r   r   )test_series_equal_numeric_values_mismatch   s
    rK   c                 C   sp   |r
d}nd}t tg d}t tg d}tjt|d  tj||| d W d    n1 sb0    Y  d S )NzSeries are different

Series values are different \(66\.66667 %\)
\[index\]: \[0, 1, 2\]
\[left\]:  \['a', 'b', 'c'\]
Categories \(3, string\): \[a, b, c\]
\[right\]: \['a', 'c', 'b'\]
Categories \(3, string\): \[a, b, c\]zSeries 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'\]r6   )r   r7   r	   r+   r-   )r   r   r   r0   r   r   r   )r.   using_infer_stringr   r$   r%   r   r   r   -test_series_equal_categorical_values_mismatch   s    		rM   c                 C   sn   d}t tjdddd}t tjdddd}tjt|d  tj||| d W d    n1 s`0    Y  d S )	NzSeries are different

Series values are different \(100.0 %\)
\[index\]: \[0, 1, 2\]
\[left\]:  \[1514764800000000000, 1514851200000000000, 1514937600000000000\]
\[right\]: \[1549065600000000000, 1549152000000000000, 1549238400000000000\]z
2018-01-01r   D)Zperiodsfreqz
2019-02-02r+   r-   )r   pdZ
date_ranger   r0   r   r   r   rI   r   r   r   *test_series_equal_datetime_values_mismatch   s
    rQ   c                 C   s   |r
d}nd}d| d| d}t tddg}t tddgtdd	}| rtjt|d
  tj||| d W d    q1 s0    Y  nt||| d d S )NstringrB   zAttributes of Series are different

Attribute "dtype" are different
\[left\]:  CategoricalDtype\(categories=\['a', 'b'\], ordered=False, categories_dtype=z^\)
\[right\]: CategoricalDtype\(categories=\['a', 'b', 'c'\], ordered=False, categories_dtype=z\)r   r	   r   )
categoriesr+   )check_categorical)	r   r   listr   r0   r   r   r   r   )rT   rL   r   r   r$   r%   r   r   r   &test_series_equal_categorical_mismatch  s    0rV   c                  C   sv   t tjg ddd} | t}d}tj| |dd tjt	|d  tj| |dd W d    n1 sh0    Y  d S )	Nr;   Int64r*   zjAttributes of Series are different

Attribute "dtype" are different
\[left\]:  Int64
\[right\]: int[32|64]Fcheck_dtyper+   T)
r   rP   arrayastypeintr   r   r   r0   r   rE   rF   r   r   r   r   1test_assert_series_equal_extension_dtype_mismatch  s    
r^   c                  C   sv   t tddgdd} | t}d}tj| |dd tjt	|d  tj| |d	d W d    n1 sh0    Y  d S )
Nr   r   intervalr*   zyAttributes of Series are different

Attribute "dtype" are different
\[left\]:  interval\[int64, right\]
\[right\]: objectFrX   r+   T)
r   rP   ZIntervalr[   rB   r   r   r   r0   r   r]   r   r   r   0test_assert_series_equal_interval_dtype_mismatch+  s    
r`   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 s0    Y  tjtdd	  tj||dd W d    n1 s0    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   MySeries=  s   rd   r   r!   F)Zcheck_series_typeTzSeries classes are differentr+   r   r   r   r   r0   r   )rd   r$   r%   s3r   r   r   test_series_equal_series_type<  s    .rg   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|0    Y  d}tjt|d  tj|| dd W d    n1 s0    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\]r+   zzSeries are different

Series values are different \(100\.0 %\)
\[index\]: \[0, 1\]
\[left\]:  \[b, a\]
\[right\]: \[a, b\]re   )r$   r%   rf   r   r   r   r   &test_series_equal_exact_for_nonnumericQ  s    .rj   c                  C   s4   t g ddd} t g ddd}tj| |dd d S )Nr;   rW   r*   ZInt32FrX   r   r   r   rD   r   r   r   8test_assert_series_equal_ignore_extension_dtype_mismatchm  s    rl   c                  C   s4   t g ddd} t g ddd}tj| |dd d S )Nr;   rW   r*   int64FrX   rk   rD   r   r   r   Dtest_assert_series_equal_ignore_extension_dtype_mismatch_cross_classt  s    rn   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 s0    Y  tjtdd t| | W d    n1 s0    Y  d S )Nr   F)Zallows_duplicate_labels)Zcheck_flagsz<Flagsr+   )r   Z	set_flagsr   r   r   r0   r   rD   r   r   r   test_allows_duplicate_labels{  s    
*ro   c                 C   s<   t | g}t||  t|}t||jdd d S )NT)deep)r   r   r   copyrP   IndexZassert_index_equal)Znulls_fixtureZseridxr   r   r   %test_assert_series_equal_identical_na  s    

rt   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?Trh   )r   nprZ   r   r   )xyr   r   r   %test_identical_nested_series_is_equal  s$    
rx   Z
datetime64Ztimedelta64c                 C   s
  t g d|  d}||  d}tjtdd t|| W d    n1 sX0    Y  tj||dd |t g d|  d8 }tjtd	d t|| W d    n1 s0    Y  tjtd	d  tj||dd W d    n1 s0    Y  d S )
N)iC i   iK3Ez[s]z[ms]z"Attributes of Series are differentr+   FrX   )r   r   r   Series are different)r   r[   r   r0   r   r   r   )r   Zser_sZser_msr   r   r   %test_check_dtype_false_different_reso  s    **rz   rW   rm   c                 C   sZ   t dg| d}t dg| d}tjtdd t|| W d    n1 sL0    Y  d S )Nl   ?&l, r*   l   ?&l, ry   r+   rH   )r   rE   rF   r   r   r   test_large_unequal_ints  s    r{   ri   valg      @c                 C   s<   t dd| g|d}t tdd| g}tj||d|d d S )Nr   r!   r*   F)rY   ri   )r   rP   rZ   r   r   )r|   ri   r   rE   rF   r   r   r    test_ea_and_numpy_no_dtype_check  s    r}   c                  C   sd   t g d} t g d}tj| |dd tj|  | dd tj| dj|djdd d S )N)Q      y   &   J   H   r~   r~      r~   r~      r   r   )r   	   r   r   r   r   r   r   r   r   r   r   r   r   r5   r-   rW   )r   r   r   assert_frame_equalto_frameZassert_extension_array_equalr[   valuesrD   r   r   r    test_assert_series_equal_int_tol  s    r   c                  C   sZ   t tjdtdg d} t tjdtdtddd}t| | t|  |  d S )N   r*   )r   g?g?g333333?g?r   r   r   )	r   ru   Zzerosr\   Zlinspacer   r   r   r   )Zser1Zser2r   r   r   ,test_assert_series_equal_index_exact_default  s    r   )0numpyru   r   ZpandasrP   r   r   r   Zpandas._testingZ_testingr   r   r   r   markZparametrizer#   rU   r   r   r&   r1   Zfrom_recordsr7   r9   r?   rA   rG   rJ   rK   rM   rQ   rV   r^   r`   rg   rj   rl   rn   ro   rt   rx   rz   r{   rB   r}   r   r   r   r   r   r   <module>   s   


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



	


