X-Git-Url: https://git.auder.net/?a=blobdiff_plain;f=test%2Ft.Tree.c;h=ed48951e2c733eab609188e84183dc7a913d6b3c;hb=HEAD;hp=481508a15840464ff61ae05395abbeb2a917fa51;hpb=a78687686f5b490d99fae21f9fa8aaa9a34f1812;p=cgds.git diff --git a/test/t.Tree.c b/test/t.Tree.c index 481508a..ed48951 100644 --- a/test/t.Tree.c +++ b/test/t.Tree.c @@ -1,140 +1,141 @@ #include #include "cgds/Tree.h" -#include "test/helpers.h" -#include "test/lut.h" +#include "helpers.h" +#include "lut.h" -void t_tree_clear() //FTEST +void t_tree_clear() { - Tree* t = tree_new(int); - - tree_set_root(t, 0); - tree_add_child(t, t->root, 1); - tree_add_child(t, t->root, 2); - tree_add_child(t, t->root, 3); - tree_add_child(t, t->root->firstChild, 1); - tree_add_child(t, t->root->firstChild, 2); - tree_add_child(t, t->root->firstChild->next, 1); - tree_add_child(t, t->root->firstChild->next, 2); - tree_add_child(t, t->root->firstChild->next, 3); - tree_add_child(t, t->root->firstChild->next, 4); - - tree_clear(t); - lu_assert(tree_empty(t)); - - tree_destroy(t); + Tree* t = tree_new(int); + + tree_set_root(t, 0); + tree_add_child(t, t->root, 1); + tree_add_child(t, t->root, 2); + tree_add_child(t, t->root, 3); + tree_add_child(t, t->root->firstChild, 1); + tree_add_child(t, t->root->firstChild, 2); + tree_add_child(t, t->root->firstChild->next, 1); + tree_add_child(t, t->root->firstChild->next, 2); + tree_add_child(t, t->root->firstChild->next, 3); + tree_add_child(t, t->root->firstChild->next, 4); + + tree_clear(t); + lu_assert(tree_empty(t)); + + tree_destroy(t); } -void t_tree_size() //FTEST +void t_tree_size() { - Tree* t = tree_new(int); + Tree* t = tree_new(int); - tree_set_root(t, 0); - tree_add_child(t, t->root, 1); - tree_add_child(t, t->root, 2); - tree_add_child(t, t->root, 3); - lu_assert_int_eq(tree_size(t), 4); + tree_set_root(t, 0); + tree_add_child(t, t->root, 1); + tree_add_child(t, t->root, 2); + tree_add_child(t, t->root, 3); + lu_assert_int_eq(tree_size(t), 4); - tree_add_child(t, t->root->firstChild, 1); - tree_add_child(t, t->root->firstChild, 2); - lu_assert_int_eq(tree_size(t), 6); + tree_add_child(t, t->root->firstChild, 1); + tree_add_child(t, t->root->firstChild, 2); + lu_assert_int_eq(tree_size(t), 6); - tree_add_child(t, t->root->firstChild->next, 1); - tree_add_child(t, t->root->firstChild->next, 2); - tree_add_child(t, t->root->firstChild->next, 3); - tree_add_child(t, t->root->firstChild->next, 4); - lu_assert_int_eq(tree_size(t), 10); + tree_add_child(t, t->root->firstChild->next, 1); + tree_add_child(t, t->root->firstChild->next, 2); + tree_add_child(t, t->root->firstChild->next, 3); + tree_add_child(t, t->root->firstChild->next, 4); + lu_assert_int_eq(tree_size(t), 10); - tree_destroy(t); + tree_destroy(t); } -void t_tree_add_remove() //FTEST +void t_tree_add_remove() { - Tree* t = tree_new(int); - - tree_set_root(t, 0); - tree_add_child(t, t->root, 1); - tree_add_child(t, t->root, 2); - tree_add_child(t, t->root, 3); - tree_add_child(t, t->root->firstChild, 1); - tree_add_child(t, t->root->firstChild, 2); - tree_add_child(t, t->root->firstChild->next, 1); - tree_add_child(t, t->root->firstChild->next, 2); - tree_add_child(t, t->root->firstChild->next, 3); - tree_add_child(t, t->root->firstChild->next, 4); - tree_add_child(t, t->root->lastChild, 1); - tree_add_child(t, t->root->lastChild, 2); - tree_add_child(t, t->root->lastChild, 3); - lu_assert_int_eq(tree_size(t), 13); - - tree_remove(t, t->root->lastChild); - lu_assert_int_eq(tree_size(t), 9); - tree_rm_childs(t, t->root->firstChild); - lu_assert_int_eq(tree_size(t), 7); - - tree_destroy(t); + Tree* t = tree_new(int); + + tree_set_root(t, 0); + tree_add_child(t, t->root, 1); + tree_add_child(t, t->root, 2); + tree_add_child(t, t->root, 3); + tree_add_child(t, t->root->firstChild, 1); + tree_add_child(t, t->root->firstChild, 2); + tree_add_child(t, t->root->firstChild->next, 1); + tree_add_child(t, t->root->firstChild->next, 2); + tree_add_child(t, t->root->firstChild->next, 3); + tree_add_child(t, t->root->firstChild->next, 4); + tree_add_child(t, t->root->lastChild, 1); + tree_add_child(t, t->root->lastChild, 2); + tree_add_child(t, t->root->lastChild, 3); + lu_assert_int_eq(tree_size(t), 13); + + tree_remove(t, t->root->lastChild); + lu_assert_int_eq(tree_size(t), 9); + tree_rm_childs(t, t->root->firstChild); + lu_assert_int_eq(tree_size(t), 7); + + tree_destroy(t); } -void t_tree_iterate() //FTEST +void t_tree_iterate() { - Tree* t = tree_new(int); - - tree_set_root(t, 0); - tree_add_child(t, t->root, 1); - tree_add_child(t, t->root, 2); - tree_add_child(t, t->root, 3); - tree_add_child(t, t->root->firstChild, 4); - tree_add_child(t, t->root->firstChild, 5); - tree_add_child(t, t->root->firstChild->next, 6); - tree_add_child(t, t->root->firstChild->next, 7); - tree_add_child(t, t->root->firstChild->next, 8); - tree_add_child(t, t->root->firstChild->next, 9); - - TreeIterator* ti = tree_get_iterator(t, IN_BREADTH); - int a; - for (int i = 0; i < 10; i++) - { - lu_assert(treeI_has_data(ti)); - treeI_get(ti, a); - lu_assert_int_eq(a, i); - treeI_move_next(ti); - } - - treeI_destroy(ti); - tree_destroy(t); + Tree* t = tree_new(int); + + tree_set_root(t, 0); + tree_add_child(t, t->root, 1); + tree_add_child(t, t->root, 2); + tree_add_child(t, t->root, 3); + tree_add_child(t, t->root->firstChild, 4); + tree_add_child(t, t->root->firstChild, 5); + tree_add_child(t, t->root->firstChild->next, 6); + tree_add_child(t, t->root->firstChild->next, 7); + tree_add_child(t, t->root->firstChild->next, 8); + tree_add_child(t, t->root->firstChild->next, 9); + + TreeIterator* ti = tree_get_iterator(t, IN_BREADTH); + int a; + for (int i = 0; i < 10; i++) + { + lu_assert(treeI_has_data(ti)); + treeI_get(ti, a); + lu_assert_int_eq(a, i); + treeI_move_next(ti); + } + lu_assert(!treeI_has_data(ti)); + + treeI_destroy(ti); + tree_destroy(t); } -void t_tree_copy() //FTEST +void t_tree_copy() { - Tree* t = tree_new(int); - - tree_set_root(t, 0); - tree_add_child(t, t->root, 1); - tree_add_child(t, t->root, 2); - tree_add_child(t, t->root, 3); - tree_add_child(t, t->root->firstChild, 1); - tree_add_child(t, t->root->firstChild, 2); - tree_add_child(t, t->root->firstChild->next, 1); - tree_add_child(t, t->root->firstChild->next, 2); - tree_add_child(t, t->root->firstChild->next, 3); - tree_add_child(t, t->root->firstChild->next, 4); - - Tree* tc = tree_copy(t); - lu_assert_int_eq(t->size, tc->size); - - TreeIterator* ti = tree_get_iterator(t, IN_DEPTH); - TreeIterator* tci = tree_get_iterator(tc, IN_DEPTH); - int a, b; - while (treeI_has_data(ti)) - { - treeI_get(ti, a); - treeI_get(tci, b); - lu_assert_int_eq(a, b); - treeI_move_next(ti); - treeI_move_next(tci); - } - treeI_destroy(ti); - treeI_destroy(tci); - - tree_destroy(t); - tree_destroy(tc); + Tree* t = tree_new(int); + + tree_set_root(t, 0); + tree_add_child(t, t->root, 1); + tree_add_child(t, t->root, 2); + tree_add_child(t, t->root, 3); + tree_add_child(t, t->root->firstChild, 1); + tree_add_child(t, t->root->firstChild, 2); + tree_add_child(t, t->root->firstChild->next, 1); + tree_add_child(t, t->root->firstChild->next, 2); + tree_add_child(t, t->root->firstChild->next, 3); + tree_add_child(t, t->root->firstChild->next, 4); + + Tree* tc = tree_copy(t); + lu_assert_int_eq(t->size, tc->size); + + TreeIterator* ti = tree_get_iterator(t, IN_DEPTH); + TreeIterator* tci = tree_get_iterator(tc, IN_DEPTH); + int a, b; + while (treeI_has_data(ti)) + { + treeI_get(ti, a); + treeI_get(tci, b); + lu_assert_int_eq(a, b); + treeI_move_next(ti); + treeI_move_next(tci); + } + treeI_destroy(ti); + treeI_destroy(tci); + + tree_destroy(t); + tree_destroy(tc); }