Skip to content

Commit 95c03e0

Browse files
committed
adapt tests as per review request
1 parent 5da6eea commit 95c03e0

File tree

1 file changed

+23
-44
lines changed

1 file changed

+23
-44
lines changed

xarray/tests/test_concat.py

Lines changed: 23 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -136,7 +136,7 @@ def test_concat_compat() -> None:
136136

137137

138138
def test_concat_missing_var() -> None:
139-
datasets = create_concat_datasets(2, 123)
139+
datasets = create_concat_datasets(2, seed=123)
140140
expected = concat(datasets, dim="day")
141141
vars_to_drop = ["humidity", "precipitation", "cloud_cover"]
142142

@@ -152,7 +152,7 @@ def test_concat_missing_var() -> None:
152152

153153

154154
def test_concat_missing_multiple_consecutive_var() -> None:
155-
datasets = create_concat_datasets(3, 123)
155+
datasets = create_concat_datasets(3, seed=123)
156156
expected = concat(datasets, dim="day")
157157
vars_to_drop = ["humidity", "pressure"]
158158

@@ -191,9 +191,16 @@ def test_concat_second_empty() -> None:
191191

192192
assert_identical(actual, expected)
193193

194+
expected = Dataset(
195+
data_vars={"a": ("y", [0.1, np.nan])}, coords={"x": ("y", [0.1, 0.1])}
196+
)
197+
actual = concat([ds1, ds2], dim="y", coords="all")
198+
199+
assert_identical(actual, expected)
194200

195-
def test_multiple_missing_variables() -> None:
196-
datasets = create_concat_datasets(2, 123)
201+
202+
def test_concat_multiple_missing_variables() -> None:
203+
datasets = create_concat_datasets(2, seed=123)
197204
expected = concat(datasets, dim="day")
198205
vars_to_drop = ["pressure", "cloud_cover"]
199206

@@ -216,7 +223,7 @@ def test_multiple_missing_variables() -> None:
216223

217224

218225
@pytest.mark.parametrize("include_day", [True, False])
219-
def test_concat_multiple_datasets_missing_vars_and_new_dim(include_day: bool) -> None:
226+
def test_concat_multiple_datasets_missing_vars(include_day: bool) -> None:
220227
vars_to_drop = [
221228
"temperature",
222229
"pressure",
@@ -225,7 +232,9 @@ def test_concat_multiple_datasets_missing_vars_and_new_dim(include_day: bool) ->
225232
"cloud_cover",
226233
]
227234

228-
datasets = create_concat_datasets(len(vars_to_drop), 123, include_day=include_day)
235+
datasets = create_concat_datasets(
236+
len(vars_to_drop), seed=123, include_day=include_day
237+
)
229238
expected = concat(datasets, dim="day")
230239

231240
for i, name in enumerate(vars_to_drop):
@@ -235,36 +244,8 @@ def test_concat_multiple_datasets_missing_vars_and_new_dim(include_day: bool) ->
235244
expected[name][i : i + 1, ...] = np.nan
236245

237246
# set up the test data
238-
datasets = [datasets[i].drop_vars(vars_to_drop[i]) for i in range(len(datasets))]
239-
240-
actual = concat(datasets, dim="day")
241-
242-
assert list(actual.data_vars.keys()) == [
243-
"pressure",
244-
"humidity",
245-
"precipitation",
246-
"cloud_cover",
247-
"temperature",
248-
]
249-
assert_identical(actual, expected)
247+
datasets = [ds.drop_vars(varname) for ds, varname in zip(datasets, vars_to_drop)]
250248

251-
252-
def test_multiple_datasets_with_missing_variables() -> None:
253-
vars_to_drop = [
254-
"temperature",
255-
"pressure",
256-
"humidity",
257-
"precipitation",
258-
"cloud_cover",
259-
]
260-
datasets = create_concat_datasets(len(vars_to_drop), 123)
261-
262-
expected = concat(datasets, dim="day")
263-
for i, name in enumerate(vars_to_drop):
264-
expected[name][..., i * 2 : (i + 1) * 2] = np.nan
265-
266-
# set up the test data
267-
datasets = [datasets[i].drop_vars(vars_to_drop[i]) for i in range(len(datasets))]
268249
actual = concat(datasets, dim="day")
269250

270251
assert list(actual.data_vars.keys()) == [
@@ -277,10 +258,10 @@ def test_multiple_datasets_with_missing_variables() -> None:
277258
assert_identical(actual, expected)
278259

279260

280-
def test_multiple_datasets_with_multiple_missing_variables() -> None:
261+
def test_concat_multiple_datasets_with_multiple_missing_variables() -> None:
281262
vars_to_drop_in_first = ["temperature", "pressure"]
282263
vars_to_drop_in_second = ["humidity", "precipitation", "cloud_cover"]
283-
datasets = create_concat_datasets(2, 123)
264+
datasets = create_concat_datasets(2, seed=123)
284265
expected = concat(datasets, dim="day")
285266
for name in vars_to_drop_in_first:
286267
expected[name][..., :2] = np.nan
@@ -303,8 +284,8 @@ def test_multiple_datasets_with_multiple_missing_variables() -> None:
303284
assert_identical(actual, expected)
304285

305286

306-
def test_type_of_missing_fill() -> None:
307-
datasets = create_typed_datasets(2, 123)
287+
def test_concat_type_of_missing_fill() -> None:
288+
datasets = create_typed_datasets(2, seed=123)
308289
expected1 = concat(datasets, dim="day", fill_value=dtypes.NA)
309290
expected2 = concat(datasets[::-1], dim="day", fill_value=dtypes.NA)
310291
vars = ["float", "float2", "string", "int", "datetime64", "timedelta64"]
@@ -334,11 +315,11 @@ def test_type_of_missing_fill() -> None:
334315
assert_identical(actual, expected[0])
335316

336317

337-
def test_order_when_filling_missing() -> None:
318+
def test_concat_order_when_filling_missing() -> None:
338319
vars_to_drop_in_first: list[str] = []
339320
# drop middle
340321
vars_to_drop_in_second = ["humidity"]
341-
datasets = create_concat_datasets(2, 123)
322+
datasets = create_concat_datasets(2, seed=123)
342323
expected1 = concat(datasets, dim="day")
343324
for name in vars_to_drop_in_second:
344325
expected1[name][..., 2:] = np.nan
@@ -423,11 +404,9 @@ def create_ds(
423404
def test_concat_fill_missing_variables(
424405
concat_var_names, create_concat_ds, dim: bool, coord: bool
425406
) -> None:
426-
# random single variables missing in each dataset
427407
var_names = concat_var_names()
408+
drop_idx = [0, 7, 6, 4, 4, 8, 0, 6, 2, 0]
428409

429-
rng = np.random.default_rng(seed=42)
430-
drop_idx = [rng.integers(len(vlist)) for vlist in var_names]
431410
expected = concat(
432411
create_concat_ds(var_names, dim=dim, coord=coord), dim="time", data_vars="all"
433412
)

0 commit comments

Comments
 (0)