packages feed

tries-0.0.3: bench/BenchLookup.hs

{-# LANGUAGE
    FlexibleContexts
  #-}

module Main where

import Build

import Data.Trie.Class as TC
import Criterion.Main


main = defaultMain
  [ bgroup "lookup"
    [ bgroup "ListTrie"    $ benchOne genListTrie    <$> [10,20..100]
    , bgroup "MapTrie"     $ benchOne genMapTrie     <$> [10,20..100]
    , bgroup "HashMapTrie" $ benchOne genHashMapTrie <$> [10,20..100]
    , bgroup "KnuthTrie"   $ benchOne genKnuthTrie   <$> [10,20..100]
    ]
  ]
  where
    benchOne gen x = bench (show x) $ whnf (TC.lookup $ buildMiddleQuery x)  (gen 100)