From 5bf5ae33d3e722b66a68fd995d68c1713e23ae23 Mon Sep 17 00:00:00 2001 From: Debian Science Maintainers Date: Tue, 12 Dec 2023 20:07:17 +0000 Subject: [PATCH] test_seasonal_order fails on i386 Warn on use and xfail Author: Rebecca N. Palmer Forwarded: no Gbp-Pq: Name xfail_i386_ets.patch --- statsmodels/tsa/exponential_smoothing/ets.py | 9 +++++++++ statsmodels/tsa/tests/test_exponential_smoothing.py | 3 ++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/statsmodels/tsa/exponential_smoothing/ets.py b/statsmodels/tsa/exponential_smoothing/ets.py index ca354b0..bab8aee 100644 --- a/statsmodels/tsa/exponential_smoothing/ets.py +++ b/statsmodels/tsa/exponential_smoothing/ets.py @@ -171,6 +171,13 @@ from statsmodels.tsa.exponential_smoothing.initialization import ( ) from statsmodels.tsa.tsatools import freq_to_period +import warnings +import sys +import platform +import re +warn_ets = "ETSModel can give wrong results on 32 bit i386" if (bool(re.match('i.?86|x86',platform.uname()[4])) and sys.maxsize<2**33) else False + + # Implementation details: # * The smoothing equations are implemented only for models having all @@ -426,6 +433,8 @@ class ETSModel(base.StateSpaceMLEModel): missing="none", ): + if warn_ets: + warnings.warn(warn_ets) super().__init__( endog, exog=None, dates=dates, freq=freq, missing=missing ) diff --git a/statsmodels/tsa/tests/test_exponential_smoothing.py b/statsmodels/tsa/tests/test_exponential_smoothing.py index 642b2aa..6ef8ff1 100644 --- a/statsmodels/tsa/tests/test_exponential_smoothing.py +++ b/statsmodels/tsa/tests/test_exponential_smoothing.py @@ -13,7 +13,7 @@ import pandas as pd import pytest import scipy.stats -from statsmodels.tsa.exponential_smoothing.ets import ETSModel +from statsmodels.tsa.exponential_smoothing.ets import ETSModel,warn_ets import statsmodels.tsa.holtwinters as holtwinters import statsmodels.tsa.statespace.exponential_smoothing as statespace @@ -1052,6 +1052,7 @@ def test_estimated_initialization_short_data(oildata, trend, seasonal, nobs): @pytest.mark.parametrize("method", ["estimated", "heuristic"]) +@pytest.mark.xfail(condition=bool(warn_ets),reason='known to fail on i386',strict=False) def test_seasonal_order(reset_randomstate, method): seasonal = np.arange(12.0) time_series = np.array(list(seasonal) * 100) -- 2.30.2