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 From 8c3411a334d8a46b46d3148b96ecb4dfcd4e3c7b Mon Sep 17 00:00:00 2001 From: Mark Harfouche Date: Sun, 12 May 2019 12:57:55 -0400 Subject: Fixup: address eric-wieser's comments --- numpy/testing/_private/utils.py | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) (limited to 'numpy/testing/_private/utils.py') diff --git a/numpy/testing/_private/utils.py b/numpy/testing/_private/utils.py index 3953439f0..75685f7fd 100644 --- a/numpy/testing/_private/utils.py +++ b/numpy/testing/_private/utils.py @@ -20,8 +20,7 @@ from warnings import WarningMessage import pprint from numpy.core import( - intp, float32, empty, arange, array_repr, ndarray, isnat, array, - logical_not) + intp, float32, empty, arange, array_repr, ndarray, isnat, array) from numpy.lib.utils import deprecate if sys.version_info[0] >= 3: @@ -785,7 +784,7 @@ def assert_array_compare(comparison, x, y, err_msg='', verbose=True, if isinstance(val, bool): cond = val - reduced = array([0]) + reduced = array(val) else: reduced = val.ravel() cond = reduced.all() @@ -795,8 +794,7 @@ def assert_array_compare(comparison, x, y, err_msg='', verbose=True, # do not trigger a failure (np.ma.masked != True evaluates as # np.ma.masked, which is falsy). if cond != True: - logical_not(reduced, out=reduced) - mismatch = 100.0 * reduced.sum(dtype=intp) / ox.size + mismatch = 100. * (reduced.size - reduced.sum(dtype=intp)) / ox.size remarks = ['Mismatch: {:.3g}%'.format(mismatch)] with errstate(invalid='ignore', divide='ignore'): -- cgit v1.2.1 From 366f9b8fc3dbc92baf7c5ba82a44b3fdb72e863d Mon Sep 17 00:00:00 2001 From: Mark Harfouche Date: Sun, 12 May 2019 13:03:22 -0400 Subject: Ensure that reduced is a 1D array --- numpy/testing/_private/utils.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'numpy/testing/_private/utils.py') diff --git a/numpy/testing/_private/utils.py b/numpy/testing/_private/utils.py index 75685f7fd..0e739ae00 100644 --- a/numpy/testing/_private/utils.py +++ b/numpy/testing/_private/utils.py @@ -784,7 +784,7 @@ def assert_array_compare(comparison, x, y, err_msg='', verbose=True, if isinstance(val, bool): cond = val - reduced = array(val) + reduced = array([val]) else: reduced = val.ravel() cond = reduced.all() -- cgit v1.2.1