Skip to content

Commit 3414237

Browse files
committed
add tests for combining dataarrays with combine_nested
1 parent 04b0874 commit 3414237

File tree

1 file changed

+38
-13
lines changed

1 file changed

+38
-13
lines changed

xarray/tests/test_combine.py

Lines changed: 38 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -683,7 +683,7 @@ def test_nested_combine_mixed_datasets_arrays(self):
683683
Dataset({"x": [2, 3]}),
684684
]
685685
with pytest.raises(
686-
ValueError, match=r"Can't combine datasets with unnamed arrays."
686+
ValueError, match="Can't automatically combine unnamed dataarrays with"
687687
):
688688
combine_nested(objs, "x")
689689

@@ -1034,15 +1034,19 @@ def test_combine_by_coords_incomplete_hypercube(self):
10341034
combine_by_coords([x1, x2, x3], fill_value=None)
10351035

10361036

1037-
class TestCombineMixedObjectsbyCoords:
1038-
def test_combine_by_coords_mixed_unnamed_dataarrays(self):
1037+
class TestCombineMixedObjects:
1038+
def test_combine_unnamed_named_dataarrays(self):
10391039
named_da = DataArray(name="a", data=[1.0, 2.0], coords={"x": [0, 1]}, dims="x")
10401040
unnamed_da = DataArray(data=[3.0, 4.0], coords={"x": [2, 3]}, dims="x")
10411041

10421042
with pytest.raises(
10431043
ValueError, match="Can't automatically combine unnamed dataarrays with"
10441044
):
10451045
combine_by_coords([named_da, unnamed_da])
1046+
with pytest.raises(
1047+
ValueError, match="Can't automatically combine unnamed dataarrays with"
1048+
):
1049+
combine_nested([named_da, unnamed_da], concat_dim="x")
10461050

10471051
da = DataArray([0, 1], dims="x", coords=({"x": [0, 1]}))
10481052
ds = Dataset({"x": [2, 3]})
@@ -1051,49 +1055,70 @@ def test_combine_by_coords_mixed_unnamed_dataarrays(self):
10511055
match="Can't automatically combine unnamed dataarrays with",
10521056
):
10531057
combine_by_coords([da, ds])
1058+
with pytest.raises(
1059+
ValueError,
1060+
match="Can't automatically combine unnamed dataarrays with",
1061+
):
1062+
combine_nested([da, ds], concat_dim="x")
10541063

1055-
def test_combine_coords_mixed_datasets_named_dataarrays(self):
1064+
def test_combine_mixed_datasets_named_dataarrays(self):
10561065
da = DataArray(name="a", data=[4, 5], dims="x", coords=({"x": [0, 1]}))
10571066
ds = Dataset({"b": ("x", [2, 3])})
1058-
actual = combine_by_coords([da, ds])
10591067
expected = Dataset(
10601068
{"a": ("x", [4, 5]), "b": ("x", [2, 3])}, coords={"x": ("x", [0, 1])}
10611069
)
1070+
1071+
actual = combine_by_coords([da, ds])
1072+
assert_identical(expected, actual)
1073+
1074+
actual = combine_nested([da, ds], concat_dim="x")
10621075
assert_identical(expected, actual)
10631076

1064-
def test_combine_by_coords_all_unnamed_dataarrays(self):
1077+
def test_combine_all_unnamed_dataarrays(self):
10651078
unnamed_array = DataArray(data=[1.0, 2.0], coords={"x": [0, 1]}, dims="x")
1079+
expected = unnamed_array
10661080

10671081
actual = combine_by_coords([unnamed_array])
1068-
expected = unnamed_array
1082+
assert_identical(expected, actual)
1083+
1084+
actual = combine_nested([unnamed_array], concat_dim=None)
10691085
assert_identical(expected, actual)
10701086

10711087
unnamed_array1 = DataArray(data=[1.0, 2.0], coords={"x": [0, 1]}, dims="x")
10721088
unnamed_array2 = DataArray(data=[3.0, 4.0], coords={"x": [2, 3]}, dims="x")
1073-
1074-
actual = combine_by_coords([unnamed_array1, unnamed_array2])
10751089
expected = DataArray(
10761090
data=[1.0, 2.0, 3.0, 4.0], coords={"x": [0, 1, 2, 3]}, dims="x"
10771091
)
1092+
1093+
actual = combine_by_coords([unnamed_array1, unnamed_array2])
10781094
assert_identical(expected, actual)
10791095

1080-
def test_combine_by_coords_all_named_dataarrays(self):
1096+
actual = combine_nested([unnamed_array1, unnamed_array2], concat_dim="x")
1097+
assert_identical(expected, actual)
1098+
1099+
def test_combine_all_named_dataarrays(self):
10811100
named_da = DataArray(name="a", data=[1.0, 2.0], coords={"x": [0, 1]}, dims="x")
1101+
expected = named_da.to_dataset()
10821102

10831103
actual = combine_by_coords([named_da])
1084-
expected = named_da.to_dataset()
1104+
assert_identical(expected, actual)
1105+
1106+
actual = combine_nested([named_da], concat_dim=None)
10851107
assert_identical(expected, actual)
10861108

10871109
named_da1 = DataArray(name="a", data=[1.0, 2.0], coords={"x": [0, 1]}, dims="x")
10881110
named_da2 = DataArray(name="b", data=[3.0, 4.0], coords={"x": [2, 3]}, dims="x")
1089-
1090-
actual = combine_by_coords([named_da1, named_da2])
10911111
expected = Dataset(
10921112
{
10931113
"a": DataArray(data=[1.0, 2.0], coords={"x": [0, 1]}, dims="x"),
10941114
"b": DataArray(data=[3.0, 4.0], coords={"x": [2, 3]}, dims="x"),
10951115
}
10961116
)
1117+
1118+
actual = combine_by_coords([named_da1, named_da2])
1119+
assert_identical(expected, actual)
1120+
1121+
actual = combine_nested([named_da1, named_da2], concat_dim="x")
10971122
assert_identical(expected, actual)
10981123

10991124

0 commit comments

Comments
 (0)