5from pybind11_tests
import stl_binders
as m
9 v_int = m.VectorInt([0, 0])
10 assert len(v_int) == 2
11 assert bool(v_int)
is True
14 v_int1 = m.VectorInt(x
for x
in range(5))
15 assert v_int1 == m.VectorInt([0, 1, 2, 3, 4])
17 v_int2 = m.VectorInt([0, 0])
18 assert v_int == v_int2
20 assert v_int != v_int2
27 assert str(v_int2) ==
"VectorInt[3, 2, 1, 0, 1, 2, 3]"
28 with pytest.raises(IndexError):
33 assert v_int2 == m.VectorInt([3, 2, 0, 0, 99, 2, 3])
35 assert v_int2 == m.VectorInt([3, 0, 99, 2, 3])
37 assert v_int2 == m.VectorInt([0, 99, 2, 3])
39 v_int2.extend(m.VectorInt([4, 5]))
40 assert v_int2 == m.VectorInt([0, 99, 2, 3, 4, 5])
43 assert v_int2 == m.VectorInt([0, 99, 2, 3, 4, 5, 6, 7])
46 with pytest.raises(RuntimeError):
47 v_int2.extend([8,
"a"])
49 assert v_int2 == m.VectorInt([0, 99, 2, 3, 4, 5, 6, 7])
52 v_int2.extend(x
for x
in range(5))
53 assert v_int2 == m.VectorInt([0, 99, 2, 3, 4, 5, 6, 7, 0, 1, 2, 3, 4])
56 assert v_int2[-1] == 4
60 assert v_int2 == m.VectorInt([0, 99, 2, 3, 4, 5, 6, 7, 0, 1, 2, 3, 88, 4])
64 assert v_int2 == m.VectorInt([0, 99, 2, 3, 4, 5, 6, 7, 0, 1, 2, 3, 88])
67 assert len(v_int2) == 0
81 assert mv[2] ==
"\x05"
87 v = m.VectorUChar(mv[::2])
90 with pytest.raises(RuntimeError)
as excinfo:
91 m.create_undeclstruct()
92 assert "NumPy type info missing for " in str(excinfo.value)
96 np = pytest.importorskip(
"numpy")
97 a = np.array([1, 2, 3, 4], dtype=np.int32)
98 with pytest.raises(TypeError):
101 a = np.array([[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]], dtype=np.uintc)
102 v = m.VectorInt(a[0, :])
109 v = m.VectorInt(a[:, 1])
113 v = m.get_vectorstruct()
123 [(
"w",
"bool"), (
"x",
"I"), (
"y",
"float64"), (
"z",
"bool")], align=
True
129 b = np.array([1, 2, 3, 4], dtype=np.uint8)
130 v = m.VectorUChar(b[::2])
135 import pybind11_cross_module_tests
as cm
137 vv_c = cm.VectorBool()
139 vv_c.append(i % 2 == 0)
141 assert vv_c[i] == (i % 2 == 0)
142 assert str(vv_c) ==
"VectorBool[1, 0, 1, 0, 1, 0, 1, 0, 1, 0]"
149 assert str(v_a) ==
"VectorEl[El{1}, El{2}]"
151 vv_a = m.VectorVectorEl()
154 assert str(vv_b) ==
"VectorEl[El{1}, El{2}]"
158 mm = m.MapStringDouble()
162 assert list(mm) == [
"a",
"b"]
163 assert str(mm) ==
"MapStringDouble{a: 1, b: 2.5}"
172 assert list(keys) == [
"a",
"b"]
173 assert len(keys) == 2
175 assert "c" not in keys
176 assert 123
not in keys
177 assert list(items) == [(
"a", 1), (
"b", 2.5)]
178 assert len(items) == 2
179 assert (
"b", 2.5)
in items
180 assert "hello" not in items
181 assert (
"b", 2.5,
None)
not in items
182 assert list(values) == [1, 2.5]
183 assert len(values) == 2
185 assert 2
not in values
188 assert list(keys) == [
"a",
"b",
"c"]
189 assert list(values) == [1, 2.5, -1]
190 assert list(items) == [(
"a", 1), (
"b", 2.5), (
"c", -1)]
192 um = m.UnorderedMapStringDouble()
196 assert sorted(
list(um)) == [
"ua",
"ub"]
198 assert sorted(
list(um.items())) == [(
"ua", 1.1), (
"ub", 2.6)]
199 assert list(zip(um.keys(), um.values())) ==
list(um.items())
200 assert "UnorderedMapStringDouble" in str(um)
204 mc = m.MapStringDoubleConst()
207 assert str(mc) ==
"MapStringDoubleConst{a: 10, b: 20.5}"
209 umc = m.UnorderedMapStringDoubleConst()
219 for i
in range(0, 5):
220 assert vnc[i].value == i + 1
222 for i, j
in enumerate(vnc, start=1):
227 for i
in range(0, 5):
228 assert dnc[i].value == i + 1
237 for i
in range(1, 6):
238 assert mnc[i].value == 10 * i
241 for k, v
in mnc.items():
242 assert v.value == 10 * k
249 for i
in range(1, 6):
250 assert mnc[i].value == 10 * i
253 for k, v
in mnc.items():
254 assert v.value == 10 * k
261 for i
in range(1, 6):
262 for j
in range(0, 5):
263 assert nvnc[i][j].value == j + 1
266 for _, v
in nvnc.items():
267 for i, j
in enumerate(v, start=1):
272 for i
in range(1, 6):
273 for j
in range(10, 60, 10):
274 assert nmnc[i][j].value == 10 * j
277 for _, v_o
in nmnc.items():
278 for k_i, v_i
in v_o.items():
279 assert v_i.value == 10 * k_i
285 numnc = m.get_numnc(5)
286 for i
in range(1, 6):
287 for j
in range(10, 60, 10):
288 assert numnc[i][j].value == 10 * j
291 for _, v_o
in numnc.items():
292 for k_i, v_i
in v_o.items():
293 assert v_i.value == 10 * k_i
300 mm = m.MapStringDouble()
304 assert list(mm) == [
"a",
"b"]
305 assert list(mm.items()) == [(
"a", 1), (
"b", 2.5)]
307 assert list(mm) == [
"b"]
308 assert list(mm.items()) == [(
"b", 2.5)]
310 um = m.UnorderedMapStringDouble()
314 assert sorted(
list(um)) == [
"ua",
"ub"]
315 assert sorted(
list(um.items())) == [(
"ua", 1.1), (
"ub", 2.6)]
317 assert sorted(
list(um)) == [
"ub"]
318 assert sorted(
list(um.items())) == [(
"ub", 2.6)]
size_t len(handle h)
Get the length of a Python object.
def test_map_string_double()
def test_map_string_double_const()
def test_noncopyable_containers()
def test_vector_buffer_numpy()