From 78529184587cd1cdaa6e1898244880eae337b023 Mon Sep 17 00:00:00 2001 From: ganevgv Date: Thu, 21 Nov 2019 01:04:20 +0000 Subject: [PATCH 1/2] add test for rolling max with DatetimeIndex --- pandas/tests/window/test_moments.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/pandas/tests/window/test_moments.py b/pandas/tests/window/test_moments.py index 6e4bc621d7f49..b3aef73b81335 100644 --- a/pandas/tests/window/test_moments.py +++ b/pandas/tests/window/test_moments.py @@ -1891,6 +1891,20 @@ def test_rolling_corr_with_zero_variance(self, window): assert s.rolling(window=window).corr(other=other).isna().all() + def test_rolling_max_datetimeindex(self): + # GH 21096 + n = 10 + index = pd.date_range(start="2018-1-1 01:00:00", freq="1min", periods=n) + s = Series(data=0, index=index) + + s.iloc[1] = np.nan + s.iloc[-1] = 2 + maxes = s.rolling(window=f"{n}min").max() + result = maxes.value_counts(dropna=False) + expected = Series(data={0.0: n - 1, 2.0: 1}) + + tm.assert_series_equal(result, expected) + def _check_pairwise_moment(self, dispatch, name, **kwargs): def get_result(obj, obj2=None): return getattr(getattr(obj, dispatch)(**kwargs), name)(obj2) From 041df3fdc97a3a23f418d095e1c2bb30e6150b5e Mon Sep 17 00:00:00 2001 From: ganevgv Date: Sat, 23 Nov 2019 00:29:54 +0000 Subject: [PATCH 2/2] move and simplify test --- pandas/tests/window/test_moments.py | 14 -------------- pandas/tests/window/test_timeseries_window.py | 12 ++++++++++++ 2 files changed, 12 insertions(+), 14 deletions(-) diff --git a/pandas/tests/window/test_moments.py b/pandas/tests/window/test_moments.py index b3aef73b81335..6e4bc621d7f49 100644 --- a/pandas/tests/window/test_moments.py +++ b/pandas/tests/window/test_moments.py @@ -1891,20 +1891,6 @@ def test_rolling_corr_with_zero_variance(self, window): assert s.rolling(window=window).corr(other=other).isna().all() - def test_rolling_max_datetimeindex(self): - # GH 21096 - n = 10 - index = pd.date_range(start="2018-1-1 01:00:00", freq="1min", periods=n) - s = Series(data=0, index=index) - - s.iloc[1] = np.nan - s.iloc[-1] = 2 - maxes = s.rolling(window=f"{n}min").max() - result = maxes.value_counts(dropna=False) - expected = Series(data={0.0: n - 1, 2.0: 1}) - - tm.assert_series_equal(result, expected) - def _check_pairwise_moment(self, dispatch, name, **kwargs): def get_result(obj, obj2=None): return getattr(getattr(obj, dispatch)(**kwargs), name)(obj2) diff --git a/pandas/tests/window/test_timeseries_window.py b/pandas/tests/window/test_timeseries_window.py index 7055e5b538bea..02969a6c6e822 100644 --- a/pandas/tests/window/test_timeseries_window.py +++ b/pandas/tests/window/test_timeseries_window.py @@ -535,6 +535,18 @@ def test_ragged_max(self): expected["B"] = [0.0, 1, 2, 3, 4] tm.assert_frame_equal(result, expected) + def test_minutes_freq_max(self): + # GH 21096 + n = 10 + index = date_range(start="2018-1-1 01:00:00", freq="1min", periods=n) + s = Series(data=0, index=index) + s.iloc[1] = np.nan + s.iloc[-1] = 2 + result = s.rolling(window=f"{n}min").max() + expected = Series(data=[0] * (n - 1) + [2.0], index=index) + + tm.assert_series_equal(result, expected) + def test_ragged_apply(self, raw): df = self.ragged