Skip to content

Commit e99148e

Browse files
committed
add concat test
1 parent 4a66e7c commit e99148e

File tree

1 file changed

+47
-1
lines changed

1 file changed

+47
-1
lines changed

xarray/tests/test_dask.py

Lines changed: 47 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -424,7 +424,53 @@ def test_concat_loads_variables(self):
424424
out.compute()
425425
assert kernel_call_count == 24
426426

427-
# Finally, test that riginals are unaltered
427+
# Finally, test that originals are unaltered
428+
assert ds1["d"].data is d1
429+
assert ds1["c"].data is c1
430+
assert ds2["d"].data is d2
431+
assert ds2["c"].data is c2
432+
assert ds3["d"].data is d3
433+
assert ds3["c"].data is c3
434+
435+
# now check that concat() is correctly using dask name equality to skip loads
436+
out = xr.concat(
437+
[ds1, ds1, ds1], dim="n", data_vars="different", coords="different"
438+
)
439+
assert kernel_call_count == 24
440+
# variables are not loaded in the output
441+
assert isinstance(out["d"].data, dask.array.Array)
442+
assert isinstance(out["c"].data, dask.array.Array)
443+
444+
out = xr.concat(
445+
[ds1, ds1, ds1], dim="n", data_vars=[], coords=[], compat="identical"
446+
)
447+
assert kernel_call_count == 24
448+
# variables are not loaded in the output
449+
assert isinstance(out["d"].data, dask.array.Array)
450+
assert isinstance(out["c"].data, dask.array.Array)
451+
452+
out = xr.concat(
453+
[ds1, ds2.compute(), ds3],
454+
dim="n",
455+
data_vars="all",
456+
coords="different",
457+
compat="identical",
458+
)
459+
# c1,c3 must be computed for comparison since c2 is numpy;
460+
# d2 is computed too
461+
assert kernel_call_count == 28
462+
463+
out = xr.concat(
464+
[ds1, ds2.compute(), ds3],
465+
dim="n",
466+
data_vars="all",
467+
coords="all",
468+
compat="identical",
469+
)
470+
# no extra computes
471+
assert kernel_call_count == 30
472+
473+
# Finally, test that originals are unaltered
428474
assert ds1["d"].data is d1
429475
assert ds1["c"].data is c1
430476
assert ds2["d"].data is d2

0 commit comments

Comments
 (0)