(ds: Dataset, window, name)
| 161 | @pytest.mark.parametrize("window", (1, 2, 3, 4)) |
| 162 | @pytest.mark.parametrize("name", ("sum", "mean", "std", "var", "min", "max", "median")) |
| 163 | def test_coarsen_reduce(ds: Dataset, window, name) -> None: |
| 164 | # Use boundary="trim" to accommodate all window sizes used in tests |
| 165 | coarsen_obj = ds.coarsen(time=window, boundary="trim") |
| 166 | |
| 167 | # add nan prefix to numpy methods to get similar behavior as bottleneck |
| 168 | actual = coarsen_obj.reduce(getattr(np, f"nan{name}")) |
| 169 | expected = getattr(coarsen_obj, name)() |
| 170 | assert_allclose(actual, expected) |
| 171 | |
| 172 | # make sure the order of data_var are not changed. |
| 173 | assert list(ds.data_vars.keys()) == list(actual.data_vars.keys()) |
| 174 | |
| 175 | # Make sure the dimension order is restored |
| 176 | for key, src_var in ds.data_vars.items(): |
| 177 | assert src_var.dims == actual[key].dims |
| 178 | |
| 179 | |
| 180 | @pytest.mark.parametrize( |
nothing calls this directly
no test coverage detected
searching dependent graphs…