diff --git a/m-bptree.h b/m-bptree.h index c89c061f..741ede81 100644 --- a/m-bptree.h +++ b/m-bptree.h @@ -143,6 +143,7 @@ \ static inline bool M_C(name, _is_leaf)(node_t n) \ { \ + /* We consider the empty node as a leaf */ \ return n->num <= 0; \ } \ \ diff --git a/tests/test-mbptree.c b/tests/test-mbptree.c index 0341fd16..d24979d2 100644 --- a/tests/test-mbptree.c +++ b/tests/test-mbptree.c @@ -136,9 +136,23 @@ static void test1(void) btree_clear(b); } +static void test2(void) +{ + btree_t b; + btree_init(b); + for(int i = 0; i < 10; i++) + btree_set_at(b, i, 100*i); + for(int i = 0; i < 10; i++) + assert (*btree_cget(b, i) == 100*i); + btree_clean(b); + assert (btree_size(b) == 0); + assert (btree_empty_p(b)); + btree_clear(b); +} + int main(void) { test1(); - + test2(); exit(0); }