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

Method test_rolling_keep_attrs

xarray/tests/test_rolling.py:537–601  ·  view source on GitHub ↗
(self, funcname, argument)

Source from the content-addressed store, hash-verified

535 ],
536 )
537 def test_rolling_keep_attrs(self, funcname, argument) -> None:
538 global_attrs = {"units": "test", "long_name": "testing"}
539 da_attrs = {"da_attr": "test"}
540 da_not_rolled_attrs = {"da_not_rolled_attr": "test"}
541
542 data = np.linspace(10, 15, 100)
543 coords = np.linspace(1, 10, 100)
544
545 ds = Dataset(
546 data_vars={"da": ("coord", data), "da_not_rolled": ("no_coord", data)},
547 coords={"coord": coords},
548 attrs=global_attrs,
549 )
550 ds.da.attrs = da_attrs
551 ds.da_not_rolled.attrs = da_not_rolled_attrs
552
553 # attrs are kept by default
554 func = getattr(ds.rolling(dim={"coord": 5}), funcname)
555 result = func(*argument)
556 assert result.attrs == global_attrs
557 assert result.da.attrs == da_attrs
558 assert result.da_not_rolled.attrs == da_not_rolled_attrs
559 assert result.da.name == "da"
560 assert result.da_not_rolled.name == "da_not_rolled"
561
562 # discard attrs
563 func = getattr(ds.rolling(dim={"coord": 5}), funcname)
564 result = func(*argument, keep_attrs=False)
565 assert result.attrs == {}
566 assert result.da.attrs == {}
567 assert result.da_not_rolled.attrs == {}
568 assert result.da.name == "da"
569 assert result.da_not_rolled.name == "da_not_rolled"
570
571 # test discard attrs using global option
572 func = getattr(ds.rolling(dim={"coord": 5}), funcname)
573 with set_options(keep_attrs=False):
574 result = func(*argument)
575
576 assert result.attrs == {}
577 assert result.da.attrs == {}
578 assert result.da_not_rolled.attrs == {}
579 assert result.da.name == "da"
580 assert result.da_not_rolled.name == "da_not_rolled"
581
582 # keyword takes precedence over global option
583 func = getattr(ds.rolling(dim={"coord": 5}), funcname)
584 with set_options(keep_attrs=False):
585 result = func(*argument, keep_attrs=True)
586
587 assert result.attrs == global_attrs
588 assert result.da.attrs == da_attrs
589 assert result.da_not_rolled.attrs == da_not_rolled_attrs
590 assert result.da.name == "da"
591 assert result.da_not_rolled.name == "da_not_rolled"
592
593 func = getattr(ds.rolling(dim={"coord": 5}), funcname)
594 with set_options(keep_attrs=True):

Callers

nothing calls this directly

Calls 5

rollingMethod · 0.95
DatasetClass · 0.90
set_optionsClass · 0.90
linspaceMethod · 0.80
funcFunction · 0.70

Tested by

no test coverage detected