o
    �¨Êhé:  ã                
   @   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   ú\/var/www/html/env/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_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é   é   Ú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   Ú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š¿?g—9]›¿?)gV-²�¿?gÉå?¤¿?)Úfloat32r    ÚFloat32Údecimals)r   r   r#   r   é   é
   c                 C   s    d|  }t | g|d�}t |g|d�}|dv s#|dkrGt| | ƒdkrGd}tjt|d�� tj|||d� W d   ƒ d S 1 s@w   Y  d S t|||d� d S )	Nr.   ©r   )r-   r.   r   gü©ñÒMb@?zSeries values are different©Úmatch©Úrtol)r   Úabsr   Úraisesr   r   r   r   )r   r   r   r,   r3   r'   r(   r   r   r   r   Útest_less_precisel   s   
 "ÿr6   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   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_typer0   )r   r5   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;   r9   )r   r#   r   ©r<   r	   r   úSeries.index are differentr0   )r?   ©r   r   r5   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;   r9   rA   rB   r0   )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 )Nr/   z0check_like must be False if check_index is Falser0   FT)rF   r?   )r   Úobjectr   r5   Ú
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 )Nz™Series 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   r0   r2   ©r   r   r5   r   r   r   ©r3   r   r'   r(   r   r   r   Ú!test_series_equal_length_mismatch¼   s   "ÿrQ   c                 C   rN   )Nz†Series are different

Series values are different \(33\.33333 %\)
\[index\]: \[0, 1, 2\]
\[left\]:  \[1, 2, 3\]
\[right\]: \[1, 2, 4\]r@   r"   r0   r2   rO   rP   r   r   r   Ú)test_series_equal_numeric_values_mismatchÊ   s   "ÿrR   c                 C   sr   |rd}nd}t tg d¢ƒƒ}t tg d¢ƒƒ}tjt|d�� tj||| d� W d   ƒ d S 1 s2w   Y  d S )NzÞSeries 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\]zêSeries 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	   r0   r2   )r   r   r   r5   r   r   r   )r3   Úusing_infer_stringr   r'   r(   r   r   r   Ú-test_series_equal_categorical_values_mismatchÙ   s   		"ÿrT   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 )	NzîSeries 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)ÚperiodsÚfreqz
2019-02-02r0   r2   )r   ÚpdÚ
date_ranger   r5   r   r   r   rP   r   r   r   Ú*test_series_equal_datetime_values_mismatchô   s   "ÿrZ   c                 C   s¢   |rd}nd}d|› d|› d�}t tddgƒƒ}t tddgtdƒd	�ƒ}| rHtjt|d
�� tj||| d� W d   ƒ d S 1 sAw   Y  d S t||| d� d S )NÚstringrH   zšAttributes 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   )Ú
categoriesr0   )Úcheck_categorical)	r   r   Úlistr   r5   r   r   r   r   )r]   rS   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@   ÚInt64r/   zjAttributes of Series are different

Attribute "dtype" are different
\[left\]:  Int64
\[right\]: int[32|64]F©Úcheck_dtyper0   T)
r   rX   ÚarrayÚastypeÚintr   r   r   r5   r   ©rK   rL   r   r   r   r   Ú1test_assert_series_equal_extension_dtype_mismatch  ó   
"ÿrg   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   Úintervalr/   zyAttributes of Series are different

Attribute "dtype" are different
\[left\]:  interval\[int64, right\]
\[right\]: objectFra   r0   T)
r   rX   ÚIntervalrd   rH   r   r   r   r5   r   rf   r   r   r   Ú0test_assert_series_equal_interval_dtype_mismatch+  rh   rk   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   ÚMySeries=  s    ro   r   r#   F)Úcheck_series_typeTzSeries classes are differentr0   ©r   r   r   r   r5   r   )ro   r'   r(   Ús3r   r   r   Útest_series_equal_series_type<  s   ÿ"ÿrs   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\]r0   zzSeries are different

Series values are different \(100\.0 %\)
\[index\]: \[0, 1\]
\[left\]:  \[b, a\]
\[right\]: \[a, b\]rq   )r'   r(   rr   r   r   r   r   Ú&test_series_equal_exact_for_nonnumericQ  s   ÿ"ÿrv   c                  C   ó4   t g d¢dd�} t g d¢dd�}tj| |dd� d S )Nr@   r`   r/   ÚInt32Fra   ©r   r   r   rJ   r   r   r   Ú8test_assert_series_equal_ignore_extension_dtype_mismatchm  ó   rz   c                  C   rw   )Nr@   r`   r/   Úint64Fra   ry   rJ   r   r   r   ÚDtest_assert_series_equal_ignore_extension_dtype_mismatch_cross_classt  r{   r}   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<Flagsr0   )r   Ú	set_flagsr   r   r   r5   r   rJ   r   r   r   Útest_allows_duplicate_labels{  s   
ÿ"ÿr�   c                 C   s<   t | gƒ}t || ¡ ¡ t |¡}t ||jdd�¡ d S )NT)Údeep)r   r   r   ÚcopyrX   Ú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ÓÂ‹ýÚ?Trt   )r   Únprc   r   r   )ÚxÚyr   r   r   Ú%test_identical_nested_series_is_equal”  s$   üÿüÿ
r�   Ú
datetime64Útimedelta64c                 C   s  t g d¢ƒ | › d�¡}| | › d�¡}tjtdd�� t ||¡ W d   ƒ n1 s,w   Y  tj||dd� |t g d¢ƒ | › d�¡8 }tjtd	d�� t ||¡ W d   ƒ n1 s_w   Y  tjtd	d�� tj||dd� W d   ƒ d S 1 sw   Y  d S )
N)iC i …  iK3Ez[s]z[ms]z"Attributes of Series are differentr0   Fra   )r   r   r   úSeries are different)r   rd   r   r5   r   r   r   )r   Úser_sÚser_msr   r   r   Ú%test_check_dtype_false_different_reso®  s   ÿÿ"ÿr“   r`   r|   c                 C   s\   t dg| d�}t dg| d�}tjtdd�� t ||¡ W d   ƒ d S 1 s'w   Y  d S )Nl   ¸Œ?&l, r/   l   ×Œ?&l, r�   r0   rO   )r   rK   rL   r   r   r   Útest_large_unequal_intsÀ  s
   "ÿr”   ru   Úvalg      @c                 C   s<   t dd| g|d�}t t dd| g¡ƒ}tj||d|d� d S )Nr   r#   r/   F)rb   ru   )r   rX   rc   r   r   )r•   ru   r   rK   rL   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œ   r:   r2   r`   )r   r   r   Úassert_frame_equalÚto_frameÚassert_extension_array_equalrd   ÚvaluesrJ   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   rŠ   Úzerosre   Úlinspacer   r   r    r¡   )Úser1Úser2r   r   r   Ú,test_assert_series_equal_index_exact_defaultß  s   rª   )0ÚnumpyrŠ   r   ÚpandasrX   r   r   r   Úpandas._testingÚ_testingr   r   r   r   ÚmarkÚparametrizer&   r^   r   r   r)   r6   Úfrom_recordsr<   r>   rD   rG   rM   rQ   rR   rT   rZ   r_   rg   rk   rs   rv   rz   r}   r�   r‰   r�   r“   r”   rH   r–   r¤   rª   r   r   r   r   Ú<module>   s     
ûþ


ýþ
ýÿÿùøþ


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