master
 1#include "btree.h"
 2#include "rb_tree.h"
 3#include <cgreen/cgreen.h>
 4#include <math.h>
 5#include <string.h>
 6
 7Ensure(initialize_returns_new_btree) {
 8  BTree *tree = btree_initialize(10);
 9
10  assert_that(tree, is_not_equal_to(NULL));
11  assert_that(tree->data, is_equal_to(10));
12}
13
14Ensure(height_returns_height_of_tree) {
15  BTree *tree = NULL;
16
17  int n = 10;
18  for (int i = 0; i < n; ++i)
19    tree = btree_insert(tree, i);
20
21  assert_that(btree_height(tree), is_equal_to(n));
22}
23
24Ensure(tree_with_k_leaves_has_height_of_log_k) {
25  for (int k = 0; k < 500; ++k)
26    assert_that(btree_height(btree_generate(k)) >= log2(k), is_equal_to(true));
27}
28
29TestSuite *btree_tests() {
30  TestSuite *x = create_test_suite();
31
32  add_test(x, initialize_returns_new_btree);
33  add_test(x, height_returns_height_of_tree);
34  add_test(x, tree_with_k_leaves_has_height_of_log_k);
35
36  return x;
37}