diff options
author | warren <warren.weckesser@gmail.com> | 2021-10-20 18:00:38 -0400 |
---|---|---|
committer | warren <warren.weckesser@gmail.com> | 2021-10-20 18:00:38 -0400 |
commit | be11c06de7cf128c364c33dafbdecd2372f322e6 (patch) | |
tree | a0d67ab8791d4e7bba9668966f4f522689ef2120 /numpy/lib | |
parent | 5cb560616abe44774d897a80970775d2a26bb03b (diff) | |
download | numpy-be11c06de7cf128c364c33dafbdecd2372f322e6.tar.gz |
BUG: lib: Fix error raised by insert.
When `insert` is given a single out-of-bounds index in a
list, e.g.
np.insert([0, 1, 2], [99], [3, 4]) # 99 is out of bounds
a TypeError was being raised because of a bug in the formatting
of the message.
Before this change, the error is
TypeError: %i format: a number is required, not list
After, we get the expected
IndexError: index [99] is out of bounds for axis 0 with size 3
Diffstat (limited to 'numpy/lib')
-rw-r--r-- | numpy/lib/function_base.py | 5 | ||||
-rw-r--r-- | numpy/lib/tests/test_function_base.py | 5 |
2 files changed, 7 insertions, 3 deletions
diff --git a/numpy/lib/function_base.py b/numpy/lib/function_base.py index 84128e4f0..232a51cab 100644 --- a/numpy/lib/function_base.py +++ b/numpy/lib/function_base.py @@ -4753,9 +4753,8 @@ def insert(arr, obj, values, axis=None): if indices.size == 1: index = indices.item() if index < -N or index > N: - raise IndexError( - "index %i is out of bounds for axis %i with " - "size %i" % (obj, axis, N)) + raise IndexError(f"index {obj} is out of bounds for axis {axis} " + f"with size {N}") if (index < 0): index += N diff --git a/numpy/lib/tests/test_function_base.py b/numpy/lib/tests/test_function_base.py index 66110b479..c7dfe5673 100644 --- a/numpy/lib/tests/test_function_base.py +++ b/numpy/lib/tests/test_function_base.py @@ -553,6 +553,11 @@ class TestInsert: with pytest.raises(IndexError): np.insert([0, 1, 2], np.array([], dtype=float), []) + @pytest.mark.parametrize('idx', [4, -4]) + def test_index_out_of_bounds(self, idx): + with pytest.raises(IndexError, match='out of bounds'): + np.insert([0, 1, 2], [idx], [3, 4]) + class TestAmax: |