MCPcopy Index your code
hub / github.com/pydata/xarray / test_rolling_construct

Method test_rolling_construct

xarray/tests/test_rolling.py:218–241  ·  view source on GitHub ↗
(self, center: bool, window: int)

Source from the content-addressed store, hash-verified

216 @pytest.mark.parametrize("center", (True, False))
217 @pytest.mark.parametrize("window", (1, 2, 3, 4))
218 def test_rolling_construct(self, center: bool, window: int) -> None:
219 s = pd.Series(np.arange(10))
220 da = DataArray.from_series(s)
221
222 s_rolling = s.rolling(window, center=center, min_periods=1).mean()
223 da_rolling = da.rolling(index=window, center=center, min_periods=1)
224
225 da_rolling_mean = da_rolling.construct("window").mean("window")
226 np.testing.assert_allclose(np.asarray(s_rolling.values), da_rolling_mean.values)
227 np.testing.assert_allclose(s_rolling.index, da_rolling_mean["index"])
228
229 # with stride
230 da_rolling_mean = da_rolling.construct("window", stride=2).mean("window")
231 np.testing.assert_allclose(
232 np.asarray(s_rolling.values[::2]), da_rolling_mean.values
233 )
234 np.testing.assert_allclose(s_rolling.index[::2], da_rolling_mean["index"])
235
236 # with fill_value
237 da_rolling_mean = da_rolling.construct("window", stride=2, fill_value=0.0).mean(
238 "window"
239 )
240 assert da_rolling_mean.isnull().sum() == 0
241 assert (da_rolling_mean == 0.0).sum() >= 0
242
243 @pytest.mark.parametrize("da", (1, 2), indirect=True)
244 @pytest.mark.parametrize("center", (True, False))

Callers

nothing calls this directly

Calls 7

arangeMethod · 0.80
from_seriesMethod · 0.80
meanMethod · 0.45
rollingMethod · 0.45
constructMethod · 0.45
sumMethod · 0.45
isnullMethod · 0.45

Tested by

no test coverage detected