6 from pybind11_tests
import stl_binders
as m
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 assert len(v_int2) == 0
73 b = bytearray([1, 2, 3, 4])
82 assert mv[2] ==
"\x05"
88 v = m.VectorUChar(mv[::2])
91 with pytest.raises(RuntimeError)
as excinfo:
92 m.create_undeclstruct()
93 assert "NumPy type info missing for " in str(excinfo.value)
97 np = pytest.importorskip(
"numpy")
98 a = np.array([1, 2, 3, 4], dtype=np.int32)
99 with pytest.raises(TypeError):
102 a = np.array([[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]], dtype=np.uintc)
103 v = m.VectorInt(a[0, :])
110 v = m.VectorInt(a[:, 1])
114 v = m.get_vectorstruct()
124 [(
"w",
"bool"), (
"x",
"I"), (
"y",
"float64"), (
"z",
"bool")], align=
True
130 b = np.array([1, 2, 3, 4], dtype=np.uint8)
131 v = m.VectorUChar(b[::2])
136 import pybind11_cross_module_tests
as cm
138 vv_c = cm.VectorBool()
140 vv_c.append(i % 2 == 0)
142 assert vv_c[i] == (i % 2 == 0)
143 assert str(vv_c) ==
"VectorBool[1, 0, 1, 0, 1, 0, 1, 0, 1, 0]"
150 assert str(v_a) ==
"VectorEl[El{1}, El{2}]"
152 vv_a = m.VectorVectorEl()
155 assert str(vv_b) ==
"VectorEl[El{1}, El{2}]"
159 mm = m.MapStringDouble()
163 assert list(mm) == [
"a",
"b"]
164 assert list(mm.items()) == [(
"a", 1), (
"b", 2.5)]
165 assert str(mm) ==
"MapStringDouble{a: 1, b: 2.5}"
167 um = m.UnorderedMapStringDouble()
171 assert sorted(
list(um)) == [
"ua",
"ub"]
172 assert sorted(
list(um.items())) == [(
"ua", 1.1), (
"ub", 2.6)]
173 assert "UnorderedMapStringDouble" in str(um)
177 mc = m.MapStringDoubleConst()
180 assert str(mc) ==
"MapStringDoubleConst{a: 10, b: 20.5}"
182 umc = m.UnorderedMapStringDoubleConst()
192 for i
in range(0, 5):
193 assert vnc[i].value == i + 1
195 for i, j
in enumerate(vnc, start=1):
200 for i
in range(0, 5):
201 assert dnc[i].value == i + 1
210 for i
in range(1, 6):
211 assert mnc[i].value == 10 * i
214 for k, v
in mnc.items():
215 assert v.value == 10 * k
222 for i
in range(1, 6):
223 assert mnc[i].value == 10 * i
226 for k, v
in mnc.items():
227 assert v.value == 10 * k
234 for i
in range(1, 6):
235 for j
in range(0, 5):
236 assert nvnc[i][j].value == j + 1
239 for _, v
in nvnc.items():
240 for i, j
in enumerate(v, start=1):
245 for i
in range(1, 6):
246 for j
in range(10, 60, 10):
247 assert nmnc[i][j].value == 10 * j
250 for _, v_o
in nmnc.items():
251 for k_i, v_i
in v_o.items():
252 assert v_i.value == 10 * k_i
258 numnc = m.get_numnc(5)
259 for i
in range(1, 6):
260 for j
in range(10, 60, 10):
261 assert numnc[i][j].value == 10 * j
264 for _, v_o
in numnc.items():
265 for k_i, v_i
in v_o.items():
266 assert v_i.value == 10 * k_i
273 mm = m.MapStringDouble()
277 assert list(mm) == [
"a",
"b"]
278 assert list(mm.items()) == [(
"a", 1), (
"b", 2.5)]
280 assert list(mm) == [
"b"]
281 assert list(mm.items()) == [(
"b", 2.5)]
283 um = m.UnorderedMapStringDouble()
287 assert sorted(
list(um)) == [
"ua",
"ub"]
288 assert sorted(
list(um.items())) == [(
"ua", 1.1), (
"ub", 2.6)]
290 assert sorted(
list(um)) == [
"ub"]
291 assert sorted(
list(um.items())) == [(
"ub", 2.6)]