summaryrefslogtreecommitdiff
path: root/test/pkarr.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'test/pkarr.cpp')
-rw-r--r--test/pkarr.cpp87
1 files changed, 87 insertions, 0 deletions
diff --git a/test/pkarr.cpp b/test/pkarr.cpp
index 4b03922..db42ad8 100644
--- a/test/pkarr.cpp
+++ b/test/pkarr.cpp
@@ -1,4 +1,5 @@
+#define PK_IMPL_ITER
#define PK_IMPL_MEM
#define PK_IMPL_ARR
@@ -155,6 +156,92 @@ int main(int argc, char *argv[])
fprintf(stdout, "[%s] Ending move assignment test\n\n", __FILE__);
test_teardown(&bkt);
+ test_spinup(&bkt);
+ fprintf(stdout, "[%s] Starting iter forward test\n", __FILE__);
+ {
+ bool res;
+ uint8_t u, u2;
+ pk_arr_t<uint8_t> arr(bkt);
+ for (u = 4; u > 0; --u) {
+ u2 = u - 1;
+ pk_arr_append_t(&arr, u2);
+ }
+
+ struct pk_iter_t<uint8_t> it;
+ res = pk_arr_iter_begin(&arr, &it);
+ if (res == false) exit(1);
+ if (it.id.arr.i != 0) exit(1);
+ if (it != 3) exit(1);
+ PK_LOGV_INF("iter.data: %p iter.val: %i\n", it.data, *(uint8_t*)it.data);
+
+ res = pk_arr_iter_increment(&arr, &it);
+ if (res == false) exit(1);
+ if (it.id.arr.i != 1) exit(1);
+ if (it != 2) exit(1);
+ PK_LOGV_INF("iter.data: %p iter.val: %i\n", it.data, *(uint8_t*)it.data);
+
+ res = pk_arr_iter_increment(&arr, &it);
+ if (res == false) exit(1);
+ if (it.id.arr.i != 2) exit(1);
+ if (it != 1) exit(1);
+ PK_LOGV_INF("iter.data: %p iter.val: %i\n", it.data, *(uint8_t*)it.data);
+
+ res = pk_arr_iter_increment(&arr, &it);
+ if (res == false) exit(1);
+ if (it.id.arr.i != 3) exit(1);
+ if (it != 0) exit(1);
+ PK_LOGV_INF("iter.data: %p iter.val: %i\n", it.data, *(uint8_t*)it.data);
+
+ res = pk_arr_iter_increment(&arr, &it);
+ if (res == true) exit(1);
+
+ }
+ fprintf(stdout, "[%s] Ending iter forward test\n\n", __FILE__);
+ test_teardown(&bkt);
+
+ test_spinup(&bkt);
+ fprintf(stdout, "[%s] Starting iter reverse test\n", __FILE__);
+ {
+ bool res;
+ uint8_t u, u2;
+ pk_arr_t<uint8_t> arr(bkt);
+ for (u = 4; u > 0; --u) {
+ u2 = u - 1;
+ pk_arr_append_t(&arr, u2);
+ }
+
+ struct pk_iter_t<uint8_t> it;
+ res = pk_arr_iter_end(&arr, &it);
+ if (res == false) exit(1);
+ if (it.id.arr.i != 3) exit(1);
+ if (it != 0) exit(1);
+ PK_LOGV_INF("iter.data: %p iter.val: %i\n", it.data, *(uint8_t*)it.data);
+
+ res = pk_arr_iter_decrement(&arr, &it);
+ if (res == false) exit(1);
+ if (it.id.arr.i != 2) exit(1);
+ if (it != 1) exit(1);
+ PK_LOGV_INF("iter.data: %p iter.val: %i\n", it.data, *(uint8_t*)it.data);
+
+ res = pk_arr_iter_decrement(&arr, &it);
+ if (res == false) exit(1);
+ if (it.id.arr.i != 1) exit(1);
+ if (it != 2) exit(1);
+ PK_LOGV_INF("iter.data: %p iter.val: %i\n", it.data, *(uint8_t*)it.data);
+
+ res = pk_arr_iter_decrement(&arr, &it);
+ if (res == false) exit(1);
+ if (it.id.arr.i != 0) exit(1);
+ if (it != 3) exit(1);
+ PK_LOGV_INF("iter.data: %p iter.val: %i\n", it.data, *(uint8_t*)it.data);
+
+ res = pk_arr_iter_decrement(&arr, &it);
+ if (res == true) exit(1);
+
+ }
+ fprintf(stdout, "[%s] Ending iter reverse test\n\n", __FILE__);
+ test_teardown(&bkt);
+
fprintf(stdout, "[%s] End\n", __FILE__);
return 0;