diff options
| author | Damian Tarnawski <gthetarnav@gmail.com> | 2025-08-24 15:09:08 +0200 |
|---|---|---|
| committer | Damian Tarnawski <gthetarnav@gmail.com> | 2025-08-24 15:09:08 +0200 |
| commit | 8a894c6ce6cbedc187563a07a2bb689d9f8cdf56 (patch) | |
| tree | 5cd73890ab88f2aa4e127882bedc1728130a325d /tests | |
| parent | 66f4c9342098e5d5c0cf10b5aea7b57c5e0dd1d3 (diff) | |
More soa tests
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/core/runtime/test_core_runtime.odin | 95 |
1 files changed, 59 insertions, 36 deletions
diff --git a/tests/core/runtime/test_core_runtime.odin b/tests/core/runtime/test_core_runtime.odin index 1bc100348..3ed252026 100644 --- a/tests/core/runtime/test_core_runtime.odin +++ b/tests/core/runtime/test_core_runtime.odin @@ -180,59 +180,82 @@ 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_soa_array_allocator_resize :: proc(t: ^testing.T) { arena: runtime.Arena context.allocator = runtime.arena_allocator(&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[0] = [2]int{1, 2} - array[1] = [2]int{3, 4} + array, err := make(#soa[dynamic][2]int, 2, 3) + 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), 3) + testing.expect_value(t, err, nil) + testing.expect_value(t, len(array), 2) + testing.expect_value(t, cap(array), 3) - err = resize(&array, 4) + err = resize(&array, 4) - testing.expect_value(t, err, nil) - testing.expect_value(t, len(array), 4) - testing.expect_value(t, cap(array), 4) + testing.expect_value(t, err, nil) + testing.expect_value(t, len(array), 4) + testing.expect_value(t, cap(array), 4) - testing.expect_value(t, array[0], [2]int{1, 2}) - 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[3], [2]int{0, 0}) - } + testing.expect_value(t, array[0], [2]int{1, 2}) + 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[3], [2]int{0, 0}) +} - { - // |1 4 2 5 3 6| - // |1 4 _ _ 2 5 _ _ 3 6 _ _| - array, err := make(#soa[dynamic][3]int, 2, 2) - array[0] = [3]int{1, 2, 3} - array[1] = [3]int{4, 5, 6} +@(test) +test_soa_array_allocator_resize_overlapping :: proc(t: ^testing.T) { - testing.expect_value(t, err, nil) - testing.expect_value(t, len(array), 2) - testing.expect_value(t, cap(array), 2) + arena: runtime.Arena + context.allocator = runtime.arena_allocator(&arena) + defer runtime.arena_destroy(&arena) - err = resize(&array, 4) + // |1 4 2 5 3 6| + // |1 4 _ _ 2 5 _ _ 3 6 _ _| - testing.expect_value(t, err, nil) - testing.expect_value(t, len(array), 4) - testing.expect_value(t, cap(array), 4) + array, err := make(#soa[dynamic][3]int, 2, 2) + defer delete(array) + array[0] = [3]int{1, 2, 3} + array[1] = [3]int{4, 5, 6} - testing.expect_value(t, array[0], [3]int{1, 2, 3}) - 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[3], [3]int{0, 0, 0}) - } + testing.expect_value(t, err, nil) + testing.expect_value(t, len(array), 2) + testing.expect_value(t, cap(array), 2) + + err = resize(&array, 4) + + testing.expect_value(t, err, nil) + testing.expect_value(t, len(array), 4) + testing.expect_value(t, cap(array), 4) + + testing.expect_value(t, array[0], [3]int{1, 2, 3}) + 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[3], [3]int{0, 0, 0}) } @(test) |