aboutsummaryrefslogtreecommitdiff
path: root/test/mst_test.exs
diff options
context:
space:
mode:
Diffstat (limited to 'test/mst_test.exs')
-rw-r--r--test/mst_test.exs35
1 files changed, 35 insertions, 0 deletions
diff --git a/test/mst_test.exs b/test/mst_test.exs
new file mode 100644
index 0000000..68886c7
--- /dev/null
+++ b/test/mst_test.exs
@@ -0,0 +1,35 @@
+defmodule ShardTest.MST do
+ use ExUnit.Case
+ alias SData.MerkleSearchTree, as: MST
+ doctest Shard.Application
+
+ test "merkle search tree 1" do
+ y = Enum.reduce(0..1000, MST.new(),
+ fn i, acc -> MST.insert(acc, i, i) end)
+
+
+ z = Enum.reduce(Enum.shuffle(0..1000), MST.new(),
+ fn i, acc -> MST.insert(acc, i, i) end)
+
+ IO.puts "y.root: #{y.root|>Base.encode16}"
+ IO.puts "z.root: #{z.root|>Base.encode16}"
+ assert y.root == z.root
+ end
+
+ test "merkle search tree 2" do
+ items = for i <- 0..1000 do
+ h = SData.term_hash i
+ {h, SData.term_hash h}
+ end
+
+ y = Enum.reduce(items, MST.new(),
+ fn {k, v}, acc -> MST.insert(acc, k, v) end)
+
+ z = Enum.reduce(Enum.shuffle(items), MST.new(),
+ fn {k, v}, acc -> MST.insert(acc, k, v) end)
+
+ IO.puts "y.root: #{y.root|>Base.encode16}"
+ IO.puts "z.root: #{z.root|>Base.encode16}"
+ assert y.root == z.root
+ end
+end