natural-0.5.0.1: benchmarks/Main.hs
{-# OPTIONS_GHC -Wall -Werror #-}
module Main (main) where
import Test.Tasty.Bench (bench, bgroup, defaultMain, whnf)
import Natural (Natural, zero', successor', plus, multiply)
n :: Int
n = 1000
nat :: Int -> Natural
nat 0 = zero'
nat k = successor' (nat (k - 1))
main :: IO ()
main =
defaultMain
[ bgroup
"Natural"
[ bench "successor" $ whnf (iterate successor' zero' !!) n,
bench "plus" $ whnf (plus (nat 100)) (nat 100),
bench "multiply" $ whnf (multiply (nat 50)) (nat 50)
]
]