diff --git a/pandas/tests/frame/methods/test_pct_change.py b/pandas/tests/frame/methods/test_pct_change.py index 8f3f37fb9fff7..56fb9ab0d8f00 100644 --- a/pandas/tests/frame/methods/test_pct_change.py +++ b/pandas/tests/frame/methods/test_pct_change.py @@ -6,6 +6,27 @@ class TestDataFramePctChange: + @pytest.mark.parametrize( + "periods,fill_method,limit,exp", + [ + (1, "ffill", None, [np.nan, np.nan, np.nan, 1, 1, 1.5, 0, 0]), + (1, "ffill", 1, [np.nan, np.nan, np.nan, 1, 1, 1.5, 0, np.nan]), + (1, "bfill", None, [np.nan, 0, 0, 1, 1, 1.5, np.nan, np.nan]), + (1, "bfill", 1, [np.nan, np.nan, 0, 1, 1, 1.5, np.nan, np.nan]), + (-1, "ffill", None, [np.nan, np.nan, -0.5, -0.5, -0.6, 0, 0, np.nan]), + (-1, "ffill", 1, [np.nan, np.nan, -0.5, -0.5, -0.6, 0, np.nan, np.nan]), + (-1, "bfill", None, [0, 0, -0.5, -0.5, -0.6, np.nan, np.nan, np.nan]), + (-1, "bfill", 1, [np.nan, 0, -0.5, -0.5, -0.6, np.nan, np.nan, np.nan]), + ], + ) + @pytest.mark.parametrize("klass", [DataFrame, Series]) + def test_pct_change_with_nas(self, periods, fill_method, limit, exp, klass): + vals = [np.nan, np.nan, 1, 2, 4, 10, np.nan, np.nan] + obj = klass(vals) + + res = obj.pct_change(periods=periods, fill_method=fill_method, limit=limit) + tm.assert_equal(res, klass(exp)) + def test_pct_change_numeric(self): # GH#11150 pnl = DataFrame( diff --git a/pandas/tests/generic/test_generic.py b/pandas/tests/generic/test_generic.py index cccae1babe82f..45601abc95fe6 100644 --- a/pandas/tests/generic/test_generic.py +++ b/pandas/tests/generic/test_generic.py @@ -356,29 +356,6 @@ def test_copy_and_deepcopy(self, shape, func): assert obj_copy is not obj self._compare(obj_copy, obj) - @pytest.mark.parametrize( - "periods,fill_method,limit,exp", - [ - (1, "ffill", None, [np.nan, np.nan, np.nan, 1, 1, 1.5, 0, 0]), - (1, "ffill", 1, [np.nan, np.nan, np.nan, 1, 1, 1.5, 0, np.nan]), - (1, "bfill", None, [np.nan, 0, 0, 1, 1, 1.5, np.nan, np.nan]), - (1, "bfill", 1, [np.nan, np.nan, 0, 1, 1, 1.5, np.nan, np.nan]), - (-1, "ffill", None, [np.nan, np.nan, -0.5, -0.5, -0.6, 0, 0, np.nan]), - (-1, "ffill", 1, [np.nan, np.nan, -0.5, -0.5, -0.6, 0, np.nan, np.nan]), - (-1, "bfill", None, [0, 0, -0.5, -0.5, -0.6, np.nan, np.nan, np.nan]), - (-1, "bfill", 1, [np.nan, 0, -0.5, -0.5, -0.6, np.nan, np.nan, np.nan]), - ], - ) - def test_pct_change(self, periods, fill_method, limit, exp): - vals = [np.nan, np.nan, 1, 2, 4, 10, np.nan, np.nan] - obj = self._typ(vals) - func = getattr(obj, "pct_change") - res = func(periods=periods, fill_method=fill_method, limit=limit) - if type(obj) is DataFrame: - tm.assert_frame_equal(res, DataFrame(exp)) - else: - tm.assert_series_equal(res, Series(exp)) - class TestNDFrame: # tests that don't fit elsewhere