/usr/local/lib64/python3.6/site-packages/numpy/core/tests
NameSizeModeActions
data/-0755rm
__pycache__/-0755rm
test_abc.py23280644editdlrm
test_api.py208060644editdlrm
test_arrayprint.py344930644editdlrm
test_conversion_utils.py49810644editdlrm
test_cpu_features.py67850644editdlrm
test_datetime.py1081920644editdlrm
test_defchararray.py243810644editdlrm
test_deprecations.py241870644editdlrm
test_dtype.py492910644editdlrm
test_einsum.py451970644editdlrm
test_errstate.py20660644editdlrm
test_extint128.py56430644editdlrm
test_function_base.py131480644editdlrm
test_getlimits.py42970644editdlrm
test_half.py231020644editdlrm
test_indexerrors.py51300644editdlrm
test_indexing.py492600644editdlrm
test_item_selection.py35790644editdlrm
test_longdouble.py130410644editdlrm
test_machar.py10660644editdlrm
test_memmap.py74640644editdlrm
test_mem_overlap.py288550644editdlrm
test_multiarray.py3197970644editdlrm
test_nditer.py1122980644editdlrm
test_numeric.py1241180644editdlrm
test_numerictypes.py208460644editdlrm
test_overrides.py144330644editdlrm
test_print.py67370644editdlrm
test_protocols.py11680644editdlrm
test_records.py196940644editdlrm
test_regression.py888400644editdlrm
test_scalarbuffer.py40650644editdlrm
test_scalarinherit.py21270644editdlrm
test_scalarmath.py285650644editdlrm
test_scalarprint.py151580644editdlrm
test_scalar_ctors.py25800644editdlrm
test_scalar_methods.py40630644editdlrm
test_shape_base.py246790644editdlrm
test_ufunc.py839780644editdlrm
test_umath.py1214420644editdlrm
test_umath_accuracy.py30440644editdlrm
test_umath_complex.py231450644editdlrm
test_unicode.py125530644editdlrm
test__exceptions.py20050644editdlrm
_locales.py21920644editdlrm
__init__.py00644editdlrm
Edit: /usr/local/lib64/python3.6/site-packages/numpy/core/tests/test_umath_accuracy.py (3044B)
import numpy as np import platform from os import path import sys import pytest from ctypes import c_longlong, c_double, c_float, c_int, cast, pointer, POINTER from numpy.testing import assert_array_max_ulp from numpy.core._multiarray_umath import __cpu_features__ IS_AVX = __cpu_features__.get('AVX512F', False) or \ (__cpu_features__.get('FMA3', False) and __cpu_features__.get('AVX2', False)) runtest = sys.platform.startswith('linux') and IS_AVX platform_skip = pytest.mark.skipif(not runtest, reason="avoid testing inconsistent platform " "library implementations") # convert string to hex function taken from: # https://stackoverflow.com/questions/1592158/convert-hex-to-float # def convert(s, datatype="np.float32"): i = int(s, 16) # convert from hex to a Python int if (datatype == "np.float64"): cp = pointer(c_longlong(i)) # make this into a c long long integer fp = cast(cp, POINTER(c_double)) # cast the int pointer to a double pointer else: cp = pointer(c_int(i)) # make this into a c integer fp = cast(cp, POINTER(c_float)) # cast the int pointer to a float pointer return fp.contents.value # dereference the pointer, get the float str_to_float = np.vectorize(convert) files = ['umath-validation-set-exp', 'umath-validation-set-log', 'umath-validation-set-sin', 'umath-validation-set-cos'] class TestAccuracy: @platform_skip def test_validate_transcendentals(self): with np.errstate(all='ignore'): for filename in files: data_dir = path.join(path.dirname(__file__), 'data') filepath = path.join(data_dir, filename) with open(filepath) as fid: file_without_comments = (r for r in fid if not r[0] in ('$', '#')) data = np.genfromtxt(file_without_comments, dtype=('|S39','|S39','|S39',int), names=('type','input','output','ulperr'), delimiter=',', skip_header=1) npfunc = getattr(np, filename.split('-')[3]) for datatype in np.unique(data['type']): data_subset = data[data['type'] == datatype] inval = np.array(str_to_float(data_subset['input'].astype(str), data_subset['type'].astype(str)), dtype=eval(datatype)) outval = np.array(str_to_float(data_subset['output'].astype(str), data_subset['type'].astype(str)), dtype=eval(datatype)) perm = np.random.permutation(len(inval)) inval = inval[perm] outval = outval[perm] maxulperr = data_subset['ulperr'].max() assert_array_max_ulp(npfunc(inval), outval, maxulperr)