a
    PfF4                  
   @   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   s   | j S Nparamrequest r	   b/var/www/ai-form-bot/venv/lib/python3.9/site-packages/pandas/tests/util/test_assert_frame_equal.pyby_blocks_fixture   s    r   r   Seriesc                 C   s   | j S r   r   r   r	   r	   r
   obj_fixture   s    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}| s| d	}tjt|d
" tj||| |d W d    q1 s0    Y  n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    
2r/   zdf1,df2r   r   )r   r   r   r   r   r   c                 C   sL   | d}t jt|d  tj| ||d W d    n1 s>0    Y  d S )Nz are differentr%   r(   r)   r*   r+   r   r   )r,   r-   r   r.   r	   r	   r
   test_frame_equal_shape_mismatch2   s    
r2   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   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%   r1   )r,   r-   r.   r5   r   r	   r	   r
   %test_frame_equal_index_dtype_mismatch@   s
    4r6   c                 C   s   ddg}t |d}t |d}d| i}|d d|d< | rd}tjt|d$ tj||fi | W d    q1 sv0    Y  ntj||fi | d S )NZcol1Zcol2)columnscheck_dtypeint64z)Attributes of DataFrame\..* are differentr%   )r   astyper)   r*   r+   r   r   )r8   r7   r,   r-   r   r.   r	   r	   r
   test_empty_dtypes_   s    

4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    n1 s0    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   Zusing_infer_stringdtyper.   r,   r-   r	   r	   r
   test_frame_equal_index_mismatcho   s    rB   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    n1 s0    Y  d S )Nr<   r=   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'   r?   r@   r	   r	   r
   !test_frame_equal_columns_mismatch   s    rC   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    n1 sv0    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%   Z	by_blocksr(   r?   )r   r   r(   r.   r,   r-   r	   r	   r
   test_frame_equal_block_mismatch   s    rF   )   á   à   ä)   é   è   ë)r   E)rJ   rK   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   )erN   rN   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   sP   |j |d}tjt|d" tj| |||d W d    n1 sB0    Y  d S )Nr0   r%   rE   )formatr)   r*   r+   r   r   )r,   r-   r.   r   r   r	   r	   r
   test_frame_equal_unicode   s    rP   c                  C   st   t dg didd} | t}d}tj| |dd tjt|d  tj| |d	d W d    n1 sf0    Y  d S )
Nr   r   Int64rA   zAttributes of DataFrame\.iloc\[:, 0\] \(column name="a"\) are different

Attribute "dtype" are different
\[left\]:  Int64
\[right\]: int[32|64]Fr8   r%   T)r   r:   intr   r   r)   r*   r+   leftrightr.   r	   r	   r
   0test_assert_frame_equal_extension_dtype_mismatch   s    
rX   c                  C   sz   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    n1 sl0    Y  d S )Nr   r   r   intervalrR   zAttributes of DataFrame\.iloc\[:, 0\] \(column name="a"\) are different

Attribute "dtype" are different
\[left\]:  interval\[int64, right\]
\[right\]: objectFrS   r%   T)
r   pdZIntervalr:   r=   r   r   r)   r*   r+   rU   r	   r	   r
   /test_assert_frame_equal_interval_dtype_mismatch   s    
r[   c                  C   s<   t dg didd} t dg didd}tj| |dd d S )Nr   r   rQ   rR   ZInt32FrS   r   r   r   rV   rW   r	   r	   r
   7test_assert_frame_equal_ignore_extension_dtype_mismatch   s    r^   c                  C   s<   t dg didd} t dg didd}tj| |dd d S )Nr   r   rQ   rR   r9   FrS   r\   r]   r	   r	   r
   Ctest_assert_frame_equal_ignore_extension_dtype_mismatch_cross_class   s    r_   rA   )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   rR   FrS   r\   )rA   r,   r-   r	   r	   r
   4test_assert_frame_equal_datetime_like_dtype_mismatch   s    	r`   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|0    Y  tjtdd t| | W d    n1 s0    Y  d S )NF)allows_duplicate_labelsZcheck_flagsz<Flagsr%   )r   Z	set_flagsr   r   r)   r*   r+   r]   r	   r	   r
   test_allows_duplicate_labels  s    *rc   c                  C   s0   t g dgg dg dd} tj| | dd d S )N)r   r   r   )Zfoobar*   )r   testr   )r7   r#   Tr   r\   )Zdfr	   r	   r
   +test_assert_frame_equal_columns_mixed_dtype  s    rh   c                 C   s$   | ddg|d}t j||dd d S )Nr   r   rR   Tcheck_exactr   Zassert_equal)frame_or_seriesany_numeric_ea_dtyper(   r	   r	   r
    test_frame_equal_extension_dtype   s    rn   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 )	Nr9   r   r   r   rR   TF)rj   r8   rk   )rl   rm   ro   ZdtypesZobj1obj2r	   r	   r
   test_frame_equal_mixed_dtypes&  s    rq   c                  C   sl   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    n1 s^0    Y  d S )Nr=   rR   r"   r   r   )startstopstepzDataFrame.index are differentr%   Trg   )	r   rZ   IndexZ
RangeIndexr)   r*   r+   r   r   r,   r-   r	   r	   r
   4test_assert_frame_equal_check_like_different_indexes.  s    rw   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    n1 s|0    Y  d S )
Nr   r   r   r   FTrb   ra   r%   )r   flagsra   r   r   r)   r*   r+   r]   r	   r	   r
   0test_assert_frame_equal_checking_allow_dups_flag6  s    ry   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$   Trg   )r   rZ   Z
MultiIndexZfrom_arraysZCategoricalr   r   r]   r	   r	   r
   3test_assert_frame_equal_check_like_categorical_midxC  s"    		rz   c                  C   sx   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    n1 sj0    Y  d S )Nr   r   rQ   rR   zGDataFrame.iloc\[:, 0\] \(column name="a"\) NA mask values are differentr%   	r   rZ   r   ZNAr)   r*   r+   r   r   r,   r-   r.   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 sl0    Y  tjt|d  tj| |dd	 W d    n1 s0    Y  d S )
Nr   r   rQ   rR   r   ?DataFrame.iloc\[:, 0\] \(column name="a"\) values are differentr%   Tri   r{   r|   r	   r	   r
   9test_assert_frame_equal_ea_column_definition_in_exceptiond  s    *r   c                  C   sz   t dtdtdgi} t dtdtdgi}d}tjt|d t| | W d    n1 sl0    Y  d S )Nr   z
2019-12-31z
2020-12-31r~   r%   )r   rZ   	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   r\   rv   r	   r	   r
   test_assert_frame_equal_set{  s    r   c                  C   sr   t dh dh dgi} t dh dh dgi}d}tjt|d t| | W d    n1 sd0    Y  d S )Nr   r   r   >   r   r   rD   zHDataFrame.iloc\[:, 0\] \(column name="set_column"\) values are differentr%   r?   r|   r	   r	   r
   $test_assert_frame_equal_set_mismatch  s
    r   )'r)   ZpandasrZ   r   Zpandas._testingZ_testingr   Zfixturer   r   r   markZparametrizer/   r2   Zfrom_recordsr6   r;   rB   rC   rF   rP   rX   r[   r^   r_   r`   rc   rh   rn   rq   rw   ry   rz   r}   r   r   r   r   r	   r	   r	   r
   <module>   s   


$










