summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--numpy/lib/function_base.py2
-rw-r--r--numpy/lib/tests/test_function_base.py8
2 files changed, 9 insertions, 1 deletions
diff --git a/numpy/lib/function_base.py b/numpy/lib/function_base.py
index 706e9726f..2745b49d1 100644
--- a/numpy/lib/function_base.py
+++ b/numpy/lib/function_base.py
@@ -782,7 +782,7 @@ def histogram(a, bins=10, range=None, normed=False, weights=None,
bins = bin_edges
else:
bins = asarray(bins)
- if (np.diff(bins) < 0).any():
+ if np.any(bins[:-1] > bins[1:]):
raise ValueError(
'bins must increase monotonically.')
diff --git a/numpy/lib/tests/test_function_base.py b/numpy/lib/tests/test_function_base.py
index c64081088..10440d97c 100644
--- a/numpy/lib/tests/test_function_base.py
+++ b/numpy/lib/tests/test_function_base.py
@@ -1836,6 +1836,14 @@ class TestHistogram(object):
hist, edges = np.histogram(arr, bins=30, range=(-0.5, 5))
assert_equal(hist[-1], 1)
+ def test_unsigned_monotonicity_check(self):
+ # Ensures ValueError is raised if bins not increasing monotonically
+ # when bins contain unsigned values (see #9222)
+ arr = np.array([2])
+ bins = np.array([1, 3, 1], dtype='uint64')
+ with assert_raises(ValueError):
+ hist, edges = np.histogram(arr, bins=bins)
+
class TestHistogramOptimBinNums(object):
"""