File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -488,3 +488,27 @@ def test_tuple() -> None:
488488 assert b == t[1]
489489 with assertRaises(RuntimeError):
490490 ftuple(True)
491+
492+ def test_cap_empty() -> None:
493+ v = vec[i64](cap=3)
494+ assert len(v) == 0
495+ assert v == vec[i64]()
496+
497+ def test_cap_with_initializer() -> None:
498+ v = vec[i64]([1, 2], cap=3)
499+ assert len(v) == 2
500+ assert v[0] == 1
501+ assert v[1] == 2
502+
503+ def test_cap_variable(n: i64 = 3) -> None:
504+ v = vec[i64](cap=n)
505+ assert len(v) == 0
506+ v = append(v, 5)
507+ assert v[0] == 5
508+
509+ def test_cap_buffer_reuse() -> None:
510+ v = vec[i64]([1, 2], cap=3)
511+ old = v
512+ v = append(v, 3)
513+ v[0] = 99
514+ assert old[0] == 99 # shared buffer
Original file line number Diff line number Diff line change @@ -236,3 +236,30 @@ def test_nested_misc() -> None:
236236 v[0][0] = 3.5
237237 assert v[0] == vec[float]([3.5])
238238 assert v[:5] == vec[vec[float]]([vec[float]([3.5])])
239+
240+ def test_cap_misc() -> None:
241+ v_f = vec[float](cap=3)
242+ assert len(v_f) == 0
243+ v_f = append(v_f, 1.5)
244+ assert v_f[0] == 1.5
245+
246+ v_u8 = vec[u8]([1, 2], cap=5)
247+ assert len(v_u8) == 2
248+ assert v_u8[0] == 1
249+
250+ v_i16 = vec[i16](cap=2)
251+ v_i16 = append(v_i16, i16(10))
252+ assert v_i16[0] == 10
253+
254+ v_i32 = vec[i32]([i32(7)], cap=3)
255+ assert v_i32[0] == 7
256+
257+ v_bool = vec[bool](cap=4)
258+ assert len(v_bool) == 0
259+ v_bool = append(v_bool, True)
260+ assert v_bool[0] == True
261+
262+ v_nested = vec[vec[float]](cap=2)
263+ assert len(v_nested) == 0
264+ v_nested = append(v_nested, vec[float]([1.0]))
265+ assert v_nested[0] == vec[float]([1.0])
Original file line number Diff line number Diff line change @@ -518,3 +518,27 @@ def test_append_with_alias() -> None:
518518 assert len(alias) == 1
519519 assert v[0] == vec[i64]([1, 2, 3])
520520 assert len(v) == 4
521+
522+ def test_cap_empty() -> None:
523+ v = vec[vec[i64]](cap=3)
524+ assert len(v) == 0
525+ assert v == vec[vec[i64]]()
526+
527+ def test_cap_with_initializer() -> None:
528+ v = vec[vec[i64]]([vec[i64]([1]), vec[i64]([2])], cap=3)
529+ assert len(v) == 2
530+ assert v[0] == vec[i64]([1])
531+ assert v[1] == vec[i64]([2])
532+
533+ def test_cap_variable(n: i64 = 3) -> None:
534+ v = vec[vec[str]](cap=n)
535+ assert len(v) == 0
536+ v = append(v, vec[str](["x"]))
537+ assert v[0] == vec[str](["x"])
538+
539+ def test_cap_buffer_reuse() -> None:
540+ v = vec[vec[i64]]([vec[i64]([1]), vec[i64]([2])], cap=3)
541+ old = v
542+ v = append(v, vec[i64]([3]))
543+ v[0] = vec[i64]([99])
544+ assert old[0] == vec[i64]([99]) # shared buffer
Original file line number Diff line number Diff line change @@ -448,3 +448,27 @@ def test_append_with_alias() -> None:
448448 assert len(alias) == 1
449449 assert v[0] == 'a'
450450 assert len(v) == 4
451+
452+ def test_cap_empty() -> None:
453+ v = vec[str](cap=3)
454+ assert len(v) == 0
455+ assert v == vec[str]()
456+
457+ def test_cap_with_initializer() -> None:
458+ v = vec[str](['a', 'b'], cap=3)
459+ assert len(v) == 2
460+ assert v[0] == 'a'
461+ assert v[1] == 'b'
462+
463+ def test_cap_variable(n: i64 = 3) -> None:
464+ v = vec[str](cap=n)
465+ assert len(v) == 0
466+ v = append(v, 'x')
467+ assert v[0] == 'x'
468+
469+ def test_cap_buffer_reuse() -> None:
470+ v = vec[str](['a', 'b'], cap=3)
471+ old = v
472+ v = append(v, 'c')
473+ v[0] = 'z'
474+ assert old[0] == 'z' # shared buffer
You can’t perform that action at this time.
0 commit comments