@@ -178,22 +178,26 @@ async def test_concurrent_load_multiple_objects(self, xr_obj) -> None:
178
178
total_time = timer .total_time , latency = self .LATENCY , n_loads = N_OBJECTS
179
179
)
180
180
181
- async def test_indexing (self , memorystore ) -> None :
181
+ @pytest .mark .parametrize (
182
+ "method,indexer" ,
183
+ [
184
+ ("sel" , {"x" : 2 }),
185
+ ("sel" , {"x" : [2 , 3 ]}),
186
+ (
187
+ "isel" ,
188
+ {
189
+ "x" : xr .DataArray ([2 , 3 ], dims = "points" ),
190
+ "y" : xr .DataArray ([2 , 3 ], dims = "points" ),
191
+ },
192
+ ),
193
+ ],
194
+ ids = ["basic" , "outer" , "vectorized" ],
195
+ )
196
+ async def test_indexing (self , memorystore , method , indexer ) -> None :
182
197
# TODO we don't need a LatencyStore for this test
183
198
latencystore = LatencyStore (memorystore , latency = 0.0 )
184
199
ds = xr .open_zarr (latencystore , zarr_format = 3 , consolidated = False , chunks = None )
185
200
186
- # test basic indexing
187
- indexer = {"x" : 2 }
188
- result = await ds .sel (indexer ).load_async ()
189
- xrt .assert_identical (result , ds .sel (indexer ).load ())
190
-
191
- # test orthogonal indexing
192
- indexer = {"x" : [2 , 3 ]}
193
- result = await ds .sel (indexer ).load_async ()
194
- xrt .assert_identical (result , ds .sel (indexer ).load ())
195
-
196
- # test vectorized indexing
197
- indexer = {"x" : xr .DataArray ([2 , 3 ], dims = "points" ), "y" : xr .DataArray ([2 , 3 ], dims = "points" )}
198
- result = await ds .isel (indexer ).load_async ()
199
- xrt .assert_identical (result , ds .isel (indexer ).load ())
201
+ result = await getattr (ds , method )(** indexer ).load_async ()
202
+ expected = getattr (ds , method )(** indexer ).load ()
203
+ xrt .assert_identical (result , expected )
0 commit comments