golden hour
/opt/cloudlinux/venv/lib/python3.11/site-packages/numpy/core/tests
⬆️ Go Up
Upload
File/Folder
Size
Actions
__init__.py
0 B
Del
OK
__pycache__
-
Del
OK
_locales.py
2.15 KB
Del
OK
data
-
Del
OK
examples
-
Del
OK
test__exceptions.py
2.78 KB
Del
OK
test_abc.py
2.17 KB
Del
OK
test_api.py
22.46 KB
Del
OK
test_argparse.py
1.92 KB
Del
OK
test_array_coercion.py
33.57 KB
Del
OK
test_array_interface.py
7.42 KB
Del
OK
test_arraymethod.py
3.17 KB
Del
OK
test_arrayprint.py
39.51 KB
Del
OK
test_casting_floatingpoint_errors.py
4.94 KB
Del
OK
test_casting_unittests.py
33.49 KB
Del
OK
test_conversion_utils.py
6.41 KB
Del
OK
test_cpu_dispatcher.py
1.49 KB
Del
OK
test_cpu_features.py
14.51 KB
Del
OK
test_custom_dtypes.py
9.18 KB
Del
OK
test_cython.py
3.54 KB
Del
OK
test_datetime.py
113.49 KB
Del
OK
test_defchararray.py
24.41 KB
Del
OK
test_deprecations.py
30.35 KB
Del
OK
test_dlpack.py
3.44 KB
Del
OK
test_dtype.py
73.52 KB
Del
OK
test_einsum.py
51.72 KB
Del
OK
test_errstate.py
2.17 KB
Del
OK
test_extint128.py
5.51 KB
Del
OK
test_function_base.py
15.23 KB
Del
OK
test_getlimits.py
6.56 KB
Del
OK
test_half.py
23.66 KB
Del
OK
test_hashtable.py
1011 B
Del
OK
test_indexerrors.py
5.01 KB
Del
OK
test_indexing.py
53.04 KB
Del
OK
test_item_selection.py
6.31 KB
Del
OK
test_limited_api.py
1.14 KB
Del
OK
test_longdouble.py
13.58 KB
Del
OK
test_machar.py
1.04 KB
Del
OK
test_mem_overlap.py
28.4 KB
Del
OK
test_mem_policy.py
15.63 KB
Del
OK
test_memmap.py
7.3 KB
Del
OK
test_multiarray.py
370.43 KB
Del
OK
test_nditer.py
127.75 KB
Del
OK
test_nep50_promotions.py
8.63 KB
Del
OK
test_numeric.py
133.34 KB
Del
OK
test_numerictypes.py
21.18 KB
Del
OK
test_overrides.py
25.47 KB
Del
OK
test_print.py
6.68 KB
Del
OK
test_protocols.py
1.14 KB
Del
OK
test_records.py
19.79 KB
Del
OK
test_regression.py
89.3 KB
Del
OK
test_scalar_ctors.py
5.97 KB
Del
OK
test_scalar_methods.py
7.36 KB
Del
OK
test_scalarbuffer.py
5.45 KB
Del
OK
test_scalarinherit.py
2.31 KB
Del
OK
test_scalarmath.py
41.88 KB
Del
OK
test_scalarprint.py
18.33 KB
Del
OK
test_shape_base.py
29.03 KB
Del
OK
test_simd.py
47.55 KB
Del
OK
test_simd_module.py
3.72 KB
Del
OK
test_strings.py
3.75 KB
Del
OK
test_ufunc.py
121.24 KB
Del
OK
test_umath.py
180.79 KB
Del
OK
test_umath_accuracy.py
3.81 KB
Del
OK
test_umath_complex.py
22.7 KB
Del
OK
test_unicode.py
12.48 KB
Del
OK
Edit: test_scalar_methods.py
""" Test the scalar constructors, which also do type-coercion """ import fractions import platform import types from typing import Any, Type import pytest import numpy as np from numpy.testing import assert_equal, assert_raises, IS_MUSL class TestAsIntegerRatio: # derived in part from the cpython test "test_floatasratio" @pytest.mark.parametrize("ftype", [ np.half, np.single, np.double, np.longdouble]) @pytest.mark.parametrize("f, ratio", [ (0.875, (7, 8)), (-0.875, (-7, 8)), (0.0, (0, 1)), (11.5, (23, 2)), ]) def test_small(self, ftype, f, ratio): assert_equal(ftype(f).as_integer_ratio(), ratio) @pytest.mark.parametrize("ftype", [ np.half, np.single, np.double, np.longdouble]) def test_simple_fractions(self, ftype): R = fractions.Fraction assert_equal(R(0, 1), R(*ftype(0.0).as_integer_ratio())) assert_equal(R(5, 2), R(*ftype(2.5).as_integer_ratio())) assert_equal(R(1, 2), R(*ftype(0.5).as_integer_ratio())) assert_equal(R(-2100, 1), R(*ftype(-2100.0).as_integer_ratio())) @pytest.mark.parametrize("ftype", [ np.half, np.single, np.double, np.longdouble]) def test_errors(self, ftype): assert_raises(OverflowError, ftype('inf').as_integer_ratio) assert_raises(OverflowError, ftype('-inf').as_integer_ratio) assert_raises(ValueError, ftype('nan').as_integer_ratio) def test_against_known_values(self): R = fractions.Fraction assert_equal(R(1075, 512), R(*np.half(2.1).as_integer_ratio())) assert_equal(R(-1075, 512), R(*np.half(-2.1).as_integer_ratio())) assert_equal(R(4404019, 2097152), R(*np.single(2.1).as_integer_ratio())) assert_equal(R(-4404019, 2097152), R(*np.single(-2.1).as_integer_ratio())) assert_equal(R(4728779608739021, 2251799813685248), R(*np.double(2.1).as_integer_ratio())) assert_equal(R(-4728779608739021, 2251799813685248), R(*np.double(-2.1).as_integer_ratio())) # longdouble is platform dependent @pytest.mark.parametrize("ftype, frac_vals, exp_vals", [ # dtype test cases generated using hypothesis # first five generated cases per dtype (np.half, [0.0, 0.01154830649280303, 0.31082276347447274, 0.527350517124794, 0.8308562335072596], [0, 1, 0, -8, 12]), (np.single, [0.0, 0.09248576989263226, 0.8160498218131407, 0.17389442853722373, 0.7956044195067877], [0, 12, 10, 17, -26]), (np.double, [0.0, 0.031066908499895136, 0.5214135908877832, 0.45780736035689296, 0.5906586745934036], [0, -801, 51, 194, -653]), pytest.param( np.longdouble, [0.0, 0.20492557202724854, 0.4277180662199366, 0.9888085019891495, 0.9620175814461964], [0, -7400, 14266, -7822, -8721], marks=[ pytest.mark.skipif( np.finfo(np.double) == np.finfo(np.longdouble), reason="long double is same as double"), pytest.mark.skipif( platform.machine().startswith("ppc"), reason="IBM double double"), ] ) ]) def test_roundtrip(self, ftype, frac_vals, exp_vals): for frac, exp in zip(frac_vals, exp_vals): f = np.ldexp(ftype(frac), exp) assert f.dtype == ftype n, d = f.as_integer_ratio() try: nf = np.longdouble(n) df = np.longdouble(d) if not np.isfinite(df): raise OverflowError except (OverflowError, RuntimeWarning): # the values may not fit in any float type pytest.skip("longdouble too small on this platform") assert_equal(nf / df, f, "{}/{}".format(n, d)) class TestIsInteger: @pytest.mark.parametrize("str_value", ["inf", "nan"]) @pytest.mark.parametrize("code", np.typecodes["Float"]) def test_special(self, code: str, str_value: str) -> None: cls = np.dtype(code).type value = cls(str_value) assert not value.is_integer() @pytest.mark.parametrize( "code", np.typecodes["Float"] + np.typecodes["AllInteger"] ) def test_true(self, code: str) -> None: float_array = np.arange(-5, 5).astype(code) for value in float_array: assert value.is_integer() @pytest.mark.parametrize("code", np.typecodes["Float"]) def test_false(self, code: str) -> None: float_array = np.arange(-5, 5).astype(code) float_array *= 1.1 for value in float_array: if value == 0: continue assert not value.is_integer() class TestClassGetItem: @pytest.mark.parametrize("cls", [ np.number, np.integer, np.inexact, np.unsignedinteger, np.signedinteger, np.floating, ]) def test_abc(self, cls: Type[np.number]) -> None: alias = cls[Any] assert isinstance(alias, types.GenericAlias) assert alias.__origin__ is cls def test_abc_complexfloating(self) -> None: alias = np.complexfloating[Any, Any] assert isinstance(alias, types.GenericAlias) assert alias.__origin__ is np.complexfloating @pytest.mark.parametrize("arg_len", range(4)) def test_abc_complexfloating_subscript_tuple(self, arg_len: int) -> None: arg_tup = (Any,) * arg_len if arg_len in (1, 2): assert np.complexfloating[arg_tup] else: match = f"Too {'few' if arg_len == 0 else 'many'} arguments" with pytest.raises(TypeError, match=match): np.complexfloating[arg_tup] @pytest.mark.parametrize("cls", [np.generic, np.flexible, np.character]) def test_abc_non_numeric(self, cls: Type[np.generic]) -> None: with pytest.raises(TypeError): cls[Any] @pytest.mark.parametrize("code", np.typecodes["All"]) def test_concrete(self, code: str) -> None: cls = np.dtype(code).type with pytest.raises(TypeError): cls[Any] @pytest.mark.parametrize("arg_len", range(4)) def test_subscript_tuple(self, arg_len: int) -> None: arg_tup = (Any,) * arg_len if arg_len == 1: assert np.number[arg_tup] else: with pytest.raises(TypeError): np.number[arg_tup] def test_subscript_scalar(self) -> None: assert np.number[Any] class TestBitCount: # derived in part from the cpython test "test_bit_count" @pytest.mark.parametrize("itype", np.sctypes['int']+np.sctypes['uint']) def test_small(self, itype): for a in range(max(np.iinfo(itype).min, 0), 128): msg = f"Smoke test for {itype}({a}).bit_count()" assert itype(a).bit_count() == bin(a).count("1"), msg def test_bit_count(self): for exp in [10, 17, 63]: a = 2**exp assert np.uint64(a).bit_count() == 1 assert np.uint64(a - 1).bit_count() == exp assert np.uint64(a ^ 63).bit_count() == 7 assert np.uint64((a - 1) ^ 510).bit_count() == exp - 8
Save