Skip to content

Commit b478225

Browse files
committed
test: 🚨 add some tests for red_black_tree
1 parent 3e63f33 commit b478225

File tree

1 file changed

+11
-0
lines changed

1 file changed

+11
-0
lines changed

test/red_black_tree_test.exs

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,7 @@ defmodule RedBlackTreeTest do
7474
assert 7 == RedBlackTree.get(tree, :e)
7575
assert 4 == RedBlackTree.get(tree, :g)
7676
assert 5 == RedBlackTree.get(tree, :c)
77+
assert 100_500 == RedBlackTree.get(tree, :no_such_key, 100_500)
7778
end
7879

7980
test "delete" do
@@ -109,8 +110,10 @@ defmodule RedBlackTreeTest do
109110

110111
test "insert and get", %{tree: tree} do
111112
tree = RedBlackTree.insert(tree, :a, 1)
113+
tree = RedBlackTree.insert(tree, :c)
112114
assert RedBlackTree.get(tree, :a) == 1
113115
assert RedBlackTree.get(tree, :b) == nil
116+
assert RedBlackTree.get(tree, :c) == nil
114117
end
115118

116119
test "insert and member?", %{tree: tree} do
@@ -126,6 +129,14 @@ defmodule RedBlackTreeTest do
126129
assert RedBlackTree.member?(new_tree, :a) == false
127130
end
128131

132+
test "reduce", %{tree: tree} do
133+
assert RedBlackTree.reduce(RedBlackTree.new(), 100, fn el, acc -> el + acc end) == 100
134+
135+
tree = RedBlackTree.insert(tree, :a, 1) |> RedBlackTree.insert(:b, 2)
136+
result = RedBlackTree.reduce(tree, 0, fn {_, v}, acc -> acc + v end)
137+
assert result == 3
138+
end
139+
129140
test "fold_left", %{tree: tree} do
130141
tree = RedBlackTree.insert(tree, :a, 1) |> RedBlackTree.insert(:b, 2)
131142
result = RedBlackTree.fold_left(RedBlackTree.to_list(tree), 0, fn acc, {_, v} -> acc + v end)

0 commit comments

Comments
 (0)