blob: a58b369df89f64490f181af27fe581e08c27d447 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
package test_core_container
import "core:container/xar"
import "core:testing"
Value :: struct {
v: int,
p: ^int,
}
@test
test_xar_pointer_stability :: proc(t: ^testing.T) {
x: xar.Array(int, 4)
defer xar.destroy(&x)
values: [dynamic]Value
defer delete(values)
N :: 512
for i in 1..=N {
v := i * 10 + 1
xar.push_back(&x, v)
ptr := xar.get_ptr(&x, i - 1)
append(&values, Value{v = v, p = ptr})
}
assert(xar.len(x) == N)
assert(xar.cap(x) >= N)
for value, i in values {
ptr := xar.get_ptr(&x, i)
assert(ptr == value.p)
assert(ptr^ == value.v)
}
xar.clear(&x)
assert(xar.len(x) == 0)
assert(xar.cap(x) >= N)
}
|