Skip to content

Commit 30ea4a3

Browse files
committed
some benchmarks
1 parent 2e78c73 commit 30ea4a3

File tree

3 files changed

+33
-0
lines changed

3 files changed

+33
-0
lines changed

pub/functora/functora.cabal

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -546,3 +546,14 @@ test-suite functora-test
546546
, tags
547547
, uri
548548
, web
549+
550+
benchmark functora-bench
551+
import: pkg, exe
552+
type: exitcode-stdio-1.0
553+
main-is: Main.hs
554+
hs-source-dirs: src/bench
555+
build-depends:
556+
, base
557+
, criterion
558+
, functora
559+
, QuickCheck

pub/functora/src/bench/Main.hs

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
import Criterion.Main
2+
import Functora.Prelude
3+
import Test.QuickCheck hiding (Fixed)
4+
import Test.QuickCheck.Gen (unGen)
5+
import Test.QuickCheck.Random (newQCGen)
6+
7+
mkSamples :: Int -> IO [Fix]
8+
mkSamples n = do
9+
gen <- newQCGen
10+
pure . fmap Fix $ unGen (vectorOf n arbitrary) gen n
11+
12+
main :: IO ()
13+
main = do
14+
samples <- mkSamples 1000000
15+
defaultMain
16+
[ bgroup
17+
"Fix -> Double"
18+
[ bench "via Rational" $
19+
whnf (map $ from @Fix @Double) samples
20+
]
21+
]

pub/functora/src/prelude/Functora/Prelude.hs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -209,6 +209,7 @@ import Data.Fixed as X
209209
Pico,
210210
showFixed,
211211
)
212+
import qualified Data.Fixed
212213
import Data.Foldable1 as X (Foldable1, fold1, foldMap1)
213214
import Data.Functor.Contravariant as X (contramap)
214215
import Data.Generics as X (Data)

0 commit comments

Comments
 (0)