diff options
Diffstat (limited to 'learn-you-some-erlang/tests/tree_tests.erl')
-rw-r--r-- | learn-you-some-erlang/tests/tree_tests.erl | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/learn-you-some-erlang/tests/tree_tests.erl b/learn-you-some-erlang/tests/tree_tests.erl new file mode 100644 index 0000000..5a2633b --- /dev/null +++ b/learn-you-some-erlang/tests/tree_tests.erl @@ -0,0 +1,64 @@ +-module(tree_tests). +-include_lib("eunit/include/eunit.hrl"). + +empty_test() -> + ?assert({node, 'nil'} =:= tree:empty()). + +%% oh god this gets ugly +insert_test_() -> + T1 = tree:insert(a, "a", tree:empty()), + T2 = tree:insert(c, "c", T1), + T3 = tree:insert(n, "n", + tree:insert(z, "z", + tree:insert(t, "t", + tree:insert(x, "x", T2)))), + [?_assertEqual(T1, {node, {a,"a",{node,nil},{node,nil}}}), + ?_assertEqual(T2, {node, {a,"a", + {node,nil}, + {node, {c,"c",{node,nil},{node,nil}}}}}), + ?_assertEqual(T3, {node, {a,"a", + {node, nil}, + {node, {c,"c", + {node, nil}, + {node, {x,"x", + {node, {t,"t", + {node, {n,"n", + {node,nil}, + {node,nil}}}, + {node, nil}}}, + {node, {z,"z", + {node,nil}, + {node,nil}}}}}}}}})]. +%% not as bad! +lookup_test_() -> + T = tree:insert(x, "x", + tree:insert(t, "t", + tree:insert(z, "z", + tree:insert(n, "n", + tree:insert(c, "c", + tree:insert(a, "a", tree:empty())))))), + [?_assert({ok,"t"} == tree:lookup(t,T)), + ?_assert(undefined == tree:lookup(21, T)), + ?_assert(undefined == tree:lookup(a, tree:empty()))]. + +%% done with both insert and lookup +update_test_() -> + T1 = tree:insert(x, "x", + tree:insert(t, "t", + tree:insert(z, "z", + tree:insert(n, "n", + tree:insert(c, "c", + tree:insert(a, "a", tree:empty())))))), + T2 = tree:insert(x, "X", T1), + [?_assertEqual({ok, "x"}, tree:lookup(x, T1)), + ?_assertEqual({ok, "X"}, tree:lookup(x, T2))]. + +has_value_test_() -> + T1 = tree:insert(x, "x", + tree:insert(t, "t", + tree:insert(z, "z", + tree:insert(n, "n", + tree:insert(c, "c", + tree:insert(a, "a", tree:empty())))))), + [?_assertEqual(true, tree:has_value("z", T1)), + ?_assertEqual(false,tree:has_value("Z", T1))]. |