(self)
| 5881 | assert (dropped["data"].values == srs["data"].values[1:]).all() |
| 5882 | |
| 5883 | def test_fillna(self) -> None: |
| 5884 | ds = Dataset({"a": ("x", [np.nan, 1, np.nan, 3])}, {"x": [0, 1, 2, 3]}) |
| 5885 | |
| 5886 | # fill with -1 |
| 5887 | actual1 = ds.fillna(-1) |
| 5888 | expected = Dataset({"a": ("x", [-1, 1, -1, 3])}, {"x": [0, 1, 2, 3]}) |
| 5889 | assert_identical(expected, actual1) |
| 5890 | |
| 5891 | actual2 = ds.fillna({"a": -1}) |
| 5892 | assert_identical(expected, actual2) |
| 5893 | |
| 5894 | other = Dataset({"a": -1}) |
| 5895 | actual3 = ds.fillna(other) |
| 5896 | assert_identical(expected, actual3) |
| 5897 | |
| 5898 | actual4 = ds.fillna({"a": other.a}) |
| 5899 | assert_identical(expected, actual4) |
| 5900 | |
| 5901 | # fill with range(4) |
| 5902 | b = DataArray(range(4), coords=[("x", range(4))]) |
| 5903 | actual5 = ds.fillna(b) |
| 5904 | expected = b.rename("a").to_dataset() |
| 5905 | assert_identical(expected, actual5) |
| 5906 | |
| 5907 | actual6 = ds.fillna(expected) |
| 5908 | assert_identical(expected, actual6) |
| 5909 | |
| 5910 | actual7 = ds.fillna(np.arange(4)) |
| 5911 | assert_identical(expected, actual7) |
| 5912 | |
| 5913 | actual8 = ds.fillna(b[:3]) |
| 5914 | assert_identical(expected, actual8) |
| 5915 | |
| 5916 | # okay to only include some data variables |
| 5917 | ds["b"] = np.nan |
| 5918 | actual9 = ds.fillna({"a": -1}) |
| 5919 | expected = Dataset( |
| 5920 | {"a": ("x", [-1, 1, -1, 3]), "b": np.nan}, {"x": [0, 1, 2, 3]} |
| 5921 | ) |
| 5922 | assert_identical(expected, actual9) |
| 5923 | |
| 5924 | # but new data variables is not okay |
| 5925 | with pytest.raises(ValueError, match=r"must be contained"): |
| 5926 | ds.fillna({"x": 0}) |
| 5927 | |
| 5928 | # empty argument should be OK |
| 5929 | result1 = ds.fillna({}) |
| 5930 | assert_identical(ds, result1) |
| 5931 | |
| 5932 | result2 = ds.fillna(Dataset(coords={"c": 42})) |
| 5933 | expected = ds.assign_coords(c=42) |
| 5934 | assert_identical(expected, result2) |
| 5935 | |
| 5936 | da = DataArray(range(5), name="a", attrs={"attr": "da"}) |
| 5937 | actual10 = da.fillna(1) |
| 5938 | assert actual10.name == "a" |
| 5939 | assert actual10.attrs == da.attrs |
| 5940 |
nothing calls this directly
no test coverage detected