diff options
author | Charles Harris <charlesr.harris@gmail.com> | 2018-08-18 15:02:22 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-08-18 15:02:22 -0500 |
commit | 7c5a3f4f9135af6ebe33dcd3242ef3e6db115cd6 (patch) | |
tree | b58b1922a379c7bbc0b71e1d4bf57dc31404b9ec /numpy/lib/tests/test_histograms.py | |
parent | c33d207e747cf127d7ea81a6ea37d7e367c54c56 (diff) | |
parent | b581aade6891662e37931b04bba29262cd6057de (diff) | |
download | numpy-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.py | 14 |
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 |