Change-Id: Id31960e7bc2243dfa53dc5e45b09d8253bdef852 Reviewed-on: https://cl.tvl.fyi/c/depot/+/727 Reviewed-by: glittershark <grfn@gws.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` ()
 |