test_seasonal_order fails on i386
authorDebian Science Maintainers <debian-science-maintainers@lists.alioth.debian.org>
Wed, 30 Nov 2022 21:29:37 +0000 (21:29 +0000)
committerRebecca N. Palmer <rebecca_palmer@zoho.com>
Wed, 30 Nov 2022 21:29:37 +0000 (21:29 +0000)
Warn on use and xfail

Author: Rebecca N. Palmer <rebecca_palmer@zoho.com>
Forwarded: no

Gbp-Pq: Name xfail_i386_ets.patch

statsmodels/tsa/exponential_smoothing/ets.py
statsmodels/tsa/tests/test_exponential_smoothing.py

index c8125901a82593c2dd3115da0c211c5bff586bf5..dc465080f64ed854d7c1dccf398b95a49b20874c 100644 (file)
@@ -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
         )
index f1161a8289510393372636d0ad102b6182634e82..58985a50d7d5686b0c92941c4297a02b302cf93b 100644 (file)
@@ -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
 
@@ -1051,6 +1051,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)