3 from pybind11_tests
import stl_binders
as m
5 with pytest.suppress(ImportError):
10 v_int = m.VectorInt([0, 0])
11 assert len(v_int) == 2
12 assert bool(v_int)
is True 15 v_int1 = m.VectorInt(x
for x
in range(5))
16 assert v_int1 == m.VectorInt([0, 1, 2, 3, 4])
18 v_int2 = m.VectorInt([0, 0])
19 assert v_int == v_int2
21 assert v_int != v_int2
28 assert str(v_int2) ==
"VectorInt[3, 2, 1, 0, 1, 2, 3]" 29 with pytest.raises(IndexError):
34 assert v_int2 == m.VectorInt([3, 2, 0, 0, 99, 2, 3])
36 assert v_int2 == m.VectorInt([3, 0, 99, 2, 3])
38 assert v_int2 == m.VectorInt([0, 99, 2, 3])
40 v_int2.extend(m.VectorInt([4, 5]))
41 assert v_int2 == m.VectorInt([0, 99, 2, 3, 4, 5])
44 assert v_int2 == m.VectorInt([0, 99, 2, 3, 4, 5, 6, 7])
47 with pytest.raises(RuntimeError):
48 v_int2.extend([8,
'a'])
50 assert v_int2 == m.VectorInt([0, 99, 2, 3, 4, 5, 6, 7])
53 v_int2.extend(x
for x
in range(5))
54 assert v_int2 == m.VectorInt([0, 99, 2, 3, 4, 5, 6, 7, 0, 1, 2, 3, 4])
57 assert v_int2[-1] == 4
61 assert v_int2 == m.VectorInt([0, 99, 2, 3, 4, 5, 6, 7, 0, 1, 2, 3, 88, 4])
65 assert v_int2 == m.VectorInt([0, 99, 2, 3, 4, 5, 6, 7, 0, 1, 2, 3, 88])
68 @pytest.unsupported_on_pypy
70 b = bytearray([1, 2, 3, 4])
75 if sys.version_info.major > 2:
79 assert mv[2] ==
'\x05' 83 with pytest.raises(RuntimeError)
as excinfo:
84 m.create_undeclstruct()
85 assert "NumPy type info missing for " in str(excinfo.value)
88 @pytest.unsupported_on_pypy
89 @pytest.requires_numpy
91 a = np.array([1, 2, 3, 4], dtype=np.int32)
92 with pytest.raises(TypeError):
95 a = np.array([[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]], dtype=np.uintc)
96 v = m.VectorInt(a[0, :])
103 v = m.VectorInt(a[:, 1])
107 v = m.get_vectorstruct()
113 v = m.VectorStruct(np.zeros(3, dtype=np.dtype([(
'w',
'bool'), (
'x',
'I'),
114 (
'y',
'float64'), (
'z',
'bool')], align=
True)))
119 import pybind11_cross_module_tests
as cm
121 vv_c = cm.VectorBool()
123 vv_c.append(i % 2 == 0)
125 assert vv_c[i] == (i % 2 == 0)
126 assert str(vv_c) ==
"VectorBool[1, 0, 1, 0, 1, 0, 1, 0, 1, 0]" 133 assert str(v_a) ==
"VectorEl[El{1}, El{2}]" 135 vv_a = m.VectorVectorEl()
138 assert str(vv_b) ==
"VectorEl[El{1}, El{2}]" 142 mm = m.MapStringDouble()
146 assert list(mm) == [
'a',
'b']
147 assert list(mm.items()) == [(
'a', 1), (
'b', 2.5)]
148 assert str(mm) ==
"MapStringDouble{a: 1, b: 2.5}" 150 um = m.UnorderedMapStringDouble()
154 assert sorted(list(um)) == [
'ua',
'ub']
155 assert sorted(list(um.items())) == [(
'ua', 1.1), (
'ub', 2.6)]
156 assert "UnorderedMapStringDouble" in str(um)
160 mc = m.MapStringDoubleConst()
163 assert str(mc) ==
"MapStringDoubleConst{a: 10, b: 20.5}" 165 umc = m.UnorderedMapStringDoubleConst()
175 for i
in range(0, 5):
176 assert vnc[i].value == i + 1
178 for i, j
in enumerate(vnc, start=1):
183 for i
in range(0, 5):
184 assert dnc[i].value == i + 1
193 for i
in range(1, 6):
194 assert mnc[i].value == 10 * i
197 for k, v
in mnc.items():
198 assert v.value == 10 * k
205 for i
in range(1, 6):
206 assert mnc[i].value == 10 * i
209 for k, v
in mnc.items():
210 assert v.value == 10 * k
217 mm = m.MapStringDouble()
221 assert list(mm) == [
'a',
'b']
222 assert list(mm.items()) == [(
'a', 1), (
'b', 2.5)]
224 assert list(mm) == [
'b']
225 assert list(mm.items()) == [(
'b', 2.5)]
227 um = m.UnorderedMapStringDouble()
231 assert sorted(list(um)) == [
'ua',
'ub']
232 assert sorted(list(um.items())) == [(
'ua', 1.1), (
'ub', 2.6)]
234 assert sorted(list(um)) == [
'ub']
235 assert sorted(list(um.items())) == [(
'ub', 2.6)]
def test_map_string_double_const()
def test_vector_buffer_numpy()
def test_noncopyable_containers()
def test_map_string_double()