diff --git a/tests/test_determinist.py b/tests/test_determinist.py
index 8276b01f5c748f4912a6e80f307f3b273f4a65af..0c271a9c05b17acacbd78a714a7ee422251e10bb 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 c42d7ffecefbc974d4ae8f47493bb2b802524233..092ea546f0faec3799faa0426a243574f89c68f2 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],