82ecd61f5c
Change-Id: I6c6847fac56f0a9a1a2209792e00a3aec5e672b9 Reviewed-on: https://cl.tvl.fyi/c/depot/+/10809 Autosubmit: aspen <root@gws.fyi> Reviewed-by: sterni <sternenseemann@systemli.org> Tested-by: BuildkiteCI Reviewed-by: lukegb <lukegb@tvl.fyi>
37 lines
1.3 KiB
Haskell
37 lines
1.3 KiB
Haskell
--------------------------------------------------------------------------------
|
|
module Xanthous.Generators.UtilBench (benchmark, main) where
|
|
--------------------------------------------------------------------------------
|
|
import Bench.Prelude
|
|
--------------------------------------------------------------------------------
|
|
import Data.Array.IArray
|
|
import Data.Array.Unboxed
|
|
import System.Random (getStdGen)
|
|
--------------------------------------------------------------------------------
|
|
import Xanthous.Generators.Util
|
|
import qualified Xanthous.Generators.CaveAutomata as CaveAutomata
|
|
import Xanthous.Data (Dimensions'(..))
|
|
--------------------------------------------------------------------------------
|
|
|
|
main :: IO ()
|
|
main = defaultMain [benchmark]
|
|
|
|
--------------------------------------------------------------------------------
|
|
|
|
benchmark :: Benchmark
|
|
benchmark = bgroup "Generators.Util"
|
|
[ bgroup "floodFill"
|
|
[ env (NFWrapper <$> cells) $ \(NFWrapper ir) ->
|
|
bench "checkerboard" $ nf (floodFill ir) (1,0)
|
|
]
|
|
]
|
|
where
|
|
cells :: IO Cells
|
|
cells = CaveAutomata.generate
|
|
CaveAutomata.defaultParams
|
|
(Dimensions 50 50)
|
|
<$> getStdGen
|
|
|
|
newtype NFWrapper a = NFWrapper a
|
|
|
|
instance NFData (NFWrapper a) where
|
|
rnf (NFWrapper x) = x `seq` ()
|