diff --git a/sqlmesh/core/test/definition.py b/sqlmesh/core/test/definition.py index ae950dd080..9da8a93142 100644 --- a/sqlmesh/core/test/definition.py +++ b/sqlmesh/core/test/definition.py @@ -129,20 +129,15 @@ def assert_equal( expected = expected.replace({None: np.nan}) def _to_hashable(x: t.Any) -> t.Any: - return tuple(x) if isinstance(x, list) else x + if isinstance(x, (list, np.ndarray)): + return tuple(x) + return str(x) if not isinstance(x, t.Hashable) else x if sort: - actual = ( - actual.apply(_to_hashable) - .sort_values(by=actual.columns.to_list()) - .reset_index(drop=True) - ) - expected = ( - expected.apply(_to_hashable) - .sort_values(by=expected.columns.to_list()) - .reset_index(drop=True) - ) - + actual = actual.apply(lambda col: col.map(_to_hashable)) + actual = actual.sort_values(by=actual.columns.to_list()).reset_index(drop=True) + expected = expected.apply(lambda col: col.map(_to_hashable)) + expected = expected.sort_values(by=expected.columns.to_list()).reset_index(drop=True) try: pd.testing.assert_frame_equal( expected,