MCPcopy
hub / github.com/pydata/xarray / test_map_index_queries

Method test_map_index_queries

xarray/tests/test_indexing.py:139–281  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

137 assert indexers == {"y2": 3.0}
138
139 def test_map_index_queries(self) -> None:
140 def create_sel_results(
141 x_indexer,
142 x_index,
143 other_vars,
144 drop_coords,
145 drop_indexes,
146 rename_dims,
147 ):
148 dim_indexers = {"x": x_indexer}
149 index_vars = x_index.create_variables()
150 indexes = dict.fromkeys(index_vars, x_index)
151 variables = {}
152 variables.update(index_vars)
153 variables.update(other_vars)
154
155 return indexing.IndexSelResult(
156 dim_indexers=dim_indexers,
157 indexes=indexes,
158 variables=variables,
159 drop_coords=drop_coords,
160 drop_indexes=drop_indexes,
161 rename_dims=rename_dims,
162 )
163
164 def test_indexer(
165 data: T_Xarray,
166 x: Any,
167 expected: indexing.IndexSelResult,
168 ) -> None:
169 results = indexing.map_index_queries(data, {"x": x})
170
171 assert results.dim_indexers.keys() == expected.dim_indexers.keys()
172 assert_array_equal(results.dim_indexers["x"], expected.dim_indexers["x"])
173
174 assert results.indexes.keys() == expected.indexes.keys()
175 for k in results.indexes:
176 assert results.indexes[k].equals(expected.indexes[k])
177
178 assert results.variables.keys() == expected.variables.keys()
179 for k in results.variables:
180 assert_array_equal(results.variables[k], expected.variables[k])
181
182 assert set(results.drop_coords) == set(expected.drop_coords)
183 assert set(results.drop_indexes) == set(expected.drop_indexes)
184 assert results.rename_dims == expected.rename_dims
185
186 data = Dataset({"x": ("x", [1, 2, 3])})
187 mindex = pd.MultiIndex.from_product(
188 [["a", "b"], [1, 2], [-1, -2]], names=("one", "two", "three")
189 )
190 mdata = DataArray(range(8), [("x", mindex)])
191
192 test_indexer(data, 1, indexing.IndexSelResult({"x": 0}))
193 test_indexer(data, np.int32(1), indexing.IndexSelResult({"x": 0}))
194 test_indexer(data, Variable([], 1), indexing.IndexSelResult({"x": 0}))
195 test_indexer(mdata, ("a", 1, -1), indexing.IndexSelResult({"x": 0}))
196

Callers

nothing calls this directly

Calls 5

DatasetClass · 0.90
DataArrayClass · 0.90
VariableClass · 0.90
PandasIndexClass · 0.90
PandasMultiIndexClass · 0.90

Tested by

no test coverage detected