DynamicFactor test fail on ppc64el
authorDebian Science Maintainers <debian-science-maintainers@lists.alioth.debian.org>
Mon, 29 Nov 2021 22:05:33 +0000 (22:05 +0000)
committerRebecca N. Palmer <rebecca_palmer@zoho.com>
Mon, 29 Nov 2021 22:05:33 +0000 (22:05 +0000)
Warn on use and xfail test

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

Gbp-Pq: Name xfail_dynamicfactor_ppc64el.patch

statsmodels/tsa/statespace/dynamic_factor.py
statsmodels/tsa/statespace/tests/test_dynamic_factor.py

index bec3147dd96c41f90dcaa6204fc99100e3ffb441..745be30884cf11514a3ce4a8d5b4a3fa5585d468 100644 (file)
@@ -23,6 +23,9 @@ from statsmodels.tsa.tsatools import lagmat
 from statsmodels.tools.decorators import cache_readonly
 import statsmodels.base.wrapper as wrap
 from statsmodels.compat.pandas import Appender
+import platform
+import warnings
+warn_dfactor_platform= "DynamicFactor can give wrong results on ppc64el" if platform.uname()[4].startswith('ppc') else False # test results at end of https://buildd.debian.org/status/fetch.php?pkg=statsmodels&arch=ppc64el&ver=0.11.0-1&stamp=1580692747&raw=0
 
 
 class DynamicFactor(MLEModel):
@@ -141,6 +144,8 @@ class DynamicFactor(MLEModel):
     def __init__(self, endog, k_factors, factor_order, exog=None,
                  error_order=0, error_var=False, error_cov_type='diagonal',
                  enforce_stationarity=True, **kwargs):
+        if warn_dfactor_platform:
+            warnings.warn(warn_dfactor_platform)
 
         # Model properties
         self.enforce_stationarity = enforce_stationarity
index beb17a32279a8f0e1c3d0f7d65460b8553446e1b..5db5cc4251084a275fbf212736fcab1f67b4294e 100644 (file)
@@ -9,6 +9,7 @@ import re
 import warnings
 
 import numpy as np
+from statsmodels.tsa.statespace.dynamic_factor import warn_dfactor_platform
 from numpy.testing import assert_equal, assert_raises, assert_allclose
 import pandas as pd
 import pytest
@@ -575,7 +576,7 @@ class TestDynamicFactor_general_errors(CheckDynamicFactor):
             r'cov.chol\[3,3\] +' + forg(params[offset + 5], prec=4),
             table)
 
-
+@pytest.mark.xfail(condition=bool(warn_dfactor_platform),reason='known broken on ppc64el',strict=False)
 class TestDynamicFactor_ar2_errors(CheckDynamicFactor):
     """
     Test for a dynamic factor model where errors are as general as possible,