(self, funcname, argument)
| 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): |
nothing calls this directly
no test coverage detected