aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorDamian Tarnawski <gthetarnav@gmail.com>2025-08-24 15:09:08 +0200
committerDamian Tarnawski <gthetarnav@gmail.com>2025-08-24 15:09:08 +0200
commit8a894c6ce6cbedc187563a07a2bb689d9f8cdf56 (patch)
tree5cd73890ab88f2aa4e127882bedc1728130a325d /tests
parent66f4c9342098e5d5c0cf10b5aea7b57c5e0dd1d3 (diff)
More soa tests
Diffstat (limited to 'tests')
-rw-r--r--tests/core/runtime/test_core_runtime.odin95
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)