diff options
author | David Robillard <d@drobilla.net> | 2011-09-05 15:56:02 +0000 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2011-09-05 15:56:02 +0000 |
commit | 9c129fa5ca61da479507d2598951f3fdacc1e143 (patch) | |
tree | c554b3df4a781bf4ea2fc39abea75862b0f6ad19 /test/tree_test.c | |
parent | a54b3fcd7b73411f9decc82ebf7ddb906e13052b (diff) | |
download | zix-9c129fa5ca61da479507d2598951f3fdacc1e143.tar.gz zix-9c129fa5ca61da479507d2598951f3fdacc1e143.tar.bz2 zix-9c129fa5ca61da479507d2598951f3fdacc1e143.zip |
Separate tree functions into a separate header. Add tree iterator functions.
git-svn-id: http://svn.drobilla.net/zix/trunk@2 df6676b4-ccc9-40e5-b5d6-7c4628a128e3
Diffstat (limited to 'test/tree_test.c')
-rw-r--r-- | test/tree_test.c | 29 |
1 files changed, 23 insertions, 6 deletions
diff --git a/test/tree_test.c b/test/tree_test.c index d4fb283..656e718 100644 --- a/test/tree_test.c +++ b/test/tree_test.c @@ -65,7 +65,7 @@ stress(int test_num, size_t n_elems) srand(seed); // Insert n_elems elements - for (size_t i = 0; i < n_elems; i++) { + for (size_t i = 0; i < n_elems; ++i) { r = ith_elem(test_num, n_elems, i); int status = zix_tree_insert(t, (void*)r, &ti); if (status == ZIX_STATUS_EXISTS) { @@ -75,8 +75,8 @@ stress(int test_num, size_t n_elems) return test_fail(); } if ((intptr_t)zix_tree_get_data(ti) != r) { - fprintf(stderr, "Data is corrupted! Saw %" PRIdPTR ", expected %zu\n", - (intptr_t)zix_tree_get_data(ti), i); + fprintf(stderr, "Data corrupt (saw %" PRIdPTR ", expected %zu)\n", + (intptr_t)zix_tree_get_data(ti), r); return test_fail(); } } @@ -84,15 +84,32 @@ stress(int test_num, size_t n_elems) srand(seed); // Search for all elements - for (size_t i = 0; i < n_elems; i++) { + for (size_t i = 0; i < n_elems; ++i) { r = ith_elem(test_num, n_elems, i); if (zix_tree_find(t, (void*)r, &ti)) { fprintf(stderr, "Find failed\n"); return test_fail(); } if ((intptr_t)zix_tree_get_data(ti) != r) { - fprintf(stderr, "Data corrupted (saw %" PRIdPTR ", expected %zu\n", - (intptr_t)zix_tree_get_data(ti), i); + fprintf(stderr, "Data corrupt (saw %" PRIdPTR ", expected %zu)\n", + (intptr_t)zix_tree_get_data(ti), r); + return test_fail(); + } + } + + srand(seed); + + // Iterate over all elements + size_t i = 0; + intptr_t last = -1; + for (ZixTreeIter iter = zix_tree_begin(t); + !zix_tree_iter_is_end(iter); + iter = zix_tree_iter_next(iter), ++i) { + r = ith_elem(test_num, n_elems, i); + const intptr_t iter_data = (intptr_t)zix_tree_get_data(iter); + if (iter_data < last) { + fprintf(stderr, "Iter corrupt (%" PRIdPTR " < %zu)\n", + iter_data, last); return test_fail(); } } |