MCPcopy Index your code
hub / github.com/pydata/xarray / test_rename

Method test_rename

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

Source from the content-addressed store, hash-verified

3370 assert_equal(actual, orig)
3371
3372 def test_rename(self) -> None:
3373 data = create_test_data()
3374 newnames = {
3375 "var1": "renamed_var1",
3376 "dim2": "renamed_dim2",
3377 }
3378 renamed = data.rename(newnames)
3379
3380 variables = dict(data.variables)
3381 for nk, nv in newnames.items():
3382 variables[nv] = variables.pop(nk)
3383
3384 for k, v in variables.items():
3385 dims = list(v.dims)
3386 for name, newname in newnames.items():
3387 if name in dims:
3388 dims[dims.index(name)] = newname
3389
3390 assert_equal(
3391 Variable(dims, v.values, v.attrs),
3392 renamed[k].variable.to_base_variable(),
3393 )
3394 assert v.encoding == renamed[k].encoding
3395 assert type(v) is type(renamed.variables[k])
3396
3397 assert "var1" not in renamed
3398 assert "dim2" not in renamed
3399
3400 with pytest.raises(ValueError, match=r"cannot rename 'not_a_var'"):
3401 data.rename({"not_a_var": "nada"})
3402
3403 with pytest.raises(ValueError, match=r"'var1' conflicts"):
3404 data.rename({"var2": "var1"})
3405
3406 # verify that we can rename a variable without accessing the data
3407 var1 = data["var1"]
3408 data["var1"] = (var1.dims, InaccessibleArray(var1.values))
3409 renamed = data.rename(newnames)
3410 with pytest.raises(UnexpectedDataAccess):
3411 _ = renamed["renamed_var1"].values
3412
3413 # https://github.com/python/mypy/issues/10008
3414 renamed_kwargs = data.rename(**newnames) # type: ignore[arg-type]
3415 assert_identical(renamed, renamed_kwargs)
3416
3417 def test_rename_old_name(self) -> None:
3418 # regtest for GH1477

Callers

nothing calls this directly

Calls 10

create_test_dataFunction · 0.90
assert_equalFunction · 0.90
VariableClass · 0.90
InaccessibleArrayClass · 0.90
assert_identicalFunction · 0.90
typeFunction · 0.85
itemsMethod · 0.80
to_base_variableMethod · 0.80
renameMethod · 0.45
indexMethod · 0.45

Tested by

no test coverage detected