summaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2011-09-05 15:56:02 +0000
committerDavid Robillard <d@drobilla.net>2011-09-05 15:56:02 +0000
commit9c129fa5ca61da479507d2598951f3fdacc1e143 (patch)
treec554b3df4a781bf4ea2fc39abea75862b0f6ad19 /test
parenta54b3fcd7b73411f9decc82ebf7ddb906e13052b (diff)
downloadzix-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')
-rw-r--r--test/tree_test.c29
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();
}
}