/
opt
/
imh-python
/
lib
/
python3.9
/
site-packages
/
numpy
/
core
/
tests
/
/opt/imh-python/lib/python3.9/site-packages/numpy/core/tests
mkdir
upload
Name
Size
Mode
Actions
data/
-
0755
rm
examples/
-
0755
rm
__pycache__/
-
0755
rm
test_abc.py
2220
0644
edit
dl
rm
test_api.py
22995
0644
edit
dl
rm
test_argparse.py
1969
0644
edit
dl
rm
test_arraymethod.py
3244
0644
edit
dl
rm
test_arrayprint.py
40462
0644
edit
dl
rm
test_array_coercion.py
34379
0644
edit
dl
rm
test_array_interface.py
7774
0644
edit
dl
rm
test_casting_floatingpoint_errors.py
5063
0644
edit
dl
rm
test_casting_unittests.py
34298
0644
edit
dl
rm
test_conversion_utils.py
6559
0644
edit
dl
rm
test_cpu_dispatcher.py
1521
0644
edit
dl
rm
test_cpu_features.py
14858
0644
edit
dl
rm
test_custom_dtypes.py
9401
0644
edit
dl
rm
test_cython.py
3444
0644
edit
dl
rm
test_datetime.py
116211
0644
edit
dl
rm
test_defchararray.py
24997
0644
edit
dl
rm
test_deprecations.py
31076
0644
edit
dl
rm
test_dlpack.py
3522
0644
edit
dl
rm
test_dtype.py
75451
0644
edit
dl
rm
test_einsum.py
53712
0644
edit
dl
rm
test_errstate.py
2219
0644
edit
dl
rm
test_extint128.py
5643
0644
edit
dl
rm
test_function_base.py
15595
0644
edit
dl
rm
test_getlimits.py
6718
0644
edit
dl
rm
test_half.py
24226
0644
edit
dl
rm
test_hashtable.py
1011
0644
edit
dl
rm
test_indexerrors.py
5130
0644
edit
dl
rm
test_indexing.py
54314
0644
edit
dl
rm
test_item_selection.py
6458
0644
edit
dl
rm
test_limited_api.py
1172
0644
edit
dl
rm
test_longdouble.py
13905
0644
edit
dl
rm
test_machar.py
1067
0644
edit
dl
rm
test_memmap.py
7477
0644
edit
dl
rm
test_mem_overlap.py
29086
0644
edit
dl
rm
test_mem_policy.py
16780
0644
edit
dl
rm
test_multiarray.py
379827
0644
edit
dl
rm
test_nditer.py
130818
0644
edit
dl
rm
test_nep50_promotions.py
8840
0644
edit
dl
rm
test_numeric.py
136543
0644
edit
dl
rm
test_numerictypes.py
21687
0644
edit
dl
rm
test_overrides.py
26080
0644
edit
dl
rm
test_print.py
6837
0644
edit
dl
rm
test_protocols.py
1168
0644
edit
dl
rm
test_records.py
20269
0644
edit
dl
rm
test_regression.py
91595
0644
edit
dl
rm
test_scalarbuffer.py
5580
0644
edit
dl
rm
test_scalarinherit.py
2368
0644
edit
dl
rm
test_scalarmath.py
43247
0644
edit
dl
rm
test_scalarprint.py
18771
0644
edit
dl
rm
test_scalar_ctors.py
6115
0644
edit
dl
rm
test_scalar_methods.py
7541
0644
edit
dl
rm
test_shape_base.py
29723
0644
edit
dl
rm
test_simd.py
48696
0644
edit
dl
rm
test_simd_module.py
3805
0644
edit
dl
rm
test_strings.py
3835
0644
edit
dl
rm
test_ufunc.py
124800
0644
edit
dl
rm
test_umath.py
185601
0644
edit
dl
rm
test_umath_accuracy.py
3897
0644
edit
dl
rm
test_umath_complex.py
23243
0644
edit
dl
rm
test_unicode.py
12775
0644
edit
dl
rm
test__exceptions.py
2846
0644
edit
dl
rm
_locales.py
2206
0644
edit
dl
rm
__init__.py
0
0644
edit
dl
rm
Edit:
/opt/imh-python/lib/python3.9/site-packages/numpy/core/tests/test_casting_floatingpoint_errors.py
(5063B)
import pytest from pytest import param from numpy.testing import IS_WASM import numpy as np def values_and_dtypes(): """ Generate value+dtype pairs that generate floating point errors during casts. The invalid casts to integers will generate "invalid" value warnings, the float casts all generate "overflow". (The Python int/float paths don't need to get tested in all the same situations, but it does not hurt.) """ # Casting to float16: yield param(70000, "float16", id="int-to-f2") yield param("70000", "float16", id="str-to-f2") yield param(70000.0, "float16", id="float-to-f2") yield param(np.longdouble(70000.), "float16", id="longdouble-to-f2") yield param(np.float64(70000.), "float16", id="double-to-f2") yield param(np.float32(70000.), "float16", id="float-to-f2") # Casting to float32: yield param(10**100, "float32", id="int-to-f4") yield param(1e100, "float32", id="float-to-f2") yield param(np.longdouble(1e300), "float32", id="longdouble-to-f2") yield param(np.float64(1e300), "float32", id="double-to-f2") # Casting to float64: # If longdouble is double-double, its max can be rounded down to the double # max. So we correct the double spacing (a bit weird, admittedly): max_ld = np.finfo(np.longdouble).max spacing = np.spacing(np.nextafter(np.finfo("f8").max, 0)) if max_ld - spacing > np.finfo("f8").max: yield param(np.finfo(np.longdouble).max, "float64", id="longdouble-to-f8") # Cast to complex32: yield param(2e300, "complex64", id="float-to-c8") yield param(2e300+0j, "complex64", id="complex-to-c8") yield param(2e300j, "complex64", id="complex-to-c8") yield param(np.longdouble(2e300), "complex64", id="longdouble-to-c8") # Invalid float to integer casts: with np.errstate(over="ignore"): for to_dt in np.typecodes["AllInteger"]: for value in [np.inf, np.nan]: for from_dt in np.typecodes["AllFloat"]: from_dt = np.dtype(from_dt) from_val = from_dt.type(value) yield param(from_val, to_dt, id=f"{from_val}-to-{to_dt}") def check_operations(dtype, value): """ There are many dedicated paths in NumPy which cast and should check for floating point errors which occurred during those casts. """ if dtype.kind != 'i': # These assignments use the stricter setitem logic: def assignment(): arr = np.empty(3, dtype=dtype) arr[0] = value yield assignment def fill(): arr = np.empty(3, dtype=dtype) arr.fill(value) yield fill def copyto_scalar(): arr = np.empty(3, dtype=dtype) np.copyto(arr, value, casting="unsafe") yield copyto_scalar def copyto(): arr = np.empty(3, dtype=dtype) np.copyto(arr, np.array([value, value, value]), casting="unsafe") yield copyto def copyto_scalar_masked(): arr = np.empty(3, dtype=dtype) np.copyto(arr, value, casting="unsafe", where=[True, False, True]) yield copyto_scalar_masked def copyto_masked(): arr = np.empty(3, dtype=dtype) np.copyto(arr, np.array([value, value, value]), casting="unsafe", where=[True, False, True]) yield copyto_masked def direct_cast(): np.array([value, value, value]).astype(dtype) yield direct_cast def direct_cast_nd_strided(): arr = np.full((5, 5, 5), fill_value=value)[:, ::2, :] arr.astype(dtype) yield direct_cast_nd_strided def boolean_array_assignment(): arr = np.empty(3, dtype=dtype) arr[[True, False, True]] = np.array([value, value]) yield boolean_array_assignment def integer_array_assignment(): arr = np.empty(3, dtype=dtype) values = np.array([value, value]) arr[[0, 1]] = values yield integer_array_assignment def integer_array_assignment_with_subspace(): arr = np.empty((5, 3), dtype=dtype) values = np.array([value, value, value]) arr[[0, 2]] = values yield integer_array_assignment_with_subspace def flat_assignment(): arr = np.empty((3,), dtype=dtype) values = np.array([value, value, value]) arr.flat[:] = values yield flat_assignment @pytest.mark.skipif(IS_WASM, reason="no wasm fp exception support") @pytest.mark.parametrize(["value", "dtype"], values_and_dtypes()) @pytest.mark.filterwarnings("ignore::numpy.ComplexWarning") def test_floatingpoint_errors_casting(dtype, value): dtype = np.dtype(dtype) for operation in check_operations(dtype, value): dtype = np.dtype(dtype) match = "invalid" if dtype.kind in 'iu' else "overflow" with pytest.warns(RuntimeWarning, match=match): operation() with np.errstate(all="raise"): with pytest.raises(FloatingPointError, match=match): operation()
Save
cmd:
run