From 950c3023d292203b4efe380df8eb9133a594071b Mon Sep 17 00:00:00 2001 From: Linus Nordberg Date: Mon, 2 Jun 2014 14:00:24 +0200 Subject: Don't use maps. We want to support R16 too. --- src/ht.erl | 49 ++++++++++++++++++++++++++++--------------------- 1 file changed, 28 insertions(+), 21 deletions(-) (limited to 'src') 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_() -> -- cgit v1.1