Guest User

Untitled

a guest
Jun 24th, 2018
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.85 KB | None | 0 0
  1. -module(testsets).
  2. -export([test_all/1]).
  3.  
  4. build_sets(N) ->
  5. L = [make_ref() || _ <- lists:seq(1, N)],
  6. L1 = shuffle([], L),
  7. {L1,
  8. [{ordsets, ordsets:from_list(L)},
  9. {gb_sets, gb_sets:from_list(L)},
  10. {sets , sets:from_list(L)}]}.
  11.  
  12. shuffle(Acc, []) -> Acc;
  13. shuffle(Acc, Xs) ->
  14. Y = lists:nth(random:uniform(length(Xs)), Xs),
  15. shuffle([Y | Acc], lists:delete(Y, Xs)).
  16.  
  17. time_remove_all(List, {Mod, Set}) ->
  18. {Time, _} = timer:tc(lists, foldl, [fun (E, S) ->
  19. apply(Mod, del_element, [E, S])
  20. end, Set, List]),
  21. io:format("~p\ttook ~p~n", [Mod, Time]).
  22.  
  23. run_test(N) ->
  24. io:format("N = ~p~n", [N]),
  25. {List, Sets} = build_sets(N),
  26. [time_remove_all(List, Set) || Set <- Sets].
  27.  
  28. test_all(Walues) ->
  29. [run_test(N) || N <- Walues],
  30. ok.
Add Comment
Please, Sign In to add comment