diff options
-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): |