@@ -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