diff options
author | Jack Vreeken <jack@vreeken.me> | 2018-06-28 15:30:47 +0200 |
---|---|---|
committer | Jack Vreeken <jack@vreeken.me> | 2018-06-29 13:42:52 +0200 |
commit | fad8c8f9f572db79391e6819f3880026cf9bb3f5 (patch) | |
tree | d3be91ffac39f29f7aeaa18df01c68a8b377b66e /numpy/lib/tests/test_function_base.py | |
parent | a9b01a2d24aa3aa5c523df6b97467db1c92607d4 (diff) | |
download | numpy-fad8c8f9f572db79391e6819f3880026cf9bb3f5.tar.gz |
BUG: fix interpolation with inf and NaN present
Values like NaN and inf would result in wrong interpolated values on
exactly matching sampling points. To produce the correct behavior, we
add an additional check to avoid interpolation when handling such a
point.
Closes #11439
Diffstat (limited to 'numpy/lib/tests/test_function_base.py')
-rw-r--r-- | numpy/lib/tests/test_function_base.py | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/numpy/lib/tests/test_function_base.py b/numpy/lib/tests/test_function_base.py index 4103a9eb3..d2a9181db 100644 --- a/numpy/lib/tests/test_function_base.py +++ b/numpy/lib/tests/test_function_base.py @@ -2237,6 +2237,14 @@ class TestInterp(object): x0 = np.nan assert_almost_equal(np.interp(x0, x, y), x0) + def test_non_finite_behavior(self): + x = [1, 2, 2.5, 3, 4] + xp = [1, 2, 3, 4] + fp = [1, 2, np.inf, 4] + assert_almost_equal(np.interp(x, xp, fp), [1, 2, np.inf, np.inf, 4]) + fp = [1, 2, np.nan, 4] + assert_almost_equal(np.interp(x, xp, fp), [1, 2, np.nan, np.nan, 4]) + def test_complex_interp(self): # test complex interpolation x = np.linspace(0, 1, 5) @@ -2251,6 +2259,12 @@ class TestInterp(object): x0 = 2.0 right = 2 + 3.0j assert_almost_equal(np.interp(x0, x, y, right=right), right) + # test complex non finite + x = [1, 2, 2.5, 3, 4] + xp = [1, 2, 3, 4] + fp = [1, 2+1j, np.inf, 4] + y = [1, 2+1j, np.inf+0.5j, np.inf, 4] + assert_almost_equal(np.interp(x, xp, fp), y) # test complex periodic x = [-180, -170, -185, 185, -10, -5, 0, 365] xp = [190, -190, 350, -350] |