From c62480957efaff5fcfc51b9bae2ec8a929b35b93 Mon Sep 17 00:00:00 2001 From: Attila Balint Date: Tue, 20 Feb 2024 16:35:52 +0100 Subject: [PATCH] make periods_in_duration more lax --- src/enfobench/__version__.py | 2 +- src/enfobench/evaluation/utils.py | 8 ++------ tests/test_evaluations/test_utils.py | 9 --------- 3 files changed, 3 insertions(+), 16 deletions(-) diff --git a/src/enfobench/__version__.py b/src/enfobench/__version__.py index 3d26edf..df12433 100644 --- a/src/enfobench/__version__.py +++ b/src/enfobench/__version__.py @@ -1 +1 @@ -__version__ = "0.4.1" +__version__ = "0.4.2" diff --git a/src/enfobench/evaluation/utils.py b/src/enfobench/evaluation/utils.py index f0ffad5..f66f30f 100644 --- a/src/enfobench/evaluation/utils.py +++ b/src/enfobench/evaluation/utils.py @@ -32,12 +32,8 @@ def periods_in_duration(target: pd.DatetimeIndex, duration: timedelta | pd.Timed msg = f"Duration must be one of [pd.Timedelta, timedelta, str], got {type(duration)}" raise ValueError(msg) - if len(target.diff()[1:].unique()) != 1: - msg = f"Multiple frequencies found: '{list(target.diff()[1:].unique())}'" - raise ValueError(msg) - - delta_t = target.diff()[1:].unique()[0] - periods = duration / target.diff()[1:].unique()[0] + delta_t = target[1] - target[0] + periods = duration / delta_t if not periods.is_integer(): msg = f"Season length '{duration}' is not a multiple of the frequency '{delta_t}'" raise ValueError(msg) diff --git a/tests/test_evaluations/test_utils.py b/tests/test_evaluations/test_utils.py index b122b7a..bd59440 100644 --- a/tests/test_evaluations/test_utils.py +++ b/tests/test_evaluations/test_utils.py @@ -85,15 +85,6 @@ def test_periods_in_duration_raises_with_wrong_types(): utils.periods_in_duration(target, 3) -def test_periods_in_duration_raises_with_multiple_frequencies(): - target_1 = pd.date_range(start="2020-01-01", end="2020-01-02", freq="15T", inclusive="left") - target_2 = pd.date_range(start="2020-01-02", end="2020-01-03", freq="30T", inclusive="left") - target = pd.DatetimeIndex(np.append(target_1.values, target_2.values)) - - with pytest.raises(ValueError): - utils.periods_in_duration(target, "1H") - - def test_periods_in_duration_raises_if_duration_is_not_multiples(): target = pd.date_range(start="2020-01-01", end="2020-02-01", freq="15T") with pytest.raises(ValueError):