From e6b68e55ab1cfa66ae046ccc949b557a94a7c366 Mon Sep 17 00:00:00 2001 From: Mark Harfouche Date: Thu, 9 May 2019 16:56:16 -0400 Subject: MNT: implement assert_array_compare without converting array to python list. --- numpy/testing/_private/utils.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'numpy/testing/_private/utils.py') diff --git a/numpy/testing/_private/utils.py b/numpy/testing/_private/utils.py index c22348103..3953439f0 100644 --- a/numpy/testing/_private/utils.py +++ b/numpy/testing/_private/utils.py @@ -20,7 +20,8 @@ from warnings import WarningMessage import pprint from numpy.core import( - float32, empty, arange, array_repr, ndarray, isnat, array) + intp, float32, empty, arange, array_repr, ndarray, isnat, array, + logical_not) from numpy.lib.utils import deprecate if sys.version_info[0] >= 3: @@ -784,18 +785,18 @@ def assert_array_compare(comparison, x, y, err_msg='', verbose=True, if isinstance(val, bool): cond = val - reduced = [0] + reduced = array([0]) else: reduced = val.ravel() cond = reduced.all() - reduced = reduced.tolist() # The below comparison is a hack to ensure that fully masked # results, for which val.ravel().all() returns np.ma.masked, # do not trigger a failure (np.ma.masked != True evaluates as # np.ma.masked, which is falsy). if cond != True: - mismatch = 100.0 * reduced.count(0) / ox.size + logical_not(reduced, out=reduced) + mismatch = 100.0 * reduced.sum(dtype=intp) / ox.size remarks = ['Mismatch: {:.3g}%'.format(mismatch)] with errstate(invalid='ignore', divide='ignore'): -- cgit v1.2.1