summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorAndrew Opalach <andrew@akon.city> 2024-10-19 11:30:46 -0400
committerAndrew Opalach <andrew@akon.city> 2024-10-19 11:30:46 -0400
commit736f15908cf34a851140094897a13ff12d55fd0c (patch)
tree190ff424e4dc7ef1db3cda803be14fe06cc8a302 /tests
parente23e7af2ae14073f7fec7c8992976f9ae9e489c8 (diff)
downloadlibalabaster-736f15908cf34a851140094897a13ff12d55fd0c.tar.gz
libalabaster-736f15908cf34a851140094897a13ff12d55fd0c.tar.bz2
libalabaster-736f15908cf34a851140094897a13ff12d55fd0c.zip
array: Add remove_range() + tests
Signed-off-by: Andrew Opalach <andrew@akon.city>
Diffstat (limited to 'tests')
-rw-r--r--tests/array.c34
1 files changed, 34 insertions, 0 deletions
diff --git a/tests/array.c b/tests/array.c
index 6ac3845..1e70074 100644
--- a/tests/array.c
+++ b/tests/array.c
@@ -163,6 +163,39 @@ static bool array_test_remove_at(void)
AL_TEST_END();
}
+static bool array_test_remove_range(void)
+{
+ AL_TEST_START("array_remove_range");
+
+ array(u32) arr;
+ al_array_init(arr);
+ al_array_reserve(arr, 12);
+
+ u32 array_before[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 };
+ u32 array_after[] = { 1, 3, 4, 7, 8, 11 };
+
+ for (u32 i = 0; i < sizeof(array_before) / sizeof(u32); i++) {
+ al_array_push(arr, array_before[i]);
+ }
+
+ al_array_remove_range(arr, 1, 2);
+ al_array_remove_range(arr, 3, 5);
+ AL_TEST_EQ(arr.size, 9, u32);
+ al_array_remove_range(arr, 5, 7);
+ AL_TEST_EQ(arr.size, 7, u32);
+ al_array_remove_range(arr, 6, 7);
+
+ AL_TEST_EQ(arr.size, (u32)(sizeof(array_after) / sizeof(u32)), u32);
+
+ for (u32 i = 0; i < sizeof(array_after) / sizeof(u32); i++) {
+ AL_TEST_EQ(al_array_at(arr, i), array_after[i], u32);
+ }
+
+ al_array_free(arr);
+
+ AL_TEST_END();
+}
+
static bool array_test_pop_at(void)
{
AL_TEST_START("array_pop_at");
@@ -355,6 +388,7 @@ bool array_tests_run(void)
AL_TEST_RUN(array_test_push);
AL_TEST_RUN(array_test_pop);
AL_TEST_RUN(array_test_remove_at);
+ AL_TEST_RUN(array_test_remove_range);
AL_TEST_RUN(array_test_pop_at);
AL_TEST_RUN(array_test_insert);
AL_TEST_RUN(array_test_foreach);