diff options
author | Charles Harris <charlesr.harris@gmail.com> | 2019-05-27 11:39:13 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-05-27 11:39:13 -0700 |
commit | 3e3300ac119f9eb3f0afab2afd29b1816f965cad (patch) | |
tree | 05f0330a74d66d5c3825bfeddbfcab1062e32506 | |
parent | c976a9a44c08acf153723392906811d55294b8b4 (diff) | |
parent | 0d3d1b172b7f4c4775cd12138ec56edfac8a6dc2 (diff) | |
download | numpy-3e3300ac119f9eb3f0afab2afd29b1816f965cad.tar.gz |
Merge pull request #13642 from mattip/issue-12942
BUG: special case object arrays when printing rel-, abs-error in assert_equal
-rw-r--r-- | numpy/testing/_private/utils.py | 16 | ||||
-rw-r--r-- | numpy/testing/tests/test_utils.py | 7 |
2 files changed, 19 insertions, 4 deletions
diff --git a/numpy/testing/_private/utils.py b/numpy/testing/_private/utils.py index ee8eac9e8..53181bc49 100644 --- a/numpy/testing/_private/utils.py +++ b/numpy/testing/_private/utils.py @@ -812,14 +812,22 @@ def assert_array_compare(comparison, x, y, err_msg='', verbose=True, with contextlib.suppress(TypeError): error = abs(x - y) max_abs_error = error.max() - remarks.append('Max absolute difference: ' - + array2string(max_abs_error)) + if error.dtype == 'object': + remarks.append('Max absolute difference: ' + + str(max_abs_error)) + else: + remarks.append('Max absolute difference: ' + + array2string(max_abs_error)) # note: this definition of relative error matches that one # used by assert_allclose (found in np.isclose) max_rel_error = (error / abs(y)).max() - remarks.append('Max relative difference: ' - + array2string(max_rel_error)) + if error.dtype == 'object': + remarks.append('Max relative difference: ' + + str(max_rel_error)) + else: + remarks.append('Max relative difference: ' + + array2string(max_rel_error)) err_msg += '\n' + '\n'.join(remarks) msg = build_err_msg([ox, oy], err_msg, diff --git a/numpy/testing/tests/test_utils.py b/numpy/testing/tests/test_utils.py index 643d143ee..4247b6589 100644 --- a/numpy/testing/tests/test_utils.py +++ b/numpy/testing/tests/test_utils.py @@ -343,6 +343,13 @@ class TestEqual(TestArrayEqual): except AssertionError: assert_equal(msg2, msg_reference) + def test_object(self): + #gh-12942 + import datetime + a = np.array([datetime.datetime(2000, 1, 1), + datetime.datetime(2000, 1, 2)]) + self._test_not_equal(a, a[::-1]) + class TestArrayAlmostEqual(_GenericTest): |