summaryrefslogtreecommitdiff
path: root/Benchmark.hs
diff options
context:
space:
mode:
authorJonas Smedegaard <dr@jones.dk>2013-01-21 01:42:39 +0100
committerJonas Smedegaard <dr@jones.dk>2013-01-21 01:42:39 +0100
commitf2732ba251ebdc5d2612d180b5b87bd727e01b17 (patch)
treeeecfb3903be732891bbf1ceb669b4e278b60eb78 /Benchmark.hs
parentdce4bb86ed2141429fdd958a4186f3490dbd8bca (diff)
Imported Upstream version 1.10.0.3
Diffstat (limited to 'Benchmark.hs')
-rw-r--r--Benchmark.hs45
1 files changed, 0 insertions, 45 deletions
diff --git a/Benchmark.hs b/Benchmark.hs
deleted file mode 100644
index 1fd787945..000000000
--- a/Benchmark.hs
+++ /dev/null
@@ -1,45 +0,0 @@
-import Text.Pandoc
-import Text.Pandoc.Shared (readDataFile, normalize)
-import Criterion.Main
-import Data.List (isSuffixOf)
-import Text.JSON.Generic
-
-readerBench :: Pandoc
- -> (String, ParserState -> String -> Pandoc)
- -> Benchmark
-readerBench doc (name, reader) =
- let writer = case lookup name writers of
- Just w -> w
- Nothing -> error $ "Could not find writer for " ++ name
- inp = writer defaultWriterOptions{ writerWrapText = True
- , writerLiterateHaskell =
- "+lhs" `isSuffixOf` name } doc
- -- we compute the length to force full evaluation
- getLength (Pandoc (Meta a b c) d) =
- length a + length b + length c + length d
- in bench (name ++ " reader") $ whnf (getLength .
- reader defaultParserState{ stateSmart = True
- , stateStandalone = True
- , stateLiterateHaskell =
- "+lhs" `isSuffixOf` name }) inp
-
-writerBench :: Pandoc
- -> (String, WriterOptions -> Pandoc -> String)
- -> Benchmark
-writerBench doc (name, writer) = bench (name ++ " writer") $ nf
- (writer defaultWriterOptions{
- writerWrapText = True
- , writerLiterateHaskell = "+lhs" `isSuffixOf` name }) doc
-
-normalizeBench :: Pandoc -> [Benchmark]
-normalizeBench doc = [ bench "normalize - with" $ nf (encodeJSON . normalize) doc
- , bench "normalize - without" $ nf encodeJSON doc
- ]
-
-main = do
- inp <- readDataFile (Just ".") "README"
- let ps = defaultParserState{ stateSmart = True }
- let doc = readMarkdown ps inp
- let readerBs = map (readerBench doc) readers
- defaultMain $ map (writerBench doc) writers ++ readerBs ++ normalizeBench doc
-