packages feed

Foster-1.1.2: benchmarks/Bench.hs

import Criterion.Main
import Foster.Interpreter
import System.Environment (withArgs)

main :: IO ()
main = defaultMain 
    [ bgroup "foster generate"
        [ bench "100,100" $ whnfIO $ withArgs ["generate", "100,100", "-s", "-op1.txt"] interpret
        , bench "200,200" $ whnfIO $ withArgs ["generate", "200,200", "-s", "-op2.txt"] interpret
        , bench "500,500" $ whnfIO $ withArgs ["generate", "500,500", "-s", "-op3.txt"] interpret
        ]
    , bgroup "foster solve"
        [ bench "p1.txt" $ whnfIO $ withArgs ["solve", "-s", "-ip1.txt", "-os1.txt"] interpret
        , bench "p2.txt" $ whnfIO $ withArgs ["solve", "-s", "-ip2.txt", "-os2.txt"] interpret
        , bench "p3.txt" $ whnfIO $ withArgs ["solve", "-s", "-ip3.txt", "-os3.txt"] interpret
        ]
    , bgroup "foster check"
        [ bench "s1.txt" $ whnfIO $ withArgs ["check", "-s", "-ip1.txt", "-os1.txt"] interpret
        , bench "s2.txt" $ whnfIO $ withArgs ["check", "-s", "-ip2.txt", "-os2.txt"] interpret
        , bench "s3.txt" $ whnfIO $ withArgs ["check", "-s", "-ip3.txt", "-os3.txt"] interpret
        ]
    ]