(self, padded_dim_name, constant_values)
| 7544 | ], |
| 7545 | ) |
| 7546 | def test_pad(self, padded_dim_name, constant_values) -> None: |
| 7547 | ds = create_test_data(seed=1) |
| 7548 | padded = ds.pad({padded_dim_name: (1, 1)}, constant_values=constant_values) |
| 7549 | |
| 7550 | # test padded dim values and size |
| 7551 | for ds_dim_name, ds_dim in ds.sizes.items(): |
| 7552 | if ds_dim_name == padded_dim_name: |
| 7553 | np.testing.assert_equal(padded.sizes[ds_dim_name], ds_dim + 2) |
| 7554 | if ds_dim_name in padded.coords: |
| 7555 | assert padded[ds_dim_name][[0, -1]].isnull().all() |
| 7556 | else: |
| 7557 | np.testing.assert_equal(padded.sizes[ds_dim_name], ds_dim) |
| 7558 | |
| 7559 | # check if coord "numbers" with dimension dim3 is padded correctly |
| 7560 | if padded_dim_name == "dim3": |
| 7561 | assert padded["numbers"][[0, -1]].isnull().all() |
| 7562 | # twarning: passes but dtype changes from int to float |
| 7563 | np.testing.assert_array_equal(padded["numbers"][1:-1], ds["numbers"]) |
| 7564 | |
| 7565 | # test if data_vars are paded with correct values |
| 7566 | for data_var_name, data_var in padded.data_vars.items(): |
| 7567 | if padded_dim_name in data_var.dims: |
| 7568 | if utils.is_dict_like(constant_values): |
| 7569 | if ( |
| 7570 | expected := constant_values.get(data_var_name, None) |
| 7571 | ) is not None or ( |
| 7572 | expected := constant_values.get(padded_dim_name, None) |
| 7573 | ) is not None: |
| 7574 | self._test_data_var_interior( |
| 7575 | ds[data_var_name], data_var, padded_dim_name, expected |
| 7576 | ) |
| 7577 | else: |
| 7578 | self._test_data_var_interior( |
| 7579 | ds[data_var_name], data_var, padded_dim_name, 0 |
| 7580 | ) |
| 7581 | elif constant_values: |
| 7582 | self._test_data_var_interior( |
| 7583 | ds[data_var_name], data_var, padded_dim_name, constant_values |
| 7584 | ) |
| 7585 | else: |
| 7586 | self._test_data_var_interior( |
| 7587 | ds[data_var_name], data_var, padded_dim_name, np.nan |
| 7588 | ) |
| 7589 | else: |
| 7590 | assert_array_equal(data_var, ds[data_var_name]) |
| 7591 | |
| 7592 | @pytest.mark.parametrize( |
| 7593 | ["keep_attrs", "attrs", "expected"], |
nothing calls this directly
no test coverage detected