summaryrefslogtreecommitdiff
path: root/numpy/lib/tests/test_histograms.py
diff options
context:
space:
mode:
authorCharles Harris <charlesr.harris@gmail.com>2018-08-18 15:02:22 -0500
committerGitHub <noreply@github.com>2018-08-18 15:02:22 -0500
commit7c5a3f4f9135af6ebe33dcd3242ef3e6db115cd6 (patch)
treeb58b1922a379c7bbc0b71e1d4bf57dc31404b9ec /numpy/lib/tests/test_histograms.py
parentc33d207e747cf127d7ea81a6ea37d7e367c54c56 (diff)
parentb581aade6891662e37931b04bba29262cd6057de (diff)
downloadnumpy-7c5a3f4f9135af6ebe33dcd3242ef3e6db115cd6.tar.gz
Merge pull request #11778 from eric-wieser/histogram-overflow
BUG: Avoid signed overflow in histogram
Diffstat (limited to 'numpy/lib/tests/test_histograms.py')
-rw-r--r--numpy/lib/tests/test_histograms.py14
1 files changed, 14 insertions, 0 deletions
diff --git a/numpy/lib/tests/test_histograms.py b/numpy/lib/tests/test_histograms.py
index f136b5c81..561f5f938 100644
--- a/numpy/lib/tests/test_histograms.py
+++ b/numpy/lib/tests/test_histograms.py
@@ -310,6 +310,20 @@ class TestHistogram(object):
assert_equal(d_edge.dtype, dates.dtype)
assert_equal(t_edge.dtype, td)
+ def do_signed_overflow_bounds(self, dtype):
+ exponent = 8 * np.dtype(dtype).itemsize - 1
+ arr = np.array([-2**exponent + 4, 2**exponent - 4], dtype=dtype)
+ hist, e = histogram(arr, bins=2)
+ assert_equal(e, [-2**exponent + 4, 0, 2**exponent - 4])
+ assert_equal(hist, [1, 1])
+
+ def test_signed_overflow_bounds(self):
+ self.do_signed_overflow_bounds(np.byte)
+ self.do_signed_overflow_bounds(np.short)
+ self.do_signed_overflow_bounds(np.intc)
+ self.do_signed_overflow_bounds(np.int_)
+ self.do_signed_overflow_bounds(np.longlong)
+
def do_precision_lower_bound(self, float_small, float_large):
eps = np.finfo(float_large).eps