summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLinus Nordberg <linus@nordberg.se>2014-06-02 14:00:24 +0200
committerLinus Nordberg <linus@nordberg.se>2014-06-02 14:00:24 +0200
commit950c3023d292203b4efe380df8eb9133a594071b (patch)
treeef0d104840f3a4c84660763adcd95c44a147dcb3
parent2556f97239f436a46e6590344370064ed69c0893 (diff)
Don't use maps.
We want to support R16 too.
-rw-r--r--src/ht.erl49
1 files changed, 28 insertions, 21 deletions
diff --git a/src/ht.erl b/src/ht.erl
index 8e801b9..9e99d16 100644
--- a/src/ht.erl
+++ b/src/ht.erl
@@ -217,19 +217,26 @@ rightbranchdepth(Tree, Acc) ->
"5dc9da79a70659a9ad559cb701ded9a2ab9d823aad2f4960cfe370eff4604328"]).
%% Own test vectors.
-define(TEST_VECTOR_LEAVES2, ["d0", "d1", "d2", "d3", "d4", "d5", "d6"]).
--define(TEST_VECTOR_HASHES2, #{
- a => "C67F9FFE68E0761021341DD516428F42FBDEA633731CBDADA03BEA6B84C652F7",
- b => "49B717E4D6ECDD82F6F6648CF8F86FDF4A912600A4557398E1733186FA952C1D",
- c => "F366DF4718EF75064317794FF5300E0963E96DD93FE24203118055FA5A00BE13",
- d => "5E0C4E1130DFA84D27437BA073EB817E1896643D42EA100A0940F8752D496783",
- e => "39298BE94337336FC5515E7A34DE6EF23C9A1BFF66378B71918AE2D105D684C8",
- f => "6D1BB6BBB111AF4A1E9EC0B9FB2613CC2BCB394141CEE8C2CD462B5AD3803D78",
- g => "46C78708413A23175F51FAF1C22604BCCB44482D553B45943B189130EA8221C8",
- h => "C59E9A6D9575777BA3BDBD3E3086516196CF87EC9760861362ABA5CD0F78DF1D",
- i => "A4F2A847CCE0DCE0519B1D6B83E4CA15166193DBB0C8F864E736665EDBDE1994",
- j => "D750CA922FABC5422EEC469D4370779B61D5488186CB871EEEA299D8113D20BC",
- k => "8DF3870B33FAE650E81938994F98EB4551B143B86C95D3DAE4E6444E00715016",
- l => "3CF05FF16D26C024828E93B3A14C5656E5ABCBC5E6F0BCE2CF8A169720599674"}).
+-define(TEST_VECTOR_HASHES2,
+ [
+ {a, "C67F9FFE68E0761021341DD516428F42FBDEA633731CBDADA03BEA6B84C652F7"},
+ {b, "49B717E4D6ECDD82F6F6648CF8F86FDF4A912600A4557398E1733186FA952C1D"},
+ {c, "F366DF4718EF75064317794FF5300E0963E96DD93FE24203118055FA5A00BE13"},
+ {d, "5E0C4E1130DFA84D27437BA073EB817E1896643D42EA100A0940F8752D496783"},
+ {e, "39298BE94337336FC5515E7A34DE6EF23C9A1BFF66378B71918AE2D105D684C8"},
+ {f, "6D1BB6BBB111AF4A1E9EC0B9FB2613CC2BCB394141CEE8C2CD462B5AD3803D78"},
+ {g, "46C78708413A23175F51FAF1C22604BCCB44482D553B45943B189130EA8221C8"},
+ {h, "C59E9A6D9575777BA3BDBD3E3086516196CF87EC9760861362ABA5CD0F78DF1D"},
+ {i, "A4F2A847CCE0DCE0519B1D6B83E4CA15166193DBB0C8F864E736665EDBDE1994"},
+ {j, "D750CA922FABC5422EEC469D4370779B61D5488186CB871EEEA299D8113D20BC"},
+ {k, "8DF3870B33FAE650E81938994F98EB4551B143B86C95D3DAE4E6444E00715016"},
+ {l, "3CF05FF16D26C024828E93B3A14C5656E5ABCBC5E6F0BCE2CF8A169720599674"}
+ ]).
+smap_get(Key, SimpleMap) ->
+ case lists:keyfind(Key, 1, SimpleMap) of
+ {_, Val} -> Val;
+ Notfound -> Notfound
+ end.
basic_helpers_test_() ->
[test_bitcount()].
@@ -288,26 +295,26 @@ path_test_() ->
Leaves = ?TEST_VECTOR_LEAVES2,
H = ?TEST_VECTOR_HASHES2,
%%Tree = lists:foldl(fun(E, T) -> ht:append(T, E) end, ht:create(), Leaves),
- [?_assertEqual([maps:get(b, H), maps:get(h, H), maps:get(l, H)],
+ [?_assertEqual([smap_get(b, H), smap_get(h, H), smap_get(l, H)],
lists:map(fun hex:bin_to_hexstr/1, path(0, Leaves))),
- ?_assertEqual([maps:get(c, H), maps:get(g, H), maps:get(l, H)],
+ ?_assertEqual([smap_get(c, H), smap_get(g, H), smap_get(l, H)],
lists:map(fun hex:bin_to_hexstr/1, path(3, Leaves))),
- ?_assertEqual([maps:get(f, H), maps:get(j, H), maps:get(k, H)],
+ ?_assertEqual([smap_get(f, H), smap_get(j, H), smap_get(k, H)],
lists:map(fun hex:bin_to_hexstr/1, path(4, Leaves))),
- ?_assertEqual([maps:get(i, H), maps:get(k, H)],
+ ?_assertEqual([smap_get(i, H), smap_get(k, H)],
lists:map(fun hex:bin_to_hexstr/1, path(6, Leaves)))].
audit_path_test_() ->
Tree = lists:foldl(fun(E, T) -> ht:append(T, E) end, ht:create(),
?TEST_VECTOR_LEAVES2),
H = ?TEST_VECTOR_HASHES2,
- [?_assertEqual([maps:get(b, H), maps:get(h, H), maps:get(l, H)],
+ [?_assertEqual([smap_get(b, H), smap_get(h, H), smap_get(l, H)],
lists:map(fun hex:bin_to_hexstr/1, audit_path(Tree, 0))),
- ?_assertEqual([maps:get(c, H), maps:get(g, H), maps:get(l, H)],
+ ?_assertEqual([smap_get(c, H), smap_get(g, H), smap_get(l, H)],
lists:map(fun hex:bin_to_hexstr/1, audit_path(Tree, 3))),
- ?_assertEqual([maps:get(f, H), maps:get(j, H), maps:get(k, H)],
+ ?_assertEqual([smap_get(f, H), smap_get(j, H), smap_get(k, H)],
lists:map(fun hex:bin_to_hexstr/1, audit_path(Tree, 4))),
- ?_assertEqual([maps:get(i, H), maps:get(k, H)],
+ ?_assertEqual([smap_get(i, H), smap_get(k, H)],
lists:map(fun hex:bin_to_hexstr/1, audit_path(Tree, 6)))].
consistency_proof_test_() ->