$79 GRAYBYTE WORDPRESS FILE MANAGER $62

SERVER : vnpttt-amd7f72-h1.vietnix.vn #1 SMP Fri May 24 12:42:50 UTC 2024
SERVER IP : 103.200.23.149 | ADMIN IP 216.73.216.22
OPTIONS : CRL = ON | WGT = ON | SDO = OFF | PKEX = OFF
DEACTIVATED : NONE

/opt/cloudlinux/venv/lib/python3.11/site-packages/numpy/core/tests/

HOME
Current File : /opt/cloudlinux/venv/lib/python3.11/site-packages/numpy/core/tests//test_simd_module.py
import pytest
from numpy.core._simd import targets
"""
This testing unit only for checking the sanity of common functionality,
therefore all we need is just to take one submodule that represents any
of enabled SIMD extensions to run the test on it and the second submodule
required to run only one check related to the possibility of mixing
the data types among each submodule.
"""
npyvs = [npyv_mod for npyv_mod in targets.values() if npyv_mod and npyv_mod.simd]
npyv, npyv2 = (npyvs + [None, None])[:2]

unsigned_sfx = ["u8", "u16", "u32", "u64"]
signed_sfx = ["s8", "s16", "s32", "s64"]
fp_sfx = []
if npyv and npyv.simd_f32:
    fp_sfx.append("f32")
if npyv and npyv.simd_f64:
    fp_sfx.append("f64")

int_sfx = unsigned_sfx + signed_sfx
all_sfx = unsigned_sfx + int_sfx

@pytest.mark.skipif(not npyv, reason="could not find any SIMD extension with NPYV support")
class Test_SIMD_MODULE:

    @pytest.mark.parametrize('sfx', all_sfx)
    def test_num_lanes(self, sfx):
        nlanes = getattr(npyv, "nlanes_" + sfx)
        vector = getattr(npyv, "setall_" + sfx)(1)
        assert len(vector) == nlanes

    @pytest.mark.parametrize('sfx', all_sfx)
    def test_type_name(self, sfx):
        vector = getattr(npyv, "setall_" + sfx)(1)
        assert vector.__name__ == "npyv_" + sfx

    def test_raises(self):
        a, b = [npyv.setall_u32(1)]*2
        for sfx in all_sfx:
            vcb = lambda intrin: getattr(npyv, f"{intrin}_{sfx}")
            pytest.raises(TypeError, vcb("add"), a)
            pytest.raises(TypeError, vcb("add"), a, b, a)
            pytest.raises(TypeError, vcb("setall"))
            pytest.raises(TypeError, vcb("setall"), [1])
            pytest.raises(TypeError, vcb("load"), 1)
            pytest.raises(ValueError, vcb("load"), [1])
            pytest.raises(ValueError, vcb("store"), [1], getattr(npyv, f"reinterpret_{sfx}_u32")(a))

    @pytest.mark.skipif(not npyv2, reason=(
        "could not find a second SIMD extension with NPYV support"
    ))
    def test_nomix(self):
        # mix among submodules isn't allowed
        a = npyv.setall_u32(1)
        a2 = npyv2.setall_u32(1)
        pytest.raises(TypeError, npyv.add_u32, a2, a2)
        pytest.raises(TypeError, npyv2.add_u32, a, a)

    @pytest.mark.parametrize('sfx', unsigned_sfx)
    def test_unsigned_overflow(self, sfx):
        nlanes = getattr(npyv, "nlanes_" + sfx)
        maxu = (1 << int(sfx[1:])) - 1
        maxu_72 = (1 << 72) - 1
        lane = getattr(npyv, "setall_" + sfx)(maxu_72)[0]
        assert lane == maxu
        lanes = getattr(npyv, "load_" + sfx)([maxu_72] * nlanes)
        assert lanes == [maxu] * nlanes
        lane = getattr(npyv, "setall_" + sfx)(-1)[0]
        assert lane == maxu
        lanes = getattr(npyv, "load_" + sfx)([-1] * nlanes)
        assert lanes == [maxu] * nlanes

    @pytest.mark.parametrize('sfx', signed_sfx)
    def test_signed_overflow(self, sfx):
        nlanes = getattr(npyv, "nlanes_" + sfx)
        maxs_72 = (1 << 71) - 1
        lane = getattr(npyv, "setall_" + sfx)(maxs_72)[0]
        assert lane == -1
        lanes = getattr(npyv, "load_" + sfx)([maxs_72] * nlanes)
        assert lanes == [-1] * nlanes
        mins_72 = -1 << 71
        lane = getattr(npyv, "setall_" + sfx)(mins_72)[0]
        assert lane == 0
        lanes = getattr(npyv, "load_" + sfx)([mins_72] * nlanes)
        assert lanes == [0] * nlanes

    def test_truncate_f32(self):
        f32 = npyv.setall_f32(0.1)[0]
        assert f32 != 0.1
        assert round(f32, 1) == 0.1

    def test_compare(self):
        data_range = range(0, npyv.nlanes_u32)
        vdata = npyv.load_u32(data_range)
        assert vdata == list(data_range)
        assert vdata == tuple(data_range)
        for i in data_range:
            assert vdata[i] == data_range[i]

