diff options
Diffstat (limited to 'test/pkarr.cpp')
| -rw-r--r-- | test/pkarr.cpp | 87 |
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; |
