7 #define NUM_ELEMENTS 1e5
9 int cmp_int(const void *ia, const void *ib)
11 return *(const int *) ia - *(const int *) ib;
14 void clear_callback(int *ia, int *ib)
25 printf("------------\n");
26 printf("Testing Tree\n");
27 printf("------------\n");
31 printf("testing ini\n");
40 printf("testing add\n");
41 assert(tree_add(&tree, &a, &cmp_int, NULL));
42 assert(tree_add(&tree, &b, &cmp_int, NULL));
43 assert(tree_add(&tree, &c, &cmp_int, NULL));
44 assert(!tree_add(&tree, &d, &cmp_int, NULL));
46 printf("testing get\n");
47 assert(tree_get(&tree, &a, &cmp_int, NULL) == &a);
48 assert(tree_get(&tree, &b, &cmp_int, NULL) == &b);
49 assert(tree_get(&tree, &c, &cmp_int, NULL) == &c);
50 assert(tree_get(&tree, &d, &cmp_int, NULL) == &c);
51 assert(tree_get(&tree, &e, &cmp_int, NULL) == NULL);
53 printf("testing del\n");
54 assert(tree_del(&tree, &a, &cmp_int, NULL, NULL, NULL));
55 assert(tree_get(&tree, &a, &cmp_int, NULL) == NULL);
57 printf("testing clr\n");
58 tree_clr(&tree, NULL, NULL, NULL, 0);
59 assert(tree_get(&tree, &b, &cmp_int, NULL) == NULL);
61 printf("testing order and speed with %d elements\n", (int) NUM_ELEMENTS);
62 for (int i = 0; i < NUM_ELEMENTS; i++) {
63 int *n = malloc(sizeof *n);
66 if (!tree_add(&tree, n, &cmp_int, NULL))
71 tree_clr(&tree, (void *) &clear_callback, &last, NULL, TRAVERSION_INORDER);