diff options
author | Sebastian Berg <sebastian@sipsolutions.net> | 2021-07-06 11:18:28 -0500 |
---|---|---|
committer | Sebastian Berg <sebastian@sipsolutions.net> | 2021-07-12 15:32:19 -0500 |
commit | 6d25b0efc6db2b13b9b682029be3b880202ae06a (patch) | |
tree | 50926a7710339cceb72dcd6144e000d7a723897d | |
parent | 8547c5cafae7f2d8bb9209a7ebf2dc508e6f9b62 (diff) | |
download | numpy-6d25b0efc6db2b13b9b682029be3b880202ae06a.tar.gz |
TST: Change tests to more strictly (correctly) check for errors
The old tests seems not to have noticed all types of errors here.
It seems the `assert_no_warnings` context does not care about
exceptions.
-rw-r--r-- | numpy/core/tests/test_umath.py | 28 |
1 files changed, 17 insertions, 11 deletions
diff --git a/numpy/core/tests/test_umath.py b/numpy/core/tests/test_umath.py index 64357974b..d22bf54fe 100644 --- a/numpy/core/tests/test_umath.py +++ b/numpy/core/tests/test_umath.py @@ -458,11 +458,13 @@ class TestDivision: # divide by zero error check with np.errstate(divide='raise', invalid='ignore'): assert_raises(FloatingPointError, np.floor_divide, fone, fzer) - with np.errstate(invalid='raise'): - assert_no_warnings(FloatingPointError, np.floor_divide, fnan, fone) - assert_no_warnings(FloatingPointError, np.floor_divide, fone, fnan) - assert_no_warnings(FloatingPointError, np.floor_divide, fnan, fzer) - assert_no_warnings(FloatingPointError, np.floor_divide, fzer, fnan) + + # The following already contain a NaN and should not warn + with np.errstate(all='raise'): + np.floor_divide(fnan, fone) + np.floor_divide(fone, fnan) + np.floor_divide(fnan, fzer) + np.floor_divide(fzer, fnan) @pytest.mark.parametrize('dtype', np.typecodes['Float']) def test_floor_division_corner_cases(self, dtype): @@ -588,12 +590,16 @@ class TestRemainder: fone = np.array(1.0, dtype=dtype) finf = np.array(np.inf, dtype=dtype) fnan = np.array(np.nan, dtype=dtype) - with np.errstate(invalid='raise'): - assert_raises(FloatingPointError, fn, fone, fzero) - assert_no_warnings(FloatingPointError, fn, fnan, fzero) - assert_no_warnings(FloatingPointError, fn, fzero, fnan) - assert_no_warnings(FloatingPointError, fn, fone, fnan) - assert_no_warnings(FloatingPointError, fn, fnan, fone) + + # The following already contain a NaN and should not warn. + with np.errstate(all='raise'): + with pytest.raises(FloatingPointError, + match="invalid value"): + fn(fone, fzero) + fn(fnan, fzero) + fn(fzero, fnan) + fn(fone, fnan) + fn(fnan, fone) def test_float_remainder_overflow(self): a = np.finfo(np.float64).tiny |