diff options
| author | Anirudh Subramanian <anirudh2290@ufl.edu> | 2020-05-19 01:40:55 +0000 |
|---|---|---|
| committer | Anirudh Subramanian <anirudh2290@ufl.edu> | 2020-06-05 18:37:11 +0000 |
| commit | 7f559581f2bb9b76d239f3d26d5a56b431b1c79c (patch) | |
| tree | 7f3b71c2802066fbff7f0ab6ed9c412ffbb3c8b6 | |
| parent | d08bdbabc19116afecc773bdbe590ba93471f2fc (diff) | |
| download | numpy-7f559581f2bb9b76d239f3d26d5a56b431b1c79c.tar.gz | |
TST: Add additional tests for divmod, remainder and fmod
| -rw-r--r-- | numpy/core/tests/test_umath.py | 30 |
1 files changed, 26 insertions, 4 deletions
diff --git a/numpy/core/tests/test_umath.py b/numpy/core/tests/test_umath.py index 611c2c1d6..2ee97ebb8 100644 --- a/numpy/core/tests/test_umath.py +++ b/numpy/core/tests/test_umath.py @@ -397,6 +397,12 @@ class TestRemainder: assert_raises(FloatingPointError, np.divmod, fzero, fzero) with np.errstate(invalid='raise'): assert_raises(FloatingPointError, np.divmod, finf, finf) + with np.errstate(divide='ignore', invalid='raise'): + assert_raises(FloatingPointError, np.divmod, finf, fzero) + with np.errstate(divide='raise', invalid='ignore'): + assert_raises(FloatingPointError, np.divmod, finf, fzero) + with np.errstate(invalid='raise'): + assert_raises(FloatingPointError, np.fmod, fone, fzero) def test_float_remainder_overflow(self): a = np.finfo(np.float64).tiny @@ -419,6 +425,7 @@ class TestRemainder: with suppress_warnings() as sup: sup.filter(RuntimeWarning, "invalid value encountered in remainder") sup.filter(RuntimeWarning, "invalid value encountered in divmod") + sup.filter(RuntimeWarning, "invalid value encountered in fmod") sup.filter(RuntimeWarning, "divide by zero encountered in divmod") for dt in np.typecodes['Float']: fone = np.array(1.0, dtype=dt) @@ -430,19 +437,34 @@ class TestRemainder: div, rem = np.divmod(fone, fzer) assert_(np.isinf(div), 'dt: %s, div: %s' % (dt, rem)) assert_(np.isnan(rem), 'dt: %s, rem: %s' % (dt, rem)) + div, rem = np.divmod(fzer, fzer) + assert_(np.isnan(rem), 'dt: %s, rem: %s' % (dt, rem)) + assert_(np.isnan(div), 'dt: %s, rem: %s' % (dt, rem)) + div, rem = np.divmod(finf, finf) + assert_(np.isnan(div), 'dt: %s, rem: %s' % (dt, rem)) + assert_(np.isnan(rem), 'dt: %s, rem: %s' % (dt, rem)) + div, rem = np.divmod(finf, fzer) + assert_(np.isinf(div), 'dt: %s, rem: %s' % (dt, rem)) + assert_(np.isnan(rem), 'dt: %s, rem: %s' % (dt, rem)) # MSVC 2008 returns NaN here, so disable the check. #rem = np.remainder(fone, finf) #assert_(rem == fone, 'dt: %s, rem: %s' % (dt, rem)) rem = np.remainder(fone, fnan) + fmod = np.fmod(fone, fnan) assert_(np.isnan(rem), 'dt: %s, rem: %s' % (dt, rem)) + assert_(np.isnan(fmod), 'dt: %s, fmod: %s' % (dt, fmod)) rem = np.remainder(finf, fone) + fmod = np.fmod(finf, fone) + assert_(np.isnan(fmod), 'dt: %s, fmod: %s' % (dt, fmod)) assert_(np.isnan(rem), 'dt: %s, rem: %s' % (dt, rem)) - div, rem = np.divmod(fzer, fzer) + rem = np.remainder(finf, finf) + fmod = np.fmod(finf, fone) assert_(np.isnan(rem), 'dt: %s, rem: %s' % (dt, rem)) - assert_(np.isnan(div), 'dt: %s, rem: %s' % (dt, rem)) - div, rem = np.divmod(finf, finf) - assert_(np.isnan(div), 'dt: %s, rem: %s' % (dt, rem)) + assert_(np.isnan(fmod), 'dt: %s, fmod: %s' % (dt, fmod)) + rem = np.remainder(finf, fzer) + fmod = np.fmod(finf, fzer) assert_(np.isnan(rem), 'dt: %s, rem: %s' % (dt, rem)) + assert_(np.isnan(fmod), 'dt: %s, fmod: %s' % (dt, fmod)) class TestCbrt: |
