@@ -64,21 +64,23 @@ def test_group_indexers_by_index(self):
64
64
data .coords ["y2" ] = ("y" , [2.0 , 3.0 ])
65
65
66
66
indexes , grouped_indexers = indexing .group_indexers_by_index (
67
- data , {"z" : 0 , "one" : "a" , "two" : 1 , "y" : 0 }
67
+ data , {"z" : 0 , "one" : "a" , "two" : 1 , "y" : 0 }, {}
68
68
)
69
- assert indexes == {"x" : data .xindexes ["x" ], "y" : data .xindexes ["y" ]}
70
- assert grouped_indexers == {
71
- "x" : {"one" : "a" , "two" : 1 },
72
- "y" : {"y" : 0 },
73
- None : {"z" : 0 },
74
- }
69
+ for k in indexes :
70
+ if indexes [k ].equals (data .xindexes ["x" ]):
71
+ assert grouped_indexers [k ] == {"one" : "a" , "two" : 1 }
72
+ elif indexes [k ].equals (data .xindexes ["y" ]):
73
+ assert grouped_indexers [k ] == {"y" : 0 }
74
+ assert grouped_indexers [None ] == {"z" : 0 }
75
+ grouped_indexers .pop (None )
76
+ assert indexes .keys () == grouped_indexers .keys ()
75
77
76
78
with pytest .raises (KeyError , match = r"no index found for coordinate y2" ):
77
- indexing .group_indexers_by_index (data , {"y2" : 2.0 })
79
+ indexing .group_indexers_by_index (data , {"y2" : 2.0 }, {} )
78
80
with pytest .raises (KeyError , match = r"w is not a valid dimension or coordinate" ):
79
- indexing .group_indexers_by_index (data , {"w" : "a" })
81
+ indexing .group_indexers_by_index (data , {"w" : "a" }, {} )
80
82
with pytest .raises (ValueError , match = r"cannot supply.*" ):
81
- indexing .group_indexers_by_index (data , {"z" : 1 }, method = " nearest" )
83
+ indexing .group_indexers_by_index (data , {"z" : 1 }, { " method" : " nearest"} )
82
84
83
85
def test_remap_label_indexers (self ):
84
86
def test_indexer (
@@ -88,6 +90,7 @@ def test_indexer(
88
90
expected_idx = None ,
89
91
expected_vars = None ,
90
92
expected_drop = None ,
93
+ expected_rename_dims = None ,
91
94
):
92
95
if expected_vars is None :
93
96
expected_vars = {}
@@ -97,22 +100,23 @@ def test_indexer(
97
100
expected_idx = {k : expected_idx for k in expected_vars }
98
101
if expected_drop is None :
99
102
expected_drop = []
103
+ if expected_rename_dims is None :
104
+ expected_rename_dims = {}
100
105
101
- pos , new_idx , new_vars , drop_vars = indexing .remap_label_indexers (
102
- data , {"x" : x }
103
- )
106
+ results = indexing .remap_label_indexers (data , {"x" : x })
104
107
105
- assert_array_equal (pos .get ("x" ), expected_pos )
108
+ assert_array_equal (results . dim_indexers .get ("x" ), expected_pos )
106
109
107
- assert new_idx .keys () == expected_idx .keys ()
108
- for k in new_idx :
109
- assert new_idx [k ].equals (expected_idx [k ])
110
+ assert results . indexes .keys () == expected_idx .keys ()
111
+ for k in results . indexes :
112
+ assert results . indexes [k ].equals (expected_idx [k ])
110
113
111
- assert new_vars .keys () == expected_vars .keys ()
112
- for k in new_vars :
113
- assert_array_equal (new_vars [k ], expected_vars [k ])
114
+ assert results . index_vars .keys () == expected_vars .keys ()
115
+ for k in results . index_vars :
116
+ assert_array_equal (results . index_vars [k ], expected_vars [k ])
114
117
115
- assert drop_vars == expected_drop
118
+ assert set (results .drop_coords ) == set (expected_drop )
119
+ assert results .rename_dims == expected_rename_dims
116
120
117
121
data = Dataset ({"x" : ("x" , [1 , 2 , 3 ])})
118
122
mindex = pd .MultiIndex .from_product (
@@ -130,6 +134,7 @@ def test_indexer(
130
134
[True , True , False , False , False , False , False , False ],
131
135
* PandasIndex .from_pandas_index (pd .Index ([- 1 , - 2 ]), "three" ),
132
136
["x" , "one" , "two" ],
137
+ {"x" : "three" },
133
138
)
134
139
test_indexer (
135
140
mdata ,
@@ -161,13 +166,15 @@ def test_indexer(
161
166
[True , True , False , False , False , False , False , False ],
162
167
* PandasIndex .from_pandas_index (pd .Index ([- 1 , - 2 ]), "three" ),
163
168
["x" , "one" , "two" ],
169
+ {"x" : "three" },
164
170
)
165
171
test_indexer (
166
172
mdata ,
167
173
{"one" : "a" , "three" : - 1 },
168
174
[True , False , True , False , False , False , False , False ],
169
175
* PandasIndex .from_pandas_index (pd .Index ([1 , 2 ]), "two" ),
170
176
["x" , "one" , "three" ],
177
+ {"x" : "two" },
171
178
)
172
179
test_indexer (
173
180
mdata ,
0 commit comments