o
    ŀgF4                  
   @   s  d dl Z d dlZd dlmZ d dlmZ e jddgddd Ze jdd	gdd
d Z	dd Z
e jdddgdd Ze jdedg diedg difeg dg ddedg difgdd Ze jdejddgddgddgd ejd!d"gddgddgd d#fejddgd$d%gddgd&dd'gd ejd!d"gd$d%gddgd&dd'gd d(fgd)d* Zd+d, Ze jdddgd-d. Ze jdddgd/d0 Zd1d2 Ze jdeg d3g d4d5eg d3g d6d5d7feg d3g d4d5eg d8g d9d5d:fgd;d< Zd=d> Zd?d@ ZdAdB ZdCdD Ze jdEg dFdGdH ZdIdJ ZdKdL ZdMdN Ze jdOdPdQgdRdS ZdTdU ZdVdW Z dXdY Z!dZd[ Z"d\d] Z#d^d_ Z$d`da Z%dbdc Z&dS )d    N)	DataFrameTF)paramsc                 C      | j S Nparamrequest r
   ]/var/www/html/myenv/lib/python3.10/site-packages/pandas/tests/util/test_assert_frame_equal.pyby_blocks_fixture      r   r   Seriesc                 C   r   r   r   r   r
   r
   r   obj_fixture   r   r   c                 K   s,   t j| |fi | t j|| fi | dS )a4  
    Check that two DataFrame equal.

    This check is performed commutatively.

    Parameters
    ----------
    a : DataFrame
        The first DataFrame to compare.
    b : DataFrame
        The second DataFrame to compare.
    kwargs : dict
        The arguments passed to `tm.assert_frame_equal`.
    N)tmassert_frame_equal)abkwargsr
   r
   r   _assert_frame_equal_both   s   r   
check_likec                 C   s   t g dg ddg dd}t g dg ddg dd}| sH| d	}tjt|d
 tj||| |d W d    d S 1 sAw   Y  d S t||| |d d S )N                  ABr   r   cindex)r   r   r   )r   r   r   r#   r   r   z.index are differentmatchr   obj)r   pytestraisesAssertionErrorr   r   r   )r   r   df1df2msgr
   r
   r   #test_frame_equal_row_order_mismatch%   s   
"r1   zdf1,df2r    r   )r   r   r   r   r   r   c                 C   sN   | d}t jt|d tj| ||d W d    d S 1 s w   Y  d S )Nz are differentr'   r*   r+   r,   r-   r   r   )r.   r/   r   r0   r
   r
   r   test_frame_equal_shape_mismatch2   s   
"r4   zdf1,df2,msgr   r   l1l2)r   r#   r   r$   g      ?g       @zDataFrame\.index are differentg @g      ?r"   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_typer'   r3   )r.   r/   r0   r7   r   r
   r
   r   %test_frame_equal_index_dtype_mismatch@   s   "r8   c                 C   s   ddg}t |d}t |d}d| i}|d d|d< | rCd}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col1col2)columnscheck_dtypeint64z)Attributes of DataFrame\..* are differentr'   )r   astyper+   r,   r-   r   r   )r<   r;   r.   r/   r   r0   r
   r
   r   test_empty_dtypes_   s   

"r?   c                 C   s   |rd}nd}| d| d| d| d}t g dg dd	g d
d}t g dg dd	g dd}tjt|d tj||| |d W d    d S 1 sOw   Y  d S )Nstringobjectz\.index are different

zY\.index values are different \(33\.33333 %\)
\[left\]:  Index\(\['a', 'b', 'c'\], dtype='z0'\)
\[right\]: Index\(\['a', 'b', 'd'\], dtype='z-'\)
At positional index 2, first diff: c != dr   r   r   r"   r$   )r   r   dr'   r)   r   r+   r,   r-   r   r   r   r   using_infer_stringdtyper0   r.   r/   r
   r
   r   test_frame_equal_index_mismatcho   s   "rG   c                 C   s   |rd}nd}| d| d| d| d}t g dg dd	g d
d}t g dg ddg d
d}tjt|d tj||| |d W d    d S 1 sOw   Y  d S )Nr@   rA   z\.columns are different

