@@ -0,0 +1,98 @@
1+module Suite exposing (main)
3+import Benchmark exposing (Benchmark)
4+import Benchmark.Runner exposing (BenchmarkProgram, program)
16+ Benchmark.describe "dictionary"
17+ [ Benchmark.benchmark "get" (\_ -> Dict.get "a" dest)
18+ , Benchmark.benchmark "insert" (\_ -> Dict.insert "b" 2 dest)
22+main : BenchmarkProgram
25+ Benchmark.describe "sample"
32+ Benchmark.describe "deduplications"
33+ [ Benchmark.benchmark "fold - dedup, String concat"
35+ String.join ":" (foldDedup largeList)
37+ , Benchmark.benchmark "fold - dedup"
41+ , Benchmark.benchmark "fold - dedup - Int"
43+ foldDedup largeListInt
45+ , Benchmark.benchmark "Json encode"
47+ Json.Encode.object largeListJson
54+ dedup ( name, val ) ( cache, ls ) =
55+ if Set.member name cache then
59+ ( Set.insert name cache, val :: ls )
61+ List.foldl dedup ( Set.empty, [] ) list
73+ ( wrappingI, "elem-" ++ String.fromInt wrappingI )
85+ ( "elem-" ++ String.fromInt wrappingI, "elem-" ++ String.fromInt wrappingI )
97+ ( "elem-" ++ String.fromInt wrappingI, Json.Encode.string ("elem-" ++ String.fromInt wrappingI) )