$51 GRAYBYTE WORDPRESS FILE MANAGER $19

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_scalar_ctors.py
"""
Test the scalar constructors, which also do type-coercion
"""
import pytest

import numpy as np
from numpy.testing import (
    assert_equal, assert_almost_equal, assert_warns,
    )

class TestFromString:
    def test_floating(self):
        # Ticket #640, floats from string
        fsingle = np.single('1.234')
        fdouble = np.double('1.234')
        flongdouble = np.longdouble('1.234')
        assert_almost_equal(fsingle, 1.234)
        assert_almost_equal(fdouble, 1.234)
        assert_almost_equal(flongdouble, 1.234)

    def test_floating_overflow(self):
        """ Strings containing an unrepresentable float overflow """
        fhalf = np.half('1e10000')
        assert_equal(fhalf, np.inf)
        fsingle = np.single('1e10000')
        assert_equal(fsingle, np.inf)
        fdouble = np.double('1e10000')
        assert_equal(fdouble, np.inf)
        flongdouble = assert_warns(RuntimeWarning, np.longdouble, '1e10000')
        assert_equal(flongdouble, np.inf)

        fhalf = np.half('-1e10000')
        assert_equal(fhalf, -np.inf)
        fsingle = np.single('-1e10000')
        assert_equal(fsingle, -np.inf)
        fdouble = np.double('-1e10000')
        assert_equal(fdouble, -np.inf)
        flongdouble = assert_warns(RuntimeWarning, np.longdouble, '-1e10000')
        assert_equal(flongdouble, -np.inf)


class TestExtraArgs:
    def test_superclass(self):
        # try both positional and keyword arguments
        s = np.str_(b'\\x61', encoding='unicode-escape')
        assert s == 'a'
        s = np.str_(b'\\x61', 'unicode-escape')
        assert s == 'a'

        # previously this would return '\\xx'
        with pytest.raises(UnicodeDecodeError):
            np.str_(b'\\xx', encoding='unicode-escape')
        with pytest.raises(UnicodeDecodeError):
            np.str_(b'\\xx', 'unicode-escape')

        # superclass fails, but numpy succeeds
        assert np.bytes_(-2) == b'-2'

    def test_datetime(self):
        dt = np.datetime64('2000-01', ('M', 2))
        assert np.datetime_data(dt) == ('M', 2)

        with pytest.raises(TypeError):
            np.datetime64('2000', garbage=True)

    def test_bool(self):
        with pytest.raises(TypeError):
            np.bool_(False, garbage=True)

    def test_void(self):
        with pytest.raises(TypeError):
            np.void(b'test', garbage=True)


class TestFromInt:
    def test_intp(self):
        # Ticket #99
        assert_equal(1024, np.intp(1024))

    def test_uint64_from_negative(self):
        with pytest.warns(DeprecationWarning):
            assert_equal(np.uint64(-2), np.uint64(18446744073709551614))


int_types = [np.byte, np.short, np.intc, np.int_, np.longlong]
uint_types = [np.ubyte, np.ushort, np.uintc, np.uint, np.ulonglong]
float_types = [np.half, np.single, np.double, np.longdouble]
cfloat_types = [np.csingle, np.cdouble, np.clongdouble]


class TestArrayFromScalar:
    """ gh-15467 """

    def _do_test(self, t1, t2):
        x = t1(2)
        arr = np.array(x, dtype=t2)
        # type should be preserved exactly
        if t2 is None:
            assert arr.dtype.type is t1
        else:
            assert arr.dtype.type is t2

    @pytest.mark.parametrize('t1', int_types + uint_types)
    @pytest.mark.parametrize('t2', int_types + uint_types + [None])
    def test_integers(self, t1, t2):
        return self._do_test(t1, t2)

    @pytest.mark.parametrize('t1', float_types)
    @pytest.mark.parametrize('t2', float_types + [None])
    def test_reals(self, t1, t2):
        return self._do_test(t1, t2)

    @pytest.mark.parametrize('t1', cfloat_types)
    @pytest.mark.parametrize('t2', cfloat_types + [None])
    def test_complex(self, t1, t2):
        return self._do_test(t1, t2)


@pytest.mark.parametrize("length",
        [5, np.int8(5), np.array(5, dtype=np.uint16)])
def test_void_via_length(length):
    res = np.void(length)
    assert type(res) is np.void
    assert res.item() == b"\0" * 5
    assert res.dtype == "V5"

@pytest.mark.parametrize("bytes_",
        [b"spam", np.array(567.)])
def test_void_from_byteslike(bytes_):
    res = np.void(bytes_)
    expected = bytes(bytes_)
    assert type(res) is np.void
    assert res.item() == expected

    # Passing dtype can extend it (this is how filling works)
    res = np.void(bytes_, dtype="V100")
    assert type(res) is np.void
    assert res.item()[:len(expected)] == expected
    assert res.item()[len(expected):] == b"\0" * (res.nbytes - len(expected))
    # As well as shorten:
    res = np.void(bytes_, dtype="V4")
    assert type(res) is np.void
    assert res.item() == expected[:4]

def test_void_arraylike_trumps_byteslike():
    # The memoryview is converted as an array-like of shape (18,)
    # rather than a single bytes-like of that length.
    m = memoryview(b"just one mintleaf?")
    res = np.void(m)
    assert type(res) is np.ndarray
    assert res.dtype == "V1"
    assert res.shape == (18,)

def test_void_dtype_arg():
    # Basic test for the dtype argument (positional and keyword)
    res = np.void((1, 2), dtype="i,i")
    assert res.item() == (1, 2)
    res = np.void((2, 3), "i,i")
    assert res.item() == (2, 3)

@pytest.mark.parametrize("data",
        [5, np.int8(5), np.array(5, dtype=np.uint16)])
def test_void_from_integer_with_dtype(data):
    # The "length" meaning is ignored, rather data is used:
    res = np.void(data, dtype="i,i")
    assert type(res) is np.void
    assert res.dtype == "i,i"
    assert res["f0"] == 5 and res["f1"] == 5

def test_void_from_structure():
    dtype = np.dtype([('s', [('f', 'f8'), ('u', 'U1')]), ('i', 'i2')])
    data = np.array(((1., 'a'), 2), dtype=dtype)
    res = np.void(data[()], dtype=dtype)
    assert type(res) is np.void
    assert res.dtype == dtype
    assert res == data[()]

def test_void_bad_dtype():
    with pytest.raises(TypeError,
            match="void: descr must be a `void.*int64"):
        np.void(4, dtype="i8")

    # Subarray dtype (with shape `(4,)` is rejected):
    with pytest.raises(TypeError,
            match=r"void: descr must be a `void.*\(4,\)"):
        np.void(4, dtype="4i")

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