(
da_datetimeindex,
da_cftimeindex,
freq,
closed=None,
label=None,
offset=None,
origin=None,
)
| 75 | |
| 76 | |
| 77 | def compare_against_pandas( |
| 78 | da_datetimeindex, |
| 79 | da_cftimeindex, |
| 80 | freq, |
| 81 | closed=None, |
| 82 | label=None, |
| 83 | offset=None, |
| 84 | origin=None, |
| 85 | ) -> None: |
| 86 | if isinstance(origin, tuple): |
| 87 | origin_pandas = pd.Timestamp(datetime.datetime(*origin)) |
| 88 | origin_cftime = cftime.DatetimeGregorian(*origin) |
| 89 | else: |
| 90 | origin_pandas = origin |
| 91 | origin_cftime = origin |
| 92 | |
| 93 | try: |
| 94 | result_datetimeindex = da_datetimeindex.resample( |
| 95 | time=freq, |
| 96 | closed=closed, |
| 97 | label=label, |
| 98 | offset=offset, |
| 99 | origin=origin_pandas, |
| 100 | ).mean() |
| 101 | except ValueError: |
| 102 | with pytest.raises(ValueError): |
| 103 | da_cftimeindex.resample( |
| 104 | time=freq, |
| 105 | closed=closed, |
| 106 | label=label, |
| 107 | origin=origin_cftime, |
| 108 | offset=offset, |
| 109 | ).mean() |
| 110 | else: |
| 111 | result_cftimeindex = da_cftimeindex.resample( |
| 112 | time=freq, |
| 113 | closed=closed, |
| 114 | label=label, |
| 115 | origin=origin_cftime, |
| 116 | offset=offset, |
| 117 | ).mean() |
| 118 | # TODO (benbovy - flexible indexes): update when CFTimeIndex is an xarray Index subclass |
| 119 | result_cftimeindex["time"] = ( |
| 120 | result_cftimeindex.xindexes["time"] |
| 121 | .to_pandas_index() |
| 122 | .to_datetimeindex(time_unit="ns") |
| 123 | ) |
| 124 | xr.testing.assert_identical(result_cftimeindex, result_datetimeindex) |
| 125 | |
| 126 | |
| 127 | def da(index) -> xr.DataArray: |
no test coverage detected
searching dependent graphs…