summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorAndrew Opalach <andrew@akon.city> 2024-10-04 12:47:43 -0400
committerAndrew Opalach <andrew@akon.city> 2024-10-04 12:47:43 -0400
commitbd79d0b57f76f290bffcd8749f60f7e5870d998a (patch)
tree4805c8a32b74f38730ee69291e5374dd9db4962c /tests
parent1169000ee0e763a6d09a298eba3eb4d560ff030d (diff)
downloadlibalabaster-bd79d0b57f76f290bffcd8749f60f7e5870d998a.tar.gz
libalabaster-bd79d0b57f76f290bffcd8749f60f7e5870d998a.tar.bz2
libalabaster-bd79d0b57f76f290bffcd8749f60f7e5870d998a.zip
array: Add is_empty(), foreach_rev() + tests
Signed-off-by: Andrew Opalach <andrew@akon.city>
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();
}