def test_padding_fill(self, boundary_width, fill_value): ds, coords, _ = datasets_grid_metric("C") grid = Grid(ds, coords=coords) data = ds.tracer # iterate over all axes expected = data.copy(deep=True) for ax, widths in boundary_width.items(): dim = grid._get_dims_from_axis( data, ax)[0] # ? not entirely sure why this is a list expected = expected.pad({dim: widths}, "constant", constant_values=fill_value) # we intentionally strip all coords from padded arrays expected = _strip_all_coords(expected) result = pad( data, grid, boundary="fill", boundary_width=boundary_width, fill_value=fill_value, other_component=None, ) xr.testing.assert_allclose(expected, result)
def test_padding_mixed(self, boundary_width): ds, coords, _ = datasets_grid_metric("C") grid = Grid(ds, coords=coords) data = ds.tracer axis_padding_mapping = {"X": "periodic", "Y": "extend"} method_mapping = { "periodic": "wrap", "extend": "edge", } # iterate over all axes expected = data.copy(deep=True) for ax, widths in boundary_width.items(): dim = grid._get_dims_from_axis( data, ax)[0] # ? not entirely sure why this is a list expected = expected.pad({dim: widths}, method_mapping[axis_padding_mapping[ax]]) # we intentionally strip all coords from padded arrays expected = _strip_all_coords(expected) result = pad( data, grid, boundary=axis_padding_mapping, boundary_width=boundary_width, fill_value=None, other_component=None, ) xr.testing.assert_allclose(expected, result)