(self)
| 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 |
nothing calls this directly
no test coverage detected