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

Method test_reindex

xarray/tests/test_dataset.py:2319–2396  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

2317 assert_identical(actual, expected)
2318
2319 def test_reindex(self) -> None:
2320 data = create_test_data()
2321 assert_identical(data, data.reindex())
2322
2323 expected = data.assign_coords(dim1=data["dim1"])
2324 actual = data.reindex(dim1=data["dim1"])
2325 assert_identical(actual, expected)
2326
2327 actual = data.reindex(dim1=data["dim1"].values)
2328 assert_identical(actual, expected)
2329
2330 actual = data.reindex(dim1=data["dim1"].to_index())
2331 assert_identical(actual, expected)
2332
2333 with pytest.raises(
2334 ValueError, match=r"cannot reindex or align along dimension"
2335 ):
2336 data.reindex(dim1=data["dim1"][:5])
2337
2338 expected = data.isel(dim2=slice(5))
2339 actual = data.reindex(dim2=data["dim2"][:5])
2340 assert_identical(actual, expected)
2341
2342 # test dict-like argument
2343 actual = data.reindex({"dim2": data["dim2"]})
2344 expected = data
2345 assert_identical(actual, expected)
2346 with pytest.raises(ValueError, match=r"cannot specify both"):
2347 data.reindex({"x": 0}, x=0)
2348 with pytest.raises(ValueError, match=r"dictionary"):
2349 data.reindex("foo") # type: ignore[arg-type]
2350
2351 # invalid dimension
2352 # TODO: (benbovy - explicit indexes): uncomment?
2353 # --> from reindex docstrings: "any mismatched dimension is simply ignored"
2354 # with pytest.raises(ValueError, match=r"indexer keys.*not correspond.*"):
2355 # data.reindex(invalid=0)
2356
2357 # out of order
2358 expected = data.sel(dim2=data["dim2"][:5:-1])
2359 actual = data.reindex(dim2=data["dim2"][:5:-1])
2360 assert_identical(actual, expected)
2361
2362 # multiple fill values
2363 expected = data.reindex(dim2=[0.1, 2.1, 3.1, 4.1]).assign(
2364 var1=lambda ds: ds.var1.copy(data=[[-10, -10, -10, -10]] * len(ds.dim1)),
2365 var2=lambda ds: ds.var2.copy(data=[[-20, -20, -20, -20]] * len(ds.dim1)),
2366 )
2367 actual = data.reindex(
2368 dim2=[0.1, 2.1, 3.1, 4.1], fill_value={"var1": -10, "var2": -20}
2369 )
2370 assert_identical(actual, expected)
2371 # use the default value
2372 expected = data.reindex(dim2=[0.1, 2.1, 3.1, 4.1]).assign(
2373 var1=lambda ds: ds.var1.copy(data=[[-10, -10, -10, -10]] * len(ds.dim1)),
2374 var2=lambda ds: ds.var2.copy(
2375 data=[[np.nan, np.nan, np.nan, np.nan]] * len(ds.dim1)
2376 ),

Callers

nothing calls this directly

Calls 12

reindexMethod · 0.95
create_test_dataFunction · 0.90
assert_identicalFunction · 0.90
DatasetClass · 0.90
DataArrayClass · 0.90
arangeMethod · 0.80
assign_coordsMethod · 0.45
to_indexMethod · 0.45
iselMethod · 0.45
selMethod · 0.45
assignMethod · 0.45
copyMethod · 0.45

Tested by

no test coverage detected