Skip to content
forked from pydata/xarray

Commit f059e50

Browse files
dcherianbenbovy
andcommitted
Add invariants check
Co-authored-by: Benoit Bovy <[email protected]>
1 parent 1f92e30 commit f059e50

File tree

3 files changed

+10
-9
lines changed

3 files changed

+10
-9
lines changed

xarray/core/indexes.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -1362,7 +1362,7 @@ def default_indexes(
13621362
coord_names = set(coords)
13631363

13641364
for name, var in coords.items():
1365-
if name in dims:
1365+
if name in dims and var.ndim == 1:
13661366
index, index_vars = create_default_index_implicit(var, coords)
13671367
if set(index_vars) <= coord_names:
13681368
indexes.update({k: index for k in index_vars})

xarray/testing.py

+7-8
Original file line numberDiff line numberDiff line change
@@ -364,14 +364,13 @@ def _assert_dataset_invariants(ds: Dataset, check_default_indexes: bool):
364364
assert all(
365365
ds._dims[k] == v.sizes[k] for v in ds._variables.values() for k in v.sizes
366366
), (ds._dims, {k: v.sizes for k, v in ds._variables.items()})
367-
assert all(
368-
isinstance(v, IndexVariable)
369-
for (k, v) in ds._variables.items()
370-
if v.dims == (k,)
371-
), {k: type(v) for k, v in ds._variables.items() if v.dims == (k,)}
372-
assert all(v.dims == (k,) for (k, v) in ds._variables.items() if k in ds._dims), {
373-
k: v.dims for k, v in ds._variables.items() if k in ds._dims
374-
}
367+
368+
if check_default_indexes:
369+
assert all(
370+
isinstance(v, IndexVariable)
371+
for (k, v) in ds._variables.items()
372+
if v.dims == (k,)
373+
), {k: type(v) for k, v in ds._variables.items() if v.dims == (k,)}
375374

376375
if ds._indexes is not None:
377376
_assert_indexes_invariants_checks(

xarray/tests/test_dataset.py

+2
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@
3535
from xarray.core.indexes import Index, PandasIndex
3636
from xarray.core.pycompat import array_type, integer_types
3737
from xarray.core.utils import is_scalar
38+
from xarray.testing import _assert_internal_invariants
3839
from xarray.tests import (
3940
DuckArrayWrapper,
4041
InaccessibleArray,
@@ -475,6 +476,7 @@ def test_constructor(self) -> None:
475476
# nD coordinate variable "x" sharing name with dimension
476477
actual = Dataset({"a": x1, "x": z})
477478
assert "x" not in actual.xindexes
479+
_assert_internal_invariants(actual, check_default_indexes=True)
478480

479481
# verify handling of DataArrays
480482
expected = Dataset({"x": x1, "z": z})

0 commit comments

Comments
 (0)