From e9e6b603b722cf8f4d8978dfb696b00e10096d2b Mon Sep 17 00:00:00 2001 From: Linus Nordberg Date: Fri, 25 Apr 2014 16:11:15 +0200 Subject: Add some more internal tests to ht. --- src/ht.erl | 29 +++++++++++++++++++++++++++-- 1 file changed, 27 insertions(+), 2 deletions(-) diff --git a/src/ht.erl b/src/ht.erl index 5f41991..1fb4dd5 100644 --- a/src/ht.erl +++ b/src/ht.erl @@ -164,6 +164,32 @@ rightbranchdepth(Tree, Acc) -> %%%%%%%%%%%%%%%%%%%% %% Internal tests. +basic_helpers_test_() -> + [test_bitcount()]. + +test_bitcount() -> + L = [1, 2, 3, 255, 256, 511, 512, 32767, 32768, 65535, 65536, + 2147483648, 4294967296, 8589934591, 8589934592, 18446744073709551616], + [[?_assertEqual(lists:nth(1, tv_bitcount(X)), ffs(X)) || X <- L], + [?_assertEqual(lists:nth(2, tv_bitcount(X)), fls(X)) || X <- L]]. + +tv_bitcount(1) -> [0, 0]; +tv_bitcount(2) -> [1, 1]; +tv_bitcount(3) -> [1, 0]; +tv_bitcount(255) -> [7, 0]; +tv_bitcount(256) -> [8, 8]; +tv_bitcount(511) -> [8, 0]; +tv_bitcount(512) -> [9, 9]; +tv_bitcount(32767) -> [14, 0]; +tv_bitcount(32768) -> [15, 15]; +tv_bitcount(65535) -> [15, 0]; +tv_bitcount(65536) -> [16, 16]; +tv_bitcount(2147483648) -> [31, 31]; +tv_bitcount(4294967296) -> [32, 32]; +tv_bitcount(8589934591) -> [32, 0]; +tv_bitcount(8589934592) -> [33, 33]; +tv_bitcount(18446744073709551616) -> [64, 64]. + -define(TEST_VECTOR_TREES, [<<148,242,40,0,3,172,180,106,111,230,146,161,32,40,128,38,103,8,194, 102,72,68, 126,70,108,47,8,216,208,146,178,107>>]). @@ -217,8 +243,7 @@ mkhead_from_list_test() -> mkhead(L)). append_eq_mth_test() -> - %% FIXME: Make larger trees once we've fixed That Bug. - L = lists:seq(1, 255), + L = [<> || X <- lists:seq(0, 1024)], ?assertEqual(gethash((mkhead(L))#head.tree), mth(L)). -- cgit v1.1