summaryrefslogtreecommitdiff
path: root/numpy/lib
diff options
context:
space:
mode:
authorwarren <warren.weckesser@gmail.com>2021-10-20 18:00:38 -0400
committerwarren <warren.weckesser@gmail.com>2021-10-20 18:00:38 -0400
commitbe11c06de7cf128c364c33dafbdecd2372f322e6 (patch)
treea0d67ab8791d4e7bba9668966f4f522689ef2120 /numpy/lib
parent5cb560616abe44774d897a80970775d2a26bb03b (diff)
downloadnumpy-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.py5
-rw-r--r--numpy/lib/tests/test_function_base.py5
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: