| 737 | ) |
| 738 | |
| 739 | def test_merge_no_conflicts(self): |
| 740 | ds1 = xr.Dataset({"a": ("x", [1, 2]), "x": [0, 1]}) |
| 741 | ds2 = xr.Dataset({"a": ("x", [2, 3]), "x": [1, 2]}) |
| 742 | expected = xr.Dataset({"a": ("x", [1, 2, 3]), "x": [0, 1, 2]}) |
| 743 | |
| 744 | assert expected.identical(ds1.merge(ds2, compat="no_conflicts", join="outer")) |
| 745 | assert expected.identical(ds2.merge(ds1, compat="no_conflicts", join="outer")) |
| 746 | |
| 747 | assert ds1.identical(ds1.merge(ds2, compat="no_conflicts", join="left")) |
| 748 | |
| 749 | assert ds2.identical(ds1.merge(ds2, compat="no_conflicts", join="right")) |
| 750 | |
| 751 | expected2 = xr.Dataset({"a": ("x", [2]), "x": [1]}) |
| 752 | assert expected2.identical(ds1.merge(ds2, compat="no_conflicts", join="inner")) |
| 753 | |
| 754 | with pytest.raises(xr.MergeError): |
| 755 | ds3 = xr.Dataset({"a": ("x", [99, 3]), "x": [1, 2]}) |
| 756 | ds1.merge(ds3, compat="no_conflicts", join="outer") |
| 757 | |
| 758 | with pytest.raises(xr.MergeError): |
| 759 | ds3 = xr.Dataset({"a": ("y", [2, 3]), "y": [1, 2]}) |
| 760 | ds1.merge(ds3, compat="no_conflicts", join="outer") |
| 761 | |
| 762 | def test_merge_dataarray(self): |
| 763 | ds = xr.Dataset({"a": 0}) |