Path: blob/main/py-polars/tests/unit/operations/test_pct_change.py
7884 views
from __future__ import annotations12import polars as pl3from polars.testing import assert_frame_equal, assert_series_equal456def test_pct_change() -> None:7s = pl.Series("a", [1, 2, 4, 8, 16, 32, 64])8expected = pl.Series("a", [None, None, 3.0, 3.0, 3.0, 3.0, 3.0])9assert_series_equal(s.pct_change(2), expected)10assert_series_equal(s.pct_change(pl.Series([2])), expected)11# negative12assert pl.Series(range(5)).pct_change(-1).to_list() == [13-1.0,14-0.5,15-0.3333333333333333,16-0.25,17None,18]192021def test_pct_change_nulls() -> None:22df = pl.DataFrame(23{24"a": [10, 11, 12, None, 12, 24],25}26)27result = df.select(pl.col("a").pct_change().alias("pct_change"))28expected = pl.DataFrame({"pct_change": [None, 0.1, 0.090909, None, None, 1.0]})29assert_frame_equal(result, expected)303132