More soa tests

This commit is contained in:
Damian Tarnawski
2025-08-24 15:09:08 +02:00
parent 66f4c93420
commit 8a894c6ce6
+27 -4
View File
@@ -179,6 +179,22 @@ test_map_get :: proc(t: ^testing.T) {
} }
} }
@(test)
test_soa_make_len :: proc(t: ^testing.T) {
array, err := make(#soa[dynamic][2]int, 2)
defer delete(array)
array[0] = [2]int{1, 2}
array[1] = [2]int{3, 4}
testing.expect_value(t, err, nil)
testing.expect_value(t, len(array), 2)
testing.expect_value(t, cap(array), 2)
testing.expect_value(t, array[0], [2]int{1, 2})
testing.expect_value(t, array[1], [2]int{3, 4})
}
@(test) @(test)
test_soa_array_allocator_resize :: proc(t: ^testing.T) { test_soa_array_allocator_resize :: proc(t: ^testing.T) {
@@ -186,11 +202,11 @@ test_soa_array_allocator_resize :: proc(t: ^testing.T) {
context.allocator = runtime.arena_allocator(&arena) context.allocator = runtime.arena_allocator(&arena)
defer runtime.arena_destroy(&arena) defer runtime.arena_destroy(&arena)
{
// |1 3 _ 2 4 _| // |1 3 _ 2 4 _|
// |1 3 _ _ 2 4 _ _| // |1 3 _ _ 2 4 _ _|
array, err := make(#soa[dynamic][2]int, 2, 3) array, err := make(#soa[dynamic][2]int, 2, 3)
defer delete(array)
array[0] = [2]int{1, 2} array[0] = [2]int{1, 2}
array[1] = [2]int{3, 4} array[1] = [2]int{3, 4}
@@ -208,13 +224,21 @@ test_soa_array_allocator_resize :: proc(t: ^testing.T) {
testing.expect_value(t, array[1], [2]int{3, 4}) testing.expect_value(t, array[1], [2]int{3, 4})
testing.expect_value(t, array[2], [2]int{0, 0}) testing.expect_value(t, array[2], [2]int{0, 0})
testing.expect_value(t, array[3], [2]int{0, 0}) testing.expect_value(t, array[3], [2]int{0, 0})
} }
@(test)
test_soa_array_allocator_resize_overlapping :: proc(t: ^testing.T) {
arena: runtime.Arena
context.allocator = runtime.arena_allocator(&arena)
defer runtime.arena_destroy(&arena)
{
// |1 4 2 5 3 6| // |1 4 2 5 3 6|
// |1 4 _ _ 2 5 _ _ 3 6 _ _| // |1 4 _ _ 2 5 _ _ 3 6 _ _|
array, err := make(#soa[dynamic][3]int, 2, 2) array, err := make(#soa[dynamic][3]int, 2, 2)
defer delete(array)
array[0] = [3]int{1, 2, 3} array[0] = [3]int{1, 2, 3}
array[1] = [3]int{4, 5, 6} array[1] = [3]int{4, 5, 6}
@@ -232,7 +256,6 @@ test_soa_array_allocator_resize :: proc(t: ^testing.T) {
testing.expect_value(t, array[1], [3]int{4, 5, 6}) testing.expect_value(t, array[1], [3]int{4, 5, 6})
testing.expect_value(t, array[2], [3]int{0, 0, 0}) testing.expect_value(t, array[2], [3]int{0, 0, 0})
testing.expect_value(t, array[3], [3]int{0, 0, 0}) testing.expect_value(t, array[3], [3]int{0, 0, 0})
}
} }
@(test) @(test)