Current_dir [ NOT WRITEABLE ] Document_root [ WRITEABLE ]


[ Back ]
NAME
SIZE
LAST TOUCH
USER
CAN-I?
FUNCTIONS
..
--
14 Aug 2025 9.24 PM
root / root
0755
__pycache__
--
14 Aug 2025 9.24 PM
root / root
0755
data
--
14 Aug 2025 9.24 PM
root / root
0755
examples
--
17 Apr 2025 8.10 PM
root / root
0755
__init__.py
0 KB
17 Apr 2025 8.10 PM
root / root
0644
_locales.py
2.154 KB
17 Apr 2025 8.10 PM
root / root
0644
test__exceptions.py
2.779 KB
17 Apr 2025 8.10 PM
root / root
0644
test_abc.py
2.168 KB
17 Apr 2025 8.10 PM
root / root
0644
test_api.py
22.456 KB
17 Apr 2025 8.10 PM
root / root
0644
test_argparse.py
1.923 KB
17 Apr 2025 8.10 PM
root / root
0644
test_array_coercion.py
33.573 KB
17 Apr 2025 8.10 PM
root / root
0644
test_array_interface.py
7.418 KB
17 Apr 2025 8.10 PM
root / root
0644
test_arraymethod.py
3.168 KB
17 Apr 2025 8.10 PM
root / root
0644
test_arrayprint.py
39.514 KB
17 Apr 2025 8.10 PM
root / root
0644
test_casting_floatingpoint_errors.py
4.944 KB
17 Apr 2025 8.10 PM
root / root
0644
test_casting_unittests.py
33.494 KB
17 Apr 2025 8.10 PM
root / root
0644
test_conversion_utils.py
6.405 KB
17 Apr 2025 8.10 PM
root / root
0644
test_cpu_dispatcher.py
1.485 KB
17 Apr 2025 8.10 PM
root / root
0644
test_cpu_features.py
14.51 KB
17 Apr 2025 8.10 PM
root / root
0644
test_custom_dtypes.py
9.181 KB
17 Apr 2025 8.10 PM
root / root
0644
test_cython.py
3.538 KB
17 Apr 2025 8.10 PM
root / root
0644
test_datetime.py
113.487 KB
17 Apr 2025 8.10 PM
root / root
0644
test_defchararray.py
24.411 KB
17 Apr 2025 8.10 PM
root / root
0644
test_deprecations.py
30.348 KB
17 Apr 2025 8.10 PM
root / root
0644
test_dlpack.py
3.439 KB
17 Apr 2025 8.10 PM
root / root
0644
test_dtype.py
73.523 KB
17 Apr 2025 8.10 PM
root / root
0644
test_einsum.py
51.719 KB
17 Apr 2025 8.10 PM
root / root
0644
test_errstate.py
2.167 KB
17 Apr 2025 8.10 PM
root / root
0644
test_extint128.py
5.511 KB
17 Apr 2025 8.10 PM
root / root
0644
test_function_base.py
15.229 KB
17 Apr 2025 8.10 PM
root / root
0644
test_getlimits.py
6.561 KB
17 Apr 2025 8.10 PM
root / root
0644
test_half.py
23.658 KB
17 Apr 2025 8.10 PM
root / root
0644
test_hashtable.py
0.987 KB
17 Apr 2025 8.10 PM
root / root
0644
test_indexerrors.py
5.01 KB
17 Apr 2025 8.10 PM
root / root
0644
test_indexing.py
53.041 KB
17 Apr 2025 8.10 PM
root / root
0644
test_item_selection.py
6.307 KB
17 Apr 2025 8.10 PM
root / root
0644
test_limited_api.py
1.145 KB
17 Apr 2025 8.10 PM
root / root
0644
test_longdouble.py
13.579 KB
17 Apr 2025 8.10 PM
root / root
0644
test_machar.py
1.042 KB
17 Apr 2025 8.10 PM
root / root
0644
test_mem_overlap.py
28.404 KB
17 Apr 2025 8.10 PM
root / root
0644
test_mem_policy.py
15.629 KB
17 Apr 2025 8.10 PM
root / root
0644
test_memmap.py
7.302 KB
17 Apr 2025 8.10 PM
root / root
0644
test_multiarray.py
370.43 KB
17 Apr 2025 8.10 PM
root / root
0644
test_nditer.py
127.752 KB
17 Apr 2025 8.10 PM
root / root
0644
test_nep50_promotions.py
8.633 KB
17 Apr 2025 8.10 PM
root / root
0644
test_numeric.py
133.343 KB
17 Apr 2025 8.10 PM
root / root
0644
test_numerictypes.py
21.179 KB
17 Apr 2025 8.10 PM
root / root
0644
test_overrides.py
25.469 KB
17 Apr 2025 8.10 PM
root / root
0644
test_print.py
6.677 KB
17 Apr 2025 8.10 PM
root / root
0644
test_protocols.py
1.141 KB
17 Apr 2025 8.10 PM
root / root
0644
test_records.py
19.794 KB
17 Apr 2025 8.10 PM
root / root
0644
test_regression.py
89.304 KB
17 Apr 2025 8.10 PM
root / root
0644
test_scalar_ctors.py
5.972 KB
17 Apr 2025 8.10 PM
root / root
0644
test_scalar_methods.py
7.364 KB
17 Apr 2025 8.10 PM
root / root
0644
test_scalarbuffer.py
5.449 KB
17 Apr 2025 8.10 PM
root / root
0644
test_scalarinherit.py
2.313 KB
17 Apr 2025 8.10 PM
root / root
0644
test_scalarmath.py
41.88 KB
17 Apr 2025 8.10 PM
root / root
0644
test_scalarprint.py
18.331 KB
17 Apr 2025 8.10 PM
root / root
0644
test_shape_base.py
29.026 KB
17 Apr 2025 8.10 PM
root / root
0644
test_simd.py
47.555 KB
17 Apr 2025 8.10 PM
root / root
0644
test_simd_module.py
3.716 KB
17 Apr 2025 8.10 PM
root / root
0644
test_strings.py
3.745 KB
17 Apr 2025 8.10 PM
root / root
0644
test_ufunc.py
121.235 KB
17 Apr 2025 8.10 PM
root / root
0644
test_umath.py
180.79 KB
17 Apr 2025 8.10 PM
root / root
0644
test_umath_accuracy.py
3.806 KB
17 Apr 2025 8.10 PM
root / root
0644
test_umath_complex.py
22.698 KB
17 Apr 2025 8.10 PM
root / root
0644
test_unicode.py
12.476 KB
17 Apr 2025 8.10 PM
root / root
0644

GRAYBYTE WORDPRESS FILE MANAGER @ 2026 CONTACT ME
Static GIF