summaryrefslogtreecommitdiff
path: root/numpy/testing/tests
diff options
context:
space:
mode:
authorCharles Harris <charlesr.harris@gmail.com>2016-06-18 13:00:33 -0600
committerCharles Harris <charlesr.harris@gmail.com>2016-06-19 13:47:20 -0600
commit55002a5204240bfaabdc19bd670c50e47881247c (patch)
tree4dd6397925ce4a89639993f1b543ff2b4eb167fe /numpy/testing/tests
parent812ca6fcb2461e2617a50c0c132a1a27ac134849 (diff)
downloadnumpy-55002a5204240bfaabdc19bd670c50e47881247c.tar.gz
ENH: Make assert_almost_equal & assert_array_almost_equal consistent.
This changes the check for scalars in assert_almost_equal so that abs(actual - desired) < 1.5 * 10**(-decimal) Note that the previous documentation claimed that the functions were equivalent to abs(actual - desired) < .5 * 10**(-decimal) but that was not how they behaved in practice. Due to the change in implementation, some very delicate tests may fail that did not fail before. No extra failures were noted in scipy. Closes #5200.
Diffstat (limited to 'numpy/testing/tests')
-rw-r--r--numpy/testing/tests/test_utils.py36
1 files changed, 35 insertions, 1 deletions
diff --git a/numpy/testing/tests/test_utils.py b/numpy/testing/tests/test_utils.py
index fe1f411c4..842d55b37 100644
--- a/numpy/testing/tests/test_utils.py
+++ b/numpy/testing/tests/test_utils.py
@@ -11,7 +11,7 @@ from numpy.testing import (
assert_warns, assert_no_warnings, assert_allclose, assert_approx_equal,
assert_array_almost_equal_nulp, assert_array_max_ulp,
clear_and_catch_warnings, run_module_suite,
- assert_string_equal, assert_, tempdir, temppath,
+ assert_string_equal, assert_, tempdir, temppath,
)
import unittest
@@ -246,6 +246,23 @@ class TestArrayAlmostEqual(_GenericTest, unittest.TestCase):
def setUp(self):
self._assert_func = assert_array_almost_equal
+ def test_closeness(self):
+ # Note that in the course of time we ended up with
+ # `abs(x - y) < 1.5 * 10**(-decimal)`
+ # instead of the previously documented
+ # `abs(x - y) < 0.5 * 10**(-decimal)`
+ # so this check serves to preserve the wrongness.
+
+ # test scalars
+ self._assert_func(1.499999, 0.0, decimal=0)
+ self.assertRaises(AssertionError,
+ lambda: self._assert_func(1.5, 0.0, decimal=0))
+
+ # test arrays
+ self._assert_func([1.499999], [0.0], decimal=0)
+ self.assertRaises(AssertionError,
+ lambda: self._assert_func([1.5], [0.0], decimal=0))
+
def test_simple(self):
x = np.array([1234.2222])
y = np.array([1234.2223])
@@ -288,6 +305,23 @@ class TestAlmostEqual(_GenericTest, unittest.TestCase):
def setUp(self):
self._assert_func = assert_almost_equal
+ def test_closeness(self):
+ # Note that in the course of time we ended up with
+ # `abs(x - y) < 1.5 * 10**(-decimal)`
+ # instead of the previously documented
+ # `abs(x - y) < 0.5 * 10**(-decimal)`
+ # so this check serves to preserve the wrongness.
+
+ # test scalars
+ self._assert_func(1.499999, 0.0, decimal=0)
+ self.assertRaises(AssertionError,
+ lambda: self._assert_func(1.5, 0.0, decimal=0))
+
+ # test arrays
+ self._assert_func([1.499999], [0.0], decimal=0)
+ self.assertRaises(AssertionError,
+ lambda: self._assert_func([1.5], [0.0], decimal=0))
+
def test_nan_item(self):
self._assert_func(np.nan, np.nan)
self.assertRaises(AssertionError,