Method: Polars::Testing#assert_frame_equal

Defined in:
lib/polars/testing.rb

#assert_frame_equal(left, right, check_row_order: true, check_column_order: true, check_dtype: true, check_exact: false, rtol: 1e-5, atol: 1e-8, categorical_as_str: false) ⇒ nil

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.

Parameters:

  • left (Object)

    The first DataFrame or LazyFrame to compare.

  • right (Object)

    The second DataFrame or LazyFrame to compare.

  • check_row_order (Boolean) (defaults to: true)

    Require row order to match.

  • check_column_order (Boolean) (defaults to: true)

    Require column order to match.

  • check_dtype (Boolean) (defaults to: true)

    Require data types to match.

  • check_exact (Boolean) (defaults to: false)

    Require float values to match exactly. If set to false, values are considered equal when within tolerance of each other (see rtol and atol). Only affects columns with a Float data type.

  • rtol (Float) (defaults to: 1e-5)

    Relative tolerance for inexact checking. Fraction of values in right.

  • atol (Float) (defaults to: 1e-8)

    Absolute tolerance for inexact checking.

  • categorical_as_str (Boolean) (defaults to: false)

    Cast categorical columns to string before comparing. Enabling this helps compare columns that do not share the same string cache.

Returns:

  • (nil)


31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
# File 'lib/polars/testing.rb', line 31

def assert_frame_equal(
  left,
  right,
  check_row_order: true,
  check_column_order: true,
  check_dtype: true,
  check_exact: false,
  rtol: 1e-5,
  atol: 1e-8,
  categorical_as_str: false
)
  lazy = _assert_correct_input_type(left, right)

  if lazy
    left, right = left.collect, right.collect
  end

  Plr.assert_dataframe_equal_rb(
    left._df,
    right._df,
    check_row_order,
    check_column_order,
    check_dtype,
    check_exact,
    rtol,
    atol,
    categorical_as_str,
  )
end