MCPcopy Create free account
hub / github.com/pybind/pybind11 / test_noncopyable_containers

Function test_noncopyable_containers

tests/test_stl_binders.py:211–291  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

209
210
211def test_noncopyable_containers():
212 # std::vector
213 vnc = m.get_vnc(5)
214 for i in range(5):
215 assert vnc[i].value == i + 1
216
217 for i, j in enumerate(vnc, start=1):
218 assert j.value == i
219
220 # std::deque
221 dnc = m.get_dnc(5)
222 for i in range(5):
223 assert dnc[i].value == i + 1
224
225 i = 1
226 for j in dnc:
227 assert j.value == i
228 i += 1
229
230 # std::map
231 mnc = m.get_mnc(5)
232 for i in range(1, 6):
233 assert mnc[i].value == 10 * i
234
235 vsum = 0
236 for k, v in mnc.items():
237 assert v.value == 10 * k
238 vsum += v.value
239
240 assert vsum == 150
241
242 # std::unordered_map
243 mnc = m.get_umnc(5)
244 for i in range(1, 6):
245 assert mnc[i].value == 10 * i
246
247 vsum = 0
248 for k, v in mnc.items():
249 assert v.value == 10 * k
250 vsum += v.value
251
252 assert vsum == 150
253
254 # nested std::map<std::vector>
255 nvnc = m.get_nvnc(5)
256 for i in range(1, 6):
257 for j in range(5):
258 assert nvnc[i][j].value == j + 1
259
260 # Note: maps do not have .values()
261 for v in nvnc.values():
262 for i, j in enumerate(v, start=1):
263 assert j.value == i
264
265 # nested std::map<std::map>
266 nmnc = m.get_nmnc(5)
267 for i in range(1, 6):
268 for j in range(10, 60, 10):

Callers

nothing calls this directly

Calls 2

valuesMethod · 0.80
itemsMethod · 0.45

Tested by

no test coverage detected