aboutsummaryrefslogtreecommitdiff
path: root/core
diff options
context:
space:
mode:
authorMarc André Tanner <mat@brain-dump.org>2016-12-27 23:31:26 +0100
committerMarc André Tanner <mat@brain-dump.org>2016-12-27 23:31:26 +0100
commit18c7f3223bc3bb8085c4b35a04c4dafaa88a4dd8 (patch)
treeeecea0315a811d2c5843eb79f53344158bfc0b43 /core
parent7001dd552613f087dfa857602b9da240295e2cfb (diff)
downloadvis-18c7f3223bc3bb8085c4b35a04c4dafaa88a4dd8.tar.gz
vis-18c7f3223bc3bb8085c4b35a04c4dafaa88a4dd8.tar.xz
test/core: add some array_remove test cases
Diffstat (limited to 'core')
-rw-r--r--core/array.c28
1 files changed, 28 insertions, 0 deletions
diff --git a/core/array.c b/core/array.c
index db95541..64f6b81 100644
--- a/core/array.c
+++ b/core/array.c
@@ -49,6 +49,34 @@ static void test_small_objects(void) {
array_clear(&arr);
ok(array_length(&arr) == 0 && array_get(&arr, 0) == NULL && errno == EINVAL, "Clear");
+ for (size_t i = 0; i < len; i++) {
+ ok(array_add(&arr, &values[i]) && array_length(&arr) == i+1,
+ "Re-add integer: %zu = %d", i, values[i]);
+ }
+
+ int *v;
+
+ size_t len_before = array_length(&arr);
+ ok(array_remove(&arr, 2) && array_length(&arr) == len_before-1 &&
+ (v = array_get(&arr, 0)) && *v == values[0] &&
+ (v = array_get(&arr, 1)) && *v == values[1] &&
+ (v = array_get(&arr, 2)) && *v == values[3] &&
+ (v = array_get(&arr, 3)) && *v == values[4],
+ "Remove element 2");
+
+ len_before = array_length(&arr);
+ ok(array_remove(&arr, 0) && array_length(&arr) == len_before-1 &&
+ (v = array_get(&arr, 0)) && *v == values[1] &&
+ (v = array_get(&arr, 1)) && *v == values[3] &&
+ (v = array_get(&arr, 2)) && *v == values[4],
+ "Remove first element");
+
+ len_before = array_length(&arr);
+ ok(array_remove(&arr, len_before-1) && array_length(&arr) == len_before-1 &&
+ (v = array_get(&arr, 0)) && *v == values[1] &&
+ (v = array_get(&arr, 1)) && *v == values[3],
+ "Remove last element");
+
array_release(&arr);
}