(self)
| 5966 | assert func(ds).a.attrs == ds.a.attrs |
| 5967 | |
| 5968 | def test_where(self) -> None: |
| 5969 | ds = Dataset({"a": ("x", range(5))}) |
| 5970 | expected1 = Dataset({"a": ("x", [np.nan, np.nan, 2, 3, 4])}) |
| 5971 | actual1 = ds.where(ds > 1) |
| 5972 | assert_identical(expected1, actual1) |
| 5973 | |
| 5974 | actual2 = ds.where(ds.a > 1) |
| 5975 | assert_identical(expected1, actual2) |
| 5976 | |
| 5977 | actual3 = ds.where(ds.a.values > 1) |
| 5978 | assert_identical(expected1, actual3) |
| 5979 | |
| 5980 | actual4 = ds.where(True) |
| 5981 | assert_identical(ds, actual4) |
| 5982 | |
| 5983 | expected5 = ds.copy(deep=True) |
| 5984 | expected5["a"].values = np.array([np.nan] * 5) |
| 5985 | actual5 = ds.where(False) |
| 5986 | assert_identical(expected5, actual5) |
| 5987 | |
| 5988 | # 2d |
| 5989 | ds = Dataset({"a": (("x", "y"), [[0, 1], [2, 3]])}) |
| 5990 | expected6 = Dataset({"a": (("x", "y"), [[np.nan, 1], [2, 3]])}) |
| 5991 | actual6 = ds.where(ds > 0) |
| 5992 | assert_identical(expected6, actual6) |
| 5993 | |
| 5994 | # attrs |
| 5995 | da = DataArray(range(5), name="a", attrs={"attr": "da"}) |
| 5996 | actual7 = da.where(da.values > 1) |
| 5997 | assert actual7.name == "a" |
| 5998 | assert actual7.attrs == da.attrs |
| 5999 | |
| 6000 | ds = Dataset({"a": da}, attrs={"attr": "ds"}) |
| 6001 | actual8 = ds.where(ds > 0) |
| 6002 | assert actual8.attrs == ds.attrs |
| 6003 | assert actual8.a.name == "a" |
| 6004 | assert actual8.a.attrs == ds.a.attrs |
| 6005 | |
| 6006 | # lambda |
| 6007 | ds = Dataset({"a": ("x", range(5))}) |
| 6008 | expected9 = Dataset({"a": ("x", [np.nan, np.nan, 2, 3, 4])}) |
| 6009 | actual9 = ds.where(lambda x: x > 1) |
| 6010 | assert_identical(expected9, actual9) |
| 6011 | |
| 6012 | def test_where_other(self) -> None: |
| 6013 | ds = Dataset({"a": ("x", range(5))}, {"x": range(5)}) |
nothing calls this directly
no test coverage detected