zR\.columns values are different \(50\.0 %\)
\[left\]:  Index\(\['A', 'B'\], dtype='z+'\)
\[right\]: Index\(\['A', 'b'\], dtype='z'\)r   r   r   r"   r$   )r    r   r'   r)   rC   rD   r
   r
   r   !test_frame_equal_columns_mismatch   s   "rH   c                 C   s   |}| d| d}t g dg dd}t g dg dd}tjt|d tj||| |d W d    d S 1 s<w   Y  d S )	Nz2\.iloc\[:, 1\] \(column name="B"\) are different

z\.iloc\[:, 1\] \(column name="B"\) values are different \(33\.33333 %\)
\[index\]: \[0, 1, 2\]
\[left\]:  \[4, 5, 6\]
\[right\]: \[4, 5, 7\]r   r   r   )r   r      r'   	by_blocksr*   rC   )r   r   r*   r0   r.   r/   r
   r
   r   test_frame_equal_block_mismatch   s   "rL   )   á   à   ä)   é   è   ë)r    E)rP   rQ   u   e̊u   {obj}\.iloc\[:, 1\] \(column name="E"\) are different

{obj}\.iloc\[:, 1\] \(column name="E"\) values are different \(33\.33333 %\)
\[index\]: \[0, 1, 2\]
\[left\]:  \[é, è, ë\]
\[right\]: \[é, è, e̊\])r   r   r   )erT   rT   u   {obj}\.iloc\[:, 0\] \(column name="A"\) are different

{obj}\.iloc\[:, 0\] \(column name="A"\) values are different \(100\.0 %\)
\[index\]: \[0, 1, 2\]
\[left\]:  \[á, à, ä\]
\[right\]: \[a, a, a\]c                 C   sR   |j |d}tjt|d tj| |||d W d    d S 1 s"w   Y  d S )Nr2   r'   rJ   )formatr+   r,   r-   r   r   )r.   r/   r0   r   r   r
   r
   r   test_frame_equal_unicode   s   "rV   c                  C   sv   t dg didd} | t}d}tj| |dd tjt|d tj| |d	d W d    d S 1 s4w   Y  d S )
Nr   r   Int64rF   zAttributes of DataFrame\.iloc\[:, 0\] \(column name="a"\) are different

Attribute "dtype" are different
\[left\]:  Int64
\[right\]: int[32|64]Fr<   r'   T)r   r>   intr   r   r+   r,   r-   leftrightr0   r
   r
   r   0test_assert_frame_equal_extension_dtype_mismatch   s   
"r^   c                  C   s|   t dtddgidd} | t}d}tj| |dd tjt	|d	 tj| |d
d W d    d S 1 s7w   Y  d S )Nr   r   r   intervalrX   zAttributes of DataFrame\.iloc\[:, 0\] \(column name="a"\) are different

Attribute "dtype" are different
\[left\]:  interval\[int64, right\]
\[right\]: objectFrY   r'   T)
r   pdIntervalr>   rA   r   r   r+   r,   r-   r[   r
   r
   r   /test_assert_frame_equal_interval_dtype_mismatch   s   
"rb   c                  C   <   t dg didd} t dg didd}tj| |dd d S )Nr   r   rW   rX   Int32FrY   r   r   r   r\   r]   r
   r
   r   7test_assert_frame_equal_ignore_extension_dtype_mismatch      rg   c                  C   rc   )Nr   r   rW   rX   r=   FrY   re   rf   r
   r
   r   Ctest_assert_frame_equal_ignore_extension_dtype_mismatch_cross_class   rh   ri   rF   )ztimedelta64[ns]zdatetime64[ns, UTC]z	Period[D]c                 C   s0   t dg i| d}t dg i}tj||dd d S )Nr   rX   FrY   re   )rF   r.   r/   r
   r
   r   4test_assert_frame_equal_datetime_like_dtype_mismatch   s   	rj   c                  C   s   t  } t  jdd}t| |  t|| tj| |dd tj|| dd tjtdd t| | W d    n1 s>w   Y  tjtdd t| | W d    d S 1 s\w   Y  d S )NF)allows_duplicate_labelscheck_flagsz<Flagsr'   )r   	set_flagsr   r   r+   r,   r-   rf   r
   r
   r   test_allows_duplicate_labels  s   "ro   c                  C   s0   t g dgg dg dd} tj| | dd d S )N)r   r   r   )foobar*   )r   testr   )r;   r%   Tr   re   )dfr
   r
   r   +test_assert_frame_equal_columns_mixed_dtype  s   rv   c                 C   s$   | ddg|d}t j||dd d S )Nr   r   rX   Tcheck_exactr   assert_equal)frame_or_seriesany_numeric_ea_dtyper*   r
   r
   r    test_frame_equal_extension_dtype   s   r}   indexer)r   r   )r   r   c                 C   sN   |df}| ddg||d  d}| ddg||d  d}t j||ddd d S )	Nr=   r   r   r   rX   TF)rx   r<   ry   )r{   r|   r~   dtypesobj1obj2r
   r
   r   test_frame_equal_mixed_dtypes&  s   r   c                  C   sn   t tjg ddd} t tjddddd}tjtdd tj| |d	d
 W d    d S 1 s0w   Y  d S )NrA   rX   r$   r   r   )startstopstepzDataFrame.index are differentr'   Trt   )	r   r`   Index
RangeIndexr+   r,   r-   r   r   r.   r/   r
   r
   r   4test_assert_frame_equal_check_like_different_indexes.  s
   "r   c                  C   s   t ddgddgg} d| j_t ddgddgg}d|j_tj| |dd tjtdd	 tj| |dd W d    d S 1 s?w   Y  d S )
Nr   r   r   r   FTrl   rk   r'   )r   flagsrk   r   r   r+   r,   r-   rf   r
   r
   r   0test_assert_frame_equal_checking_allow_dups_flag6  s   "r   c               	   C   s   t dgdgdggtjtg dtg dgd} t dgdgdggtjtg dtg dgd}tj| |dd d S )	Nr   r   r   r"   r$   r&   Trt   )r   r`   
MultiIndexfrom_arraysCategoricalr   r   rf   r
   r
   r   3test_assert_frame_equal_check_like_categorical_midxC  s"   		r   c                  C   sz   t dtjtjdgddi} t dtjddgddi}d}tjt|d t| | W d    d S 1 s6w   Y  d S )Nr   r   rW   rX   zGDataFrame.iloc\[:, 0\] \(column name="a"\) NA mask values are differentr'   	r   r`   r   NAr+   r,   r-   r   r   r.   r/   r0   r
   r
   r   >test_assert_frame_equal_ea_column_definition_in_exception_maskZ  s   "r   c                  C   s   t dtjtjdgddi} t dtjtjdgddi}d}tjt|d t| | W d    n1 s6w   Y  tjt|d tj| |dd	 W d    d S 1 sVw   Y  d S )
Nr   r   rW   rX   r   ?DataFrame.iloc\[:, 0\] \(column name="a"\) values are differentr'   Trw   r   r   r
   r
   r   9test_assert_frame_equal_ea_column_definition_in_exceptiond  s   "r   c                  C   s|   t dtdtdgi} t dtdtdgi}d}tjt|d t| | W d    d S 1 s7w   Y  d S )Nr   z
2019-12-31z
2020-12-31r   r'   )r   r`   	Timestampr+   r,   r-   r   r   r   r
   r
   r   !test_assert_frame_equal_ts_columnq  s   "r   c                  C   s@   t dh dh dgi} t dh dh dgi}t| | d S )N
set_column   r   r   r      r   r   r   re   r   r
   r
   r   test_assert_frame_equal_set{  s   r   c                  C   st   t dh dh dgi} t dh dh dgi}d}tjt|d t| | W d    d S 1 s3w   Y  d S )Nr   r   r   >   r   r   rI   zHDataFrame.iloc\[:, 0\] \(column name="set_column"\) values are differentr'   rC   r   r
   r
   r   $test_assert_frame_equal_set_mismatch  s   "r   )'r+   pandasr`   r   pandas._testing_testingr   fixturer   r   r   markparametrizer1   r4   from_recordsr8   r?   rG   rH   rL   rV   r^   rb   rg   ri   rj   ro   rv   r}   r   r   r   r   r   r   r   r   r   r
   r
   r
   r   <module>   s    


$










