Path: blob/main/py-polars/tests/unit/operations/test_diff.py
6939 views
import pytest12import polars as pl3from polars.exceptions import ShapeError4from polars.testing import assert_frame_equal567def test_diff_duration_dtype() -> None:8data = ["2022-01-01", "2022-01-02", "2022-01-03", "2022-01-03"]9df = pl.Series("date", data).str.to_date("%Y-%m-%d").to_frame()1011result = df.select(pl.col("date").diff() < pl.duration(days=1))1213expected = pl.Series("date", [None, False, False, True]).to_frame()14assert_frame_equal(result, expected)151617def test_diff_scalarity() -> None:18df = pl.DataFrame(19{20"a": [1, 2, 3, 2, 2, 3, 0],21"n": [1, 3, 2, 4, 5, 1, 1],22}23)2425with pytest.raises(ShapeError, match="'n' must be a scalar value"):26df.select(pl.col("a").diff("n"))2728result = df.select(pl.col("a").diff(pl.col("n").mean().cast(pl.Int32)))29expected = pl.DataFrame({"a": [None, None, 2, 0, -1, 1, -2]})30assert_frame_equal(result, expected)3132result = df.select(pl.col("a").diff(2))33assert_frame_equal(result, expected)343536