From b462fcb4757f18fb2df84190fc35509c51b0099d Mon Sep 17 00:00:00 2001 From: Thibault Hallouin <thibault.hallouin@inrae.fr> Date: Fri, 6 Jan 2023 14:42:49 +0100 Subject: [PATCH] temporarily fix failing tests by making copies of array views --- tests/test_determinist.py | 17 ++++++++++++----- tests/test_probabilist.py | 17 ++++++++++++----- 2 files changed, 24 insertions(+), 10 deletions(-) diff --git a/tests/test_determinist.py b/tests/test_determinist.py index 8276b01..0c271a9 100644 --- a/tests/test_determinist.py +++ b/tests/test_determinist.py @@ -90,9 +90,14 @@ class TestMasking(unittest.TestCase): def test_masks(self): msk = numpy.ones(_obs.shape, dtype=bool) msk[..., :99] = False + + # TODO: figure out why passing views would not work + obs = _obs[..., 99:].copy() + prd = _prd[..., 99:].copy() + numpy.testing.assert_almost_equal( evalhyd.evald(_obs, _prd, ["NSE"], t_msk=msk)[0], - evalhyd.evald(_obs[..., 99:], _prd[..., 99:], ["NSE"])[0] + evalhyd.evald(obs, prd, ["NSE"])[0] ) def test_conditions(self): @@ -101,8 +106,9 @@ class TestMasking(unittest.TestCase): msk = (_obs[0] < 2000) | (_obs[0] > 3000) - obs = _obs[..., msk] - prd = _prd[..., msk] + # TODO: figure out why passing views would not work + obs = _obs[..., msk].copy() + prd = _prd[..., msk].copy() numpy.testing.assert_almost_equal( evalhyd.evald(_obs, _prd, ["NSE"], m_cdt=cdt)[0], @@ -114,8 +120,9 @@ class TestMasking(unittest.TestCase): msk = _obs[0] >= numpy.median(_obs) - obs = _obs[..., msk] - prd = _prd[..., msk] + # TODO: figure out why passing views would not work + obs = _obs[..., msk].copy() + prd = _prd[..., msk].copy() numpy.testing.assert_almost_equal( evalhyd.evald(_obs, _prd, ["NSE"], m_cdt=cdt)[0], diff --git a/tests/test_probabilist.py b/tests/test_probabilist.py index c42d7ff..092ea54 100644 --- a/tests/test_probabilist.py +++ b/tests/test_probabilist.py @@ -81,9 +81,14 @@ class TestMasking(unittest.TestCase): def test_masks(self): msk = numpy.ones((_prd.shape[0], _prd.shape[1], 1, _prd.shape[3]), dtype=bool) msk[..., :99] = False + + # TODO: figure out why passing views would not work + obs = _obs[..., 99:].copy() + prd = _prd[..., 99:].copy() + numpy.testing.assert_almost_equal( evalhyd.evalp(_obs, _prd, ["QS"], t_msk=msk)[0], - evalhyd.evalp(_obs[..., 99:], _prd[..., 99:], ["QS"])[0] + evalhyd.evalp(obs, prd, ["QS"])[0] ) def test_conditions(self): @@ -92,8 +97,9 @@ class TestMasking(unittest.TestCase): msk = (_obs[0] < 2000) | (_obs[0] > 3000) - obs = _obs[..., msk] - prd = _prd[..., msk] + # TODO: figure out why passing views would not work + obs = _obs[..., msk].copy() + prd = _prd[..., msk].copy() numpy.testing.assert_almost_equal( evalhyd.evalp(_obs, _prd, ["QS"], m_cdt=cdt)[0], @@ -106,8 +112,9 @@ class TestMasking(unittest.TestCase): median = numpy.squeeze(numpy.median(_prd, 2)) msk = median <= numpy.quantile(median, 0.7) - obs = _obs[..., msk] - prd = _prd[..., msk] + # TODO: figure out why passing views would not work + obs = _obs[..., msk].copy() + prd = _prd[..., msk].copy() numpy.testing.assert_almost_equal( evalhyd.evalp(_obs, _prd, ["QS"], m_cdt=cdt)[0], -- GitLab