From 87731a85f5f3b19198f39ace43028b1b78a09aeb Mon Sep 17 00:00:00 2001 From: Martin Sumner Date: Thu, 19 Oct 2017 13:51:32 +0100 Subject: [PATCH] Loop test --- src/leveled_tinybloom.erl | 60 +++++++++++++++++++-------------------- 1 file changed, 30 insertions(+), 30 deletions(-) diff --git a/src/leveled_tinybloom.erl b/src/leveled_tinybloom.erl index f3d99ce..bf100b8 100644 --- a/src/leveled_tinybloom.erl +++ b/src/leveled_tinybloom.erl @@ -284,45 +284,46 @@ empty_bloom_test() -> check_neg_hashes(BloomBin0, [0, 10, 100, 100000], {0, 0})). bloom_test() -> - test_bloom(128), - test_bloom(64), - test_bloom(32), - test_bloom(16), - test_bloom(8). + test_bloom(128, 400), + test_bloom(64, 400), + test_bloom(32, 400), + test_bloom(16, 400), + test_bloom(8, 400). -test_bloom(N) -> - HashList1 = get_hashlist(N), - HashList2 = get_hashlist(N), - HashList3 = get_hashlist(N), - HashList4 = get_hashlist(N), +test_bloom(N, Runs) -> + ListOfHashLists = + lists:map(fun(_X) -> get_hashlist(N) end, lists:seq(1, Runs)), SWa = os:timestamp(), - BloomBin1 = create_bloom(HashList1), - BloomBin2 = create_bloom(HashList2), - BloomBin3 = create_bloom(HashList3), - BloomBin4 = create_bloom(HashList4), + ListOfBlooms = + lists:map(fun(HL) -> create_bloom(HL) end, ListOfHashLists), TSa = timer:now_diff(os:timestamp(), SWa), SWb = os:timestamp(), - check_all_hashes(BloomBin1, HashList1), - check_all_hashes(BloomBin2, HashList2), - check_all_hashes(BloomBin3, HashList3), - check_all_hashes(BloomBin4, HashList4), + lists:foreach(fun(Nth) -> + HL = lists:nth(Nth, ListOfHashLists), + BB = lists:nth(Nth, ListOfBlooms), + check_all_hashes(BB, HL) + end, + lists:seq(1, Runs)), TSb = timer:now_diff(os:timestamp(), SWb), HashPool = get_hashlist(N * 2), - HashListOut1 = lists:sublist(lists:subtract(HashPool, HashList1), N), - HashListOut2 = lists:sublist(lists:subtract(HashPool, HashList2), N), - HashListOut3 = lists:sublist(lists:subtract(HashPool, HashList3), N), - HashListOut4 = lists:sublist(lists:subtract(HashPool, HashList4), N), - + ListOfMisses = + lists:map(fun(HL) -> + lists:sublist(lists:subtract(HashPool, HL), N) + end, + ListOfHashLists), + SWc = os:timestamp(), - C0 = {0, 0}, - C1 = check_neg_hashes(BloomBin1, HashListOut1, C0), - C2 = check_neg_hashes(BloomBin2, HashListOut2, C1), - C3 = check_neg_hashes(BloomBin3, HashListOut3, C2), - C4 = check_neg_hashes(BloomBin4, HashListOut4, C3), - {Pos, Neg} = C4, + {Pos, Neg} = + lists:foldl(fun(Nth, Acc) -> + HL = lists:nth(Nth, ListOfMisses), + BB = lists:nth(Nth, ListOfBlooms), + check_neg_hashes(BB, HL, Acc) + end, + {0, 0}, + lists:seq(1, Runs)), FPR = Pos / (Pos + Neg), TSc = timer:now_diff(os:timestamp(), SWc), @@ -332,5 +333,4 @@ test_bloom(N) -> [N, TSa, TSb, TSc, FPR]). - -endif.