Create basic benchmarks for circOnLine
This commit is contained in:
+22
-1
@@ -1,4 +1,25 @@
|
|||||||
import Criterion.Main
|
import Criterion.Main
|
||||||
|
|
||||||
|
import Dodge.RandomHelp
|
||||||
|
|
||||||
|
import Geometry
|
||||||
|
|
||||||
|
import System.Random
|
||||||
|
import Control.Monad.State
|
||||||
|
import Data.List (zip4)
|
||||||
|
|
||||||
main :: IO ()
|
main :: IO ()
|
||||||
main = putStrLn "h"
|
main = do
|
||||||
|
[ps1, ps2, ps3, ps4] <- mapM randomPoints [500,500,500,500]
|
||||||
|
fs <- sequence $ replicate 500 (randomRIO (1,20))
|
||||||
|
defaultMain
|
||||||
|
[ bgroup "circLine tests"
|
||||||
|
[ bench "circLine" $ nf (map $ uncurry4 circOnLine) (zip4 ps1 ps2 ps3 fs)
|
||||||
|
, bench "circLine'" $ nf (map $ uncurry4 circOnLine') (zip4 ps1 ps2 ps3 fs)
|
||||||
|
]
|
||||||
|
]
|
||||||
|
|
||||||
|
uncurry4 f (a,b,c,d) = f a b c d
|
||||||
|
|
||||||
|
randomPoints :: Int -> IO [Point2]
|
||||||
|
randomPoints i = getStdGen >>= return . evalState (sequence $ replicate i $ randInCirc 500)
|
||||||
|
|||||||
@@ -84,6 +84,7 @@ benchmarks:
|
|||||||
loop-benchmarks:
|
loop-benchmarks:
|
||||||
dependencies:
|
dependencies:
|
||||||
- criterion
|
- criterion
|
||||||
|
- loop
|
||||||
ghc-options:
|
ghc-options:
|
||||||
- -threaded
|
- -threaded
|
||||||
- -O2
|
- -O2
|
||||||
|
|||||||
Reference in New Issue
Block a user