diff options
author | Richard Braun <rbraun@sceen.net> | 2013-06-07 21:22:47 +0200 |
---|---|---|
committer | Richard Braun <rbraun@sceen.net> | 2013-06-07 21:22:47 +0200 |
commit | bac3a1a00c68e573c28f56dc640bc16e4e9038d2 (patch) | |
tree | 862b1d84973eaaaf6c1be1520b6585a2332fae30 /test/test_rdxtree.c | |
parent | ccb0cb9f1cd421e3115fbd6f21ee471b60a3b222 (diff) |
test_rdxtree: more removal tests
Diffstat (limited to 'test/test_rdxtree.c')
-rw-r--r-- | test/test_rdxtree.c | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/test/test_rdxtree.c b/test/test_rdxtree.c index c7de812..0fc7857 100644 --- a/test/test_rdxtree.c +++ b/test/test_rdxtree.c @@ -720,6 +720,72 @@ test_25(void) destroy_tree(&tree); } +static void +test_26(void) +{ + struct rdxtree tree; + struct obj *obj; + unsigned long i; + int error; + + TITLE("insert [0..62], remove 63"); + + rdxtree_init(&tree); + + for (i = 0; i < 62; i++) { + obj = obj_create(i); + error = rdxtree_insert(&tree, obj->id, obj); + assert(!error); + } + + obj = rdxtree_remove(&tree, 63); + assert(obj == NULL); + + destroy_tree(&tree); +} + +static void +test_27(void) +{ + struct rdxtree tree; + struct obj *obj; + unsigned long i; + int error; + + TITLE("insert [0..63], remove 64"); + + rdxtree_init(&tree); + + for (i = 0; i < 64; i++) { + obj = obj_create(i); + error = rdxtree_insert(&tree, obj->id, obj); + assert(!error); + } + + obj = rdxtree_remove(&tree, 64); + assert(obj == NULL); + + destroy_tree(&tree); +} + +static void +test_28(void) +{ + struct rdxtree tree; + struct obj *obj; + int error; + + TITLE("insert 60000, remove 1"); + + rdxtree_init(&tree); + obj = obj_create(60000); + error = rdxtree_insert(&tree, obj->id, obj); + assert(!error); + obj = rdxtree_remove(&tree, 1); + assert(obj == NULL); + destroy_tree(&tree); +} + int main(int argc, char *argv[]) { @@ -751,5 +817,8 @@ main(int argc, char *argv[]) test_23(); test_24(); test_25(); + test_26(); + test_27(); + test_28(); return 0; } |