
    j|                       d dl mZ d dlZd dlmZ d dlmZ d dlmZ d dl	m
Z
 d dlmZ  ej        e          5  d dlmZ ddd           n# 1 swxY w Y   d%dZ eddd           eddd           eddd          ddddddddd&d#                                    Z eddd           eddd           eddd          ddddddddd&d$                                    ZdS )'    )annotationsN)cast)deprecate_renamed_parameter)	DataFrame)	LazyFrame)raise_assertion_error)assert_dataframe_equal_pyleftDataFrame | LazyFramerightreturnboolc                &   d}t          | t                    rt          |t                    rdS t          | t                    rt          |t                    rdS t          ddt	          |           j        t	          |          j                   d S )NTFinputszunexpected input types)
isinstancer   r   r   type__name__)r
   r   __tracebackhide__s      a/home/longshao/multi-rider-rag/.venv/lib/python3.11/site-packages/polars/testing/asserts/frame.py_assert_correct_input_typer      s     $	"" 

z%'C'C 

u	D)	$	$ 
E9)E)E 
t$JJKK 		
 	
 	
 	
 	
    check_dtypecheck_dtypesz0.20.31)versionrtolrel_tolz1.32.3atolabs_tolTFgh㈵>g:0yE>check_row_ordercheck_column_orderr   check_exactr   r   categorical_as_strr    r!   r"   floatr#   Nonec                  d}	t          | |          }
|
r(|                                 |                                }} t          d|           t          d|          }} t          | j        |j        |||||||	  	         dS )a  
    Assert that the left and right frame are equal.

    Raises a detailed `AssertionError` if the frames differ.
    This function is intended for use in unit tests.

    .. versionchanged:: 0.20.31
        The `check_dtype` parameter was renamed `check_dtypes`.

    .. versionchanged:: 1.32.3
        The `rtol` and `atol` parameters were renamed to `rel_tol` and `abs_tol`,
        respectively.

    Parameters
    ----------
    left
        The first DataFrame or LazyFrame to compare.
    right
        The second DataFrame or LazyFrame to compare.
    check_row_order
        Requires row order to match.
    check_column_order
        Requires column order to match.
    check_dtypes
        Requires data types to match.
    check_exact
        Requires float values to match exactly. If set to `False`, values are considered
        equal when within tolerance of each other (see `rel_tol` and `abs_tol`).
        Only affects columns with a Float data type.
    rel_tol
        Relative tolerance for inexact checking. Fraction of values in `right`.
    abs_tol
        Absolute tolerance for inexact checking.
    categorical_as_str
        Cast categorical columns to string before comparing. Enabling this helps
        compare columns that do not share the same string cache.

    See Also
    --------
    assert_series_equal
    assert_frame_not_equal

    Notes
    -----
    When using pytest, it may be worthwhile to shorten Python traceback printing
    by passing `--tb=short`. The default mode tends to be unhelpfully verbose.
    More information in the
    `pytest docs <https://docs.pytest.org/en/latest/how-to/output.html#modifying-python-traceback-printing>`_.

    Examples
    --------
    >>> from polars.testing import assert_frame_equal
    >>> df1 = pl.DataFrame({"a": [1, 2, 3]})
    >>> df2 = pl.DataFrame({"a": [1, 5, 3]})
    >>> assert_frame_equal(df1, df2)
    Traceback (most recent call last):
    ...
    AssertionError: DataFrames are different (value mismatch for column "a")
    [left]: shape: (3,)
    Series: 'a' [i64]
    [
        1
        2
        3
    ]
    [right]: shape: (3,)
    Series: 'a' [i64]
    [
        1
        5
        3
    ]
    Tr   r   N)r   collectr   r	   _df)r
   r   r    r!   r   r"   r   r   r#   r   lazys              r   assert_frame_equalr*   !   s    p %dE22D  6llnnemmooe {D))4U+C+C%D	'-!-
 
 
 
 
 
r   c                   d}	t          | |          }
	 t          | ||||||||	  	         |
rdnd}| d}t          |          # t          $ r Y dS w xY w)ax  
    Assert that the left and right frame are **not** equal.

    This function is intended for use in unit tests.

    .. versionchanged:: 0.20.31
        The `check_dtype` parameter was renamed `check_dtypes`.

    .. versionchanged:: 1.32.3
        The `rtol` and `atol` parameters were renamed to `rel_tol` and `abs_tol`,
        respectively.

    Parameters
    ----------
    left
        The first DataFrame or LazyFrame to compare.
    right
        The second DataFrame or LazyFrame to compare.
    check_row_order
        Requires row order to match.
    check_column_order
        Requires column order to match.
    check_dtypes
        Requires data types to match.
    check_exact
        Requires float values to match exactly. If set to `False`, values are considered
        equal when within tolerance of each other (see `rel_tol` and `abs_tol`).
        Only affects columns with a Float data type.
    rel_tol
        Relative tolerance for inexact checking. Fraction of values in `right`.
    abs_tol
        Absolute tolerance for inexact checking.
    categorical_as_str
        Cast categorical columns to string before comparing. Enabling this helps
        compare columns that do not share the same string cache.

    See Also
    --------
    assert_frame_equal
    assert_series_not_equal

    Examples
    --------
    >>> from polars.testing import assert_frame_not_equal
    >>> df1 = pl.DataFrame({"a": [1, 2, 3]})
    >>> df2 = pl.DataFrame({"a": [1, 2, 3]})
    >>> assert_frame_not_equal(df1, df2)
    Traceback (most recent call last):
    ...
    AssertionError: DataFrames are equal (but are expected not to be)
    T)	r
   r   r!   r    r   r"   r   r   r#   
LazyFrames
DataFramesz' are equal (but are expected not to be)N)r   r*   AssertionError)r
   r   r    r!   r   r"   r   r   r#   r   r)   objectsmsgs                r   assert_frame_not_equalr1      s    D %dE22D"1+%#1
	
 
	
 
	
 
	
 #'8,,LAAAS!!!    s   A 
AA)r
   r   r   r   r   r   )r
   r   r   r   r    r   r!   r   r   r   r"   r   r   r$   r   r$   r#   r   r   r%   )
__future__r   
contextlibtypingr   polars._utils.deprecationr   polars.dataframer   polars.lazyframer   polars.testing.asserts.utilsr   suppressImportErrorpolars._plrr	   r   r*   r1    r   r   <module>r=      sF   " " " " " "           A A A A A A & & & & & & & & & & & & > > > > > >Z%% 6 65555556 6 6 6 6 6 6 6 6 6 6 6 6 6 6
 
 
 
$ ]NINNNVYAAAVYAAA
 !#$j j j j j BA BA ONjZ ]NINNNVYAAAVYAAA
 !#$S" S" S" S" S" BA BA ONS" S" S"s   AAA