From 44801b8b911293d738c8e5a478b9bb9462171823 Mon Sep 17 00:00:00 2001 From: Patrick Pelissier Date: Sun, 10 Oct 2021 20:35:44 +0200 Subject: [PATCH] Add more tests for _remove (that triggered an issue in _previous) --- tests/test-mrbtree.c | 48 +++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 47 insertions(+), 1 deletion(-) diff --git a/tests/test-mrbtree.c b/tests/test-mrbtree.c index df2c2a0f..f6c53e18 100644 --- a/tests/test-mrbtree.c +++ b/tests/test-mrbtree.c @@ -161,10 +161,56 @@ static void test_uint(void) rbtree_uint_init(tree3); rbtree_uint_push(tree3, 5); - assert(rbtree_uint_size(tree3) == 1); + rbtree_uint_push(tree3, 3); + rbtree_uint_push(tree3, 7); + rbtree_uint_push(tree3, 2); + assert(rbtree_uint_size(tree3) == 4); rbtree_uint_it(it, tree3); rbtree_uint_remove(tree3, it); + assert(rbtree_uint_size(tree3) == 3); + assert(*rbtree_uint_cref(it) == 3); + rbtree_uint_remove(tree3, it); + assert(rbtree_uint_size(tree3) == 2); + assert(*rbtree_uint_cref(it) == 5); + rbtree_uint_remove(tree3, it); + assert(rbtree_uint_size(tree3) == 1); + assert(*rbtree_uint_cref(it) == 7); + rbtree_uint_remove(tree3, it); assert(rbtree_uint_size(tree3) == 0); + + rbtree_uint_push(tree3, 1); + rbtree_uint_push(tree3, 0); + rbtree_uint_push(tree3, 5); + rbtree_uint_push(tree3, 3); + rbtree_uint_push(tree3, 7); + rbtree_uint_push(tree3, 2); + rbtree_uint_push(tree3, 8); + rbtree_uint_push(tree3, 9); + rbtree_uint_push(tree3, 10); + rbtree_uint_it(it, tree3); + assert(*rbtree_uint_cref(it) == 0); + rbtree_uint_next(it); + assert(*rbtree_uint_cref(it) == 1); + rbtree_uint_next(it); + assert(*rbtree_uint_cref(it) == 2); + rbtree_uint_next(it); + assert(*rbtree_uint_cref(it) == 3); + rbtree_uint_previous(it); + assert(*rbtree_uint_cref(it) == 2); + rbtree_uint_next(it); + assert(*rbtree_uint_cref(it) == 3); + rbtree_uint_remove(tree3, it); + assert(*rbtree_uint_cref(it) == 5); + rbtree_uint_previous(it); + assert(*rbtree_uint_cref(it) == 2); + rbtree_uint_remove(tree3, it); + assert(*rbtree_uint_cref(it) == 5); + rbtree_uint_remove(tree3, it); + assert(*rbtree_uint_cref(it) == 7); + rbtree_uint_next(it); + rbtree_uint_remove(tree3, it); + assert(*rbtree_uint_cref(it) == 9); + rbtree_uint_clear(tree3); rbtree_uint_init_move(tree, tree2);