summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/array.c78
1 files changed, 78 insertions, 0 deletions
diff --git a/tests/array.c b/tests/array.c
index 722aab6..79664cc 100644
--- a/tests/array.c
+++ b/tests/array.c
@@ -238,6 +238,83 @@ static bool array_test_insert(void)
AL_TEST_END();
}
+static bool array_test_foreach(void)
+{
+ AL_TEST_START("array_foreach");
+
+ array(u32) arr;
+ al_array_init(arr);
+
+ al_array_push(arr, 0);
+ al_array_push(arr, 1);
+ al_array_push(arr, 2);
+ al_array_push(arr, 3);
+ al_array_push(arr, 4);
+ al_array_push(arr, 5);
+
+ u32 iter0;
+ al_array_foreach(arr, i, iter0) {
+ AL_TEST_EQ(iter0, i, u32);
+ }
+
+ u32 iter1;
+ al_array_foreach_rev(arr, i, iter1) {
+ AL_TEST_EQ(iter1, i, u32);
+ }
+
+ u32 *ptr0;
+ al_array_foreach_ptr(arr, i, ptr0) {
+ AL_TEST_EQ(*ptr0, i, u32);
+ }
+
+ u32 iter2;
+ al_array_foreach_rev(arr, i, iter2) {
+ AL_TEST_EQ(iter2, i, u32);
+ al_array_remove_at(arr, i);
+ }
+
+ AL_TEST_EQ(arr.size, 0, u32);
+
+ al_array_push(arr, 0);
+ al_array_push(arr, 1);
+ al_array_push(arr, 2);
+ al_array_push(arr, 3);
+ al_array_push(arr, 4);
+ al_array_push(arr, 5);
+ al_array_push(arr, 6);
+ al_array_push(arr, 7);
+ al_array_push(arr, 8);
+ al_array_push(arr, 9);
+
+ u32 iter3, count0 = 0;
+ al_array_foreach(arr, i, iter3) {
+ AL_TEST_EQ(iter3, count0, u32);
+ count0++;
+ al_array_remove_at_iter(arr, i);
+ }
+
+ al_array_push(arr, 0);
+ al_array_push(arr, 1);
+ al_array_push(arr, 2);
+ al_array_push(arr, 3);
+ al_array_push(arr, 4);
+ al_array_push(arr, 5);
+ al_array_push(arr, 6);
+ al_array_push(arr, 7);
+ al_array_push(arr, 8);
+ al_array_push(arr, 9);
+
+ u32 iter4;
+ al_array_foreach(arr, i, iter4) {
+ AL_TEST_EQ(iter4, i + i, u32);
+ al_array_remove_at(arr, i);
+ }
+
+ al_array_free(arr);
+
+ AL_TEST_END();
+}
+
bool array_tests_run(void)
{
AL_TEST_START_GROUP("array");
@@ -251,6 +328,7 @@ bool array_tests_run(void)
AL_TEST_RUN(array_test_remove_at);
AL_TEST_RUN(array_test_pop_at);
AL_TEST_RUN(array_test_insert);
+ AL_TEST_RUN(array_test_foreach);
AL_TEST_END_GROUP();
}