packages feed

genvalidity-criterion 0.0.0.0 → 0.1.0.0

raw patch · 3 files changed

+34/−20 lines, 3 filesPVP ok

version bump matches the API change (PVP)

API changes (from Hackage documentation)

+ Data.GenValidity.Criterion: genBenchSizes :: NFData a => String -> Gen a -> Benchmark

Files

bench/Main.hs view
@@ -46,4 +46,5 @@     , genValidBench @Float     , genValidBench @Double     , genValidBench @(Fixed E12)+    , genValidBench @String     ]
genvalidity-criterion.cabal view
@@ -4,10 +4,10 @@ -- -- see: https://github.com/sol/hpack ----- hash: 55f101899e3757aeae67655460610eadf78922eb5e875e50782dc9f090bf4467+-- hash: d89b9a832713070f3bd9773ef7f4d8776be89292d63e80c7cbe6444950493145  name:           genvalidity-criterion-version:        0.0.0.0+version:        0.1.0.0 synopsis:       Criterion benchmarks for generators category:       Validity homepage:       https://github.com/NorfairKing/validity#readme
src/Data/GenValidity/Criterion.hs view
@@ -4,45 +4,58 @@  -- | Benchmarks for generators module Data.GenValidity.Criterion-  ( genValidityBench-  , genUncheckedBench-  , genValidBench-  , genBench-  ) where+  ( genValidityBench,+    genUncheckedBench,+    genValidBench,+    genBenchSizes,+    genBench,+  )+where  import Control.DeepSeq+import Criterion import Data.GenValidity import Data.Typeable import Test.QuickCheck -import Criterion- -- | Benchmarks for both genUnchecked and genValid genValidityBench ::-     forall a. (Typeable a, NFData a, GenUnchecked a, GenValid a)-  => Benchmark+  forall a.+  (Typeable a, NFData a, GenUnchecked a, GenValid a) =>+  Benchmark genValidityBench =   bgroup (unwords ["GenValidity", nameOf @a]) [genValidBench @a, genUncheckedBench @a]  -- | Benchmarks for both genUnchecked genUncheckedBench ::-     forall a. (Typeable a, NFData a, GenUnchecked a)-  => Benchmark-genUncheckedBench = genBench (unwords ["genUnchecked", nameOf @a]) (genUnchecked @a)+  forall a.+  (Typeable a, NFData a, GenUnchecked a) =>+  Benchmark+genUncheckedBench = genBenchSizes (unwords ["genUnchecked", nameOf @a]) (genUnchecked @a)  -- | Benchmarks for both genValid genValidBench ::-     forall a. (Typeable a, NFData a, GenValid a)-  => Benchmark-genValidBench = genBench (unwords ["genValid", nameOf @a]) (genValid @a)+  forall a.+  (Typeable a, NFData a, GenValid a) =>+  Benchmark+genValidBench = genBenchSizes (unwords ["genValid", nameOf @a]) (genValid @a) +-- | Benchmarks a generator with some default sizes+genBenchSizes :: NFData a => String -> Gen a -> Benchmark+genBenchSizes name gen =+  bgroup name $+    let bi i = genBench ("size " <> show i) (resize i gen)+     in [bi 8, bi 16, bi 32, bi 64]+ -- | Benchmarks a generator with a given name genBench :: NFData a => String -> Gen a -> Benchmark-genBench name gen = bench name $ nfIO $ generate (resize 30 gen)+genBench name gen =+  bench name $ nfIO $ generate gen  nameOf ::-     forall a. Typeable a-  => String+  forall a.+  Typeable a =>+  String nameOf =   let s = show $ typeRep (Proxy @a)    in if ' ' `elem` s