def test_enum_array():
    from pybind11_tests import create_enum_array, print_enum_array

    arr = create_enum_array(3)
    dtype = arr.dtype
    assert dtype == np.dtype([('e1', '<i8'), ('e2', 'u1')])
    assert print_enum_array(arr) == ["e1=A,e2=X", "e1=B,e2=Y", "e1=A,e2=X"]
    assert arr['e1'].tolist() == [-1, 1, -1]
    assert arr['e2'].tolist() == [1, 2, 1]
    assert create_enum_array(0).dtype == dtype
Exemplo n.º 2
0
def test_enum_array():
    from pybind11_tests import create_enum_array, print_enum_array
    from sys import byteorder
    e = '<' if byteorder == 'little' else '>'

    arr = create_enum_array(3)
    dtype = arr.dtype
    assert dtype == np.dtype([('e1', e + 'i8'), ('e2', 'u1')])
    assert print_enum_array(arr) == ["e1=A,e2=X", "e1=B,e2=Y", "e1=A,e2=X"]
    assert arr['e1'].tolist() == [-1, 1, -1]
    assert arr['e2'].tolist() == [1, 2, 1]
    assert create_enum_array(0).dtype == dtype
Exemplo n.º 3
0
def test_enum_array():
    from pybind11_tests import create_enum_array, print_enum_array

    arr = create_enum_array(3)
    dtype = arr.dtype
    assert dtype == np.dtype([('e1', '<i8'), ('e2', 'u1')])
    assert print_enum_array(arr) == [
        "e1=A,e2=X",
        "e1=B,e2=Y",
        "e1=A,e2=X"
    ]
    assert arr['e1'].tolist() == [-1, 1, -1]
    assert arr['e2'].tolist() == [1, 2, 1]
    assert create_enum_array(0).dtype == dtype
Exemplo n.º 4
0
def test_enum_array():
    from pybind11_tests import create_enum_array, print_enum_array

    arr = create_enum_array(3)
    dtype = arr.dtype
    if dtype != np.dtype([('e1', '<i8'), ('e2', 'u1')]):
        raise AssertionError
    if print_enum_array(arr) != ["e1=A,e2=X", "e1=B,e2=Y", "e1=A,e2=X"]:
        raise AssertionError
    if arr['e1'].tolist() != [-1, 1, -1]:
        raise AssertionError
    if arr['e2'].tolist() != [1, 2, 1]:
        raise AssertionError
    if create_enum_array(0).dtype != dtype:
        raise AssertionError
Exemplo n.º 5
0
def test_enum_array():
    from pybind11_tests import create_enum_array, print_enum_array
    from sys import byteorder
    e = '<' if byteorder == 'little' else '>'

    arr = create_enum_array(3)
    dtype = arr.dtype
    assert dtype == np.dtype([('e1', e + 'i8'), ('e2', 'u1')])
    assert print_enum_array(arr) == [
        "e1=A,e2=X",
        "e1=B,e2=Y",
        "e1=A,e2=X"
    ]
    assert arr['e1'].tolist() == [-1, 1, -1]
    assert arr['e2'].tolist() == [1, 2, 1]
    assert create_enum_array(0).dtype == dtype
Exemplo n.º 6
0
def test_scalar_conversion():
    from pybind11_tests import (create_rec_simple, f_simple, create_rec_packed,
                                f_packed, create_rec_nested, f_nested,
                                create_enum_array)

    n = 3
    arrays = [
        create_rec_simple(n),
        create_rec_packed(n),
        create_rec_nested(n),
        create_enum_array(n)
    ]
    funcs = [f_simple, f_packed, f_nested]

    for i, func in enumerate(funcs):
        for j, arr in enumerate(arrays):
            if i == j and i < 2:
                if [func(arr[k])
                        for k in range(n)] != [k * 10 for k in range(n)]:
                    raise AssertionError
            else:
                with pytest.raises(TypeError) as excinfo:
                    func(arr[0])
                if 'incompatible function arguments' not in str(excinfo.value):
                    raise AssertionError
Exemplo n.º 7
0
def test_scalar_conversion():
    from pybind11_tests import (create_rec_simple, f_simple,
                                create_rec_packed, f_packed,
                                create_rec_nested, f_nested,
                                create_enum_array)

    n = 3
    arrays = [create_rec_simple(n), create_rec_packed(n),
              create_rec_nested(n), create_enum_array(n)]
    funcs = [f_simple, f_packed, f_nested]

    for i, func in enumerate(funcs):
        for j, arr in enumerate(arrays):
            if i == j and i < 2:
                assert [func(arr[k]) for k in range(n)] == [k * 10 for k in range(n)]
            else:
                with pytest.raises(TypeError) as excinfo:
                    func(arr[0])
                assert 'incompatible function arguments' in str(excinfo.value)