diff --git a/src/Data.hrl b/include/Data.hrl similarity index 100% rename from src/Data.hrl rename to include/Data.hrl diff --git a/src/Debug.hrl b/include/Debug.hrl similarity index 100% rename from src/Debug.hrl rename to include/Debug.hrl diff --git a/src/Shapes.hrl b/include/Shapes.hrl similarity index 100% rename from src/Shapes.hrl rename to include/Shapes.hrl diff --git a/src/Trees.hrl b/include/Trees.hrl similarity index 100% rename from src/Trees.hrl rename to include/Trees.hrl diff --git a/src/trees_test.erl b/src/trees_test.erl deleted file mode 100644 index e4de832..0000000 --- a/src/trees_test.erl +++ /dev/null @@ -1,74 +0,0 @@ -% -% F.Cesarini & S.Thomson, Erlang Programming, p.169. -% Exercise 7-5: Binary Trees -% --module(trees_test). --export([test/0]). --include("Trees.hrl"). - -test() -> - sum_undefined_tree(), - sum_balanced_tree(), - sum_lined_tree(), - max_undefined_tree(), - max_balanced_tree(), - max_lined_tree(), - is_ordered_undefined_tree(), - is_ordered_false(), - is_ordered_true(), - insert_into_undefined(), - insert_into_left_tree(), - insert_equal_into_right_tree(), - insert_greater_into_right_tree(), - ok. - -sum_undefined_tree() -> - 0 = trees:sum(undefined). - -sum_balanced_tree() -> - Tree = #bintree{value = 5, left = #bintree{value = 6}, right = #bintree{value = 9}}, - 20 = trees:sum(Tree). - -sum_lined_tree() -> - Tree = #bintree{value = 5, left = #bintree{value = 6, left = #bintree{value = 9}}}, - 20 = trees:sum(Tree). - -max_undefined_tree() -> - 0 = trees:max(undefined). - -max_balanced_tree() -> - Tree = #bintree{value = 5, left = #bintree{value = 6}, right = #bintree{value = 9}}, - 9 = trees:max(Tree). - -max_lined_tree() -> - Tree = #bintree{value = 5, left = #bintree{value = 6, left = #bintree{value = 9}}}, - 9 = trees:max(Tree). - -is_ordered_undefined_tree() -> - true = trees:is_ordered(undefined). - -is_ordered_false() -> - Tree = #bintree{value = 5, left = #bintree{value = 6}, right = #bintree{value = 9}}, - false = trees:is_ordered(Tree). - -is_ordered_true() -> - Tree = #bintree{value = 5, left = #bintree{value = 4}, right = #bintree{value = 6}}, - true = trees:is_ordered(Tree). - -insert_into_undefined() -> - #bintree{value = 5} = trees:insert(5, undefined). - -insert_into_left_tree() -> - Tree = #bintree{value = 5, left = #bintree{value = 4}, right = #bintree{value = 6}}, - #bintree{value = 5, left = #bintree{value = 4, left = #bintree{value = 3}}, right = #bintree{value = 6}} = - trees:insert(3, Tree). - -insert_equal_into_right_tree() -> - Tree = #bintree{value = 5, left = #bintree{value = 4}, right = #bintree{value = 6}}, - #bintree{value = 5, left = #bintree{value = 4}, right = #bintree{value = 6, left = #bintree{value = 5}}} = - trees:insert(5, Tree). - -insert_greater_into_right_tree() -> - Tree = #bintree{value = 5, left = #bintree{value = 4}, right = #bintree{value = 6}}, - #bintree{value = 5, left = #bintree{value = 4}, right = #bintree{value = 6, right = #bintree{value = 7}}} = - trees:insert(7, Tree). diff --git a/src/ets_tests.erl b/test/ets_tests.erl similarity index 100% rename from src/ets_tests.erl rename to test/ets_tests.erl diff --git a/src/recursion_tests.erl b/test/recursion_tests.erl similarity index 100% rename from src/recursion_tests.erl rename to test/recursion_tests.erl diff --git a/src/regex_tests.erl b/test/regex_tests.erl similarity index 100% rename from src/regex_tests.erl rename to test/regex_tests.erl diff --git a/test/trees_test.erl b/test/trees_test.erl new file mode 100644 index 0000000..ba86621 --- /dev/null +++ b/test/trees_test.erl @@ -0,0 +1,58 @@ +% +% F.Cesarini & S.Thomson, Erlang Programming, p.169. +% Exercise 7-5: Binary Trees +% +-module(trees_test). +-include("Trees.hrl"). +-include_lib("eunit/include/eunit.hrl"). + +sum_undefined_tree_test() -> + ?assertEqual(0, trees:sum(undefined)). + +sum_balanced_tree_test() -> + Tree = #bintree{value = 5, left = #bintree{value = 6}, right = #bintree{value = 9}}, + ?assertEqual(20, trees:sum(Tree)). + +sum_lined_tree_test() -> + Tree = #bintree{value = 5, left = #bintree{value = 6, left = #bintree{value = 9}}}, + ?assertEqual(20, trees:sum(Tree)). + +max_undefined_tree_test() -> + ?assertEqual(0, trees:max(undefined)). + +max_balanced_tree_test() -> + Tree = #bintree{value = 5, left = #bintree{value = 6}, right = #bintree{value = 9}}, + ?assertEqual(9, trees:max(Tree)). + +max_lined_tree_test() -> + Tree = #bintree{value = 5, left = #bintree{value = 6, left = #bintree{value = 9}}}, + ?assertEqual(9, trees:max(Tree)). + +is_ordered_undefined_tree_test() -> + ?assert(trees:is_ordered(undefined)). + +is_ordered_false_test() -> + Tree = #bintree{value = 5, left = #bintree{value = 6}, right = #bintree{value = 9}}, + ?assertNot(trees:is_ordered(Tree)). + +is_ordered_true_test() -> + Tree = #bintree{value = 5, left = #bintree{value = 4}, right = #bintree{value = 6}}, + ?assert(trees:is_ordered(Tree)). + +insert_into_undefined_test() -> + ?assertEqual(#bintree{value = 5}, trees:insert(5, undefined)). + +insert_into_left_tree_test() -> + Tree = #bintree{value = 5, left = #bintree{value = 4}, right = #bintree{value = 6}}, + ?assertEqual(#bintree{value = 5, left = #bintree{value = 4, left = #bintree{value = 3}}, right = #bintree{value = 6}}, + trees:insert(3, Tree)). + +insert_equal_into_right_tree_test() -> + Tree = #bintree{value = 5, left = #bintree{value = 4}, right = #bintree{value = 6}}, + ?assertEqual(#bintree{value = 5, left = #bintree{value = 4}, right = #bintree{value = 6, left = #bintree{value = 5}}}, + trees:insert(5, Tree)). + +insert_greater_into_right_tree_test() -> + Tree = #bintree{value = 5, left = #bintree{value = 4}, right = #bintree{value = 6}}, + ?assertEqual(#bintree{value = 5, left = #bintree{value = 4}, right = #bintree{value = 6, right = #bintree{value = 7}}}, + trees:insert(7, Tree)).