Skip to content

Commit ee21cc2

Browse files
committed
Use assert_equal instead of assert_identical to avoid comparing indexes
Since pydata/xarray#11035, `xarray.testing.assert_identical` compares xindexes too, which fails the test because RasterIndex and PandasIndex has different types. Using `assert_equal` which only checks the DataArray. Ideally should check that the index values are equal too somehow.
1 parent d375cd3 commit ee21cc2

1 file changed

Lines changed: 16 additions & 16 deletions

File tree

tests/test_indexing.py

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -67,12 +67,12 @@ def pandas_da(raster_da):
6767
@given(data=st.data())
6868
@settings(suppress_health_check=[HealthCheck.function_scoped_fixture])
6969
def test_isel_basic_indexing_equivalence(data, raster_da, pandas_da):
70-
"""Test that isel produces identical results for RasterIndex and PandasIndex."""
70+
"""Test that isel produces equal results for RasterIndex and PandasIndex."""
7171
sizes = dict(raster_da.sizes)
7272
indexers = data.draw(basic_indexers(sizes=sizes))
7373
result_raster = raster_da.isel(indexers)
7474
result_pandas = pandas_da.isel(indexers)
75-
xr.testing.assert_identical(result_raster, result_pandas)
75+
xr.testing.assert_equal(result_raster, result_pandas)
7676

7777

7878
@given(data=st.data())
@@ -81,7 +81,7 @@ def test_isel_basic_indexing_equivalence(data, raster_da, pandas_da):
8181
suppress_health_check=[HealthCheck.function_scoped_fixture],
8282
)
8383
def test_sel_basic_indexing_equivalence(data, raster_da, pandas_da):
84-
"""Test that isel produces identical results for RasterIndex and PandasIndex."""
84+
"""Test that isel produces equal results for RasterIndex and PandasIndex."""
8585
indexers = data.draw(basic_label_indexers(indexes=pandas_da.xindexes))
8686

8787
result_raster = raster_da.sel(
@@ -93,40 +93,40 @@ def test_sel_basic_indexing_equivalence(data, raster_da, pandas_da):
9393
if all(isinstance(idxr, slice) for idxr in indexers.values()):
9494
assert all(isinstance(idx, RasterIndex) for idx in result_raster.xindexes.get_unique())
9595

96-
xr.testing.assert_identical(result_raster, result_pandas)
96+
xr.testing.assert_equal(result_raster, result_pandas)
9797

9898

9999
def test_simple_isel(raster_da, pandas_da):
100100
"""Sanity check: simple indexing operations."""
101101
# Scalar indexing
102-
xr.testing.assert_identical(raster_da.isel(x=0), pandas_da.isel(x=0))
103-
xr.testing.assert_identical(raster_da.isel(y=0), pandas_da.isel(y=0))
104-
xr.testing.assert_identical(raster_da.isel(x=0, y=0), pandas_da.isel(x=0, y=0))
102+
xr.testing.assert_equal(raster_da.isel(x=0), pandas_da.isel(x=0))
103+
xr.testing.assert_equal(raster_da.isel(y=0), pandas_da.isel(y=0))
104+
xr.testing.assert_equal(raster_da.isel(x=0, y=0), pandas_da.isel(x=0, y=0))
105105

106106
# Slice indexing
107-
xr.testing.assert_identical(raster_da.isel(x=slice(2, 5)), pandas_da.isel(x=slice(2, 5)))
108-
xr.testing.assert_identical(raster_da.isel(y=slice(1, 4)), pandas_da.isel(y=slice(1, 4)))
109-
xr.testing.assert_identical(
107+
xr.testing.assert_equal(raster_da.isel(x=slice(2, 5)), pandas_da.isel(x=slice(2, 5)))
108+
xr.testing.assert_equal(raster_da.isel(y=slice(1, 4)), pandas_da.isel(y=slice(1, 4)))
109+
xr.testing.assert_equal(
110110
raster_da.isel(x=slice(2, 5), y=slice(1, 4)),
111111
pandas_da.isel(x=slice(2, 5), y=slice(1, 4)),
112112
)
113113

114114
# Array indexing
115-
xr.testing.assert_identical(raster_da.isel(x=[0, 2, 4]), pandas_da.isel(x=[0, 2, 4]))
116-
xr.testing.assert_identical(raster_da.isel(y=[1, 3]), pandas_da.isel(y=[1, 3]))
115+
xr.testing.assert_equal(raster_da.isel(x=[0, 2, 4]), pandas_da.isel(x=[0, 2, 4]))
116+
xr.testing.assert_equal(raster_da.isel(y=[1, 3]), pandas_da.isel(y=[1, 3]))
117117

118118

119119
@given(data=st.data())
120120
@settings(suppress_health_check=[HealthCheck.function_scoped_fixture])
121121
def test_outer_array_indexing(data, raster_da, pandas_da):
122-
"""Test that outer array indexing produces identical results for RasterIndex and PandasIndex."""
122+
"""Test that outer array indexing produces equal results for RasterIndex and PandasIndex."""
123123
sizes = dict(raster_da.sizes)
124124
indexers = data.draw(outer_array_indexers(sizes=sizes))
125125

126126
result_raster = raster_da.isel(indexers)
127127
result_pandas = pandas_da.isel(indexers)
128128

129-
xr.testing.assert_identical(result_raster, result_pandas)
129+
xr.testing.assert_equal(result_raster, result_pandas)
130130

131131

132132
@given(data=st.data())
@@ -135,11 +135,11 @@ def test_outer_array_indexing(data, raster_da, pandas_da):
135135
suppress_health_check=[HealthCheck.function_scoped_fixture],
136136
)
137137
def test_outer_array_label_indexing(data, raster_da, pandas_da):
138-
"""Test that outer array label indexing produces identical results for RasterIndex and PandasIndex."""
138+
"""Test that outer array label indexing produces equal results for RasterIndex and PandasIndex."""
139139
indexers = data.draw(outer_array_label_indexers(indexes=pandas_da.xindexes))
140140
result_raster = raster_da.sel(indexers, method="nearest")
141141
result_pandas = pandas_da.sel(indexers, method="nearest")
142-
xr.testing.assert_identical(result_raster, result_pandas)
142+
xr.testing.assert_equal(result_raster, result_pandas)
143143

144144

145145
@given(data=st.data())

0 commit comments

Comments
 (0)