Ë
    	êñi|  ã                  óê  — 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«       	 	 	 	 	 	 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y# 1 sw Y   Œ¨xY w)é    )ÚannotationsN)Úcast)Údeprecate_renamed_parameter)Ú	DataFrame)Ú	LazyFrame)Úraise_assertion_error)Úassert_dataframe_equal_pyc                óô   — d}t        | t        «      rt        |t        «      ryt        | t        «      rt        |t        «      ryt        ddt	        | «      j
                  t	        |«      j
                  «       y )NTFÚinputszunexpected input types)Ú
isinstancer   r   r   ÚtypeÚ__name__)ÚleftÚrightÚ__tracebackhide__s      ú^/var/www/pod-logistic/pod-ai/venv/lib/python3.12/site-packages/polars/testing/asserts/frame.pyÚ_assert_correct_input_typer      s^   € ð Ðä�$œ	Ô"¤z°%¼Ô'CØÜ	�Dœ)Ô	$¬°E¼9Ô)EØäØØ$Ü�‹J×ÑÜ�‹K× Ñ õ		
ó    Úcheck_dtypeÚcheck_dtypesz0.20.31)ÚversionÚrtolÚrel_tolz1.32.3ÚatolÚabs_tolTFgñhãˆµøä>g:Œ0âŽyE>©Úcheck_row_orderÚcheck_column_orderr   Úcheck_exactr   r   Úcategorical_as_strc               óä   — d}	t        | |«      }
|
r | j                  «       |j                  «       }} t        d| «      t        d|«      }} t        | j                  |j                  |||||||¬«	       y)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%   !   su   € ðp Ðä% d¨EÓ2€Dñ Ø—l‘l“n e§m¡m£oˆeˆô �{ DÓ)¬4°¸UÓ+Cˆ%€DäØ�‰Ø�	‰	Ø'Ø-Ø!ØØØØ-ö
r   c               ó’   — d}	t        | |«      }
	 t        | ||||||||¬«	       |
rdnd}|› d�}t        |«      ‚# t        $ r Y y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_equalr,   ‘   sv   € ðD Ðä% d¨EÓ2€Dð"ÜØØØ1Ø+Ø%Ø#ØØØ1õ
	
ñ #'‘,¨LˆØ�	Ð@ÐAˆÜ˜SÓ!Ð!øô ò Ùðús   �: º	AÁA)r   úDataFrame | LazyFramer   r-   ÚreturnÚbool)r   r-   r   r-   r   r/   r   r/   r   r/   r   r/   r   Úfloatr   r0   r    r/   r.   ÚNone)Ú
__future__r   Ú
contextlibÚtypingr   Úpolars._utils.deprecationr   Úpolars.dataframer   Úpolars.lazyframer   Úpolars.testing.asserts.utilsr   ÚsuppressÚImportErrorÚpolars._plrr	   r   r%   r,   © r   r   ú<module>r=      së  ðÝ "ã Ý å AÝ &Ý &Ý >à€Z×Ñ˜Ó%ñ 6Ý5÷6ð
Ø
ð
Ø(=ð
à	ó
ñ$ ˜]¨NÀIÔNÙ˜V Y¸ÔAÙ˜V Y¸ÔAð
 !Ø#ØØØØØ$ñjØ
ðjà ðjð ð	jð
 ðjð ðjð ðjð ðjð ðjð ðjð 
òjó Bó Bó OðjñZ ˜]¨NÀIÔNÙ˜V Y¸ÔAÙ˜V Y¸ÔAð
 !Ø#ØØØØØ$ñS"Ø
ðS"à ðS"ð ð	S"ð
 ðS"ð ðS"ð ðS"ð ðS"ð ðS"ð ðS"ð 
òS"ó Bó Bó OñS"÷S6ð 6ús   »C)Ã)C2