genvalidity-containers 1.0.0.0 → 1.0.0.1
raw patch · 7 files changed
+56/−18 lines, 7 filesdep ~genvalidity-criterionPVP: minor bump suggested
API additions: PVP suggests at least a minor version bump
Dependency ranges changed: genvalidity-criterion
API changes (from Hackage documentation)
+ Data.GenValidity.Map: shrinkMapOf :: Ord k => ((k, v) -> [(k, v)]) -> Map k v -> [Map k v]
+ Data.GenValidity.Sequence: shrinkSeqOf :: (v -> [v]) -> Seq v -> [Seq v]
+ Data.GenValidity.Set: shrinkSetOf :: Ord v => (v -> [v]) -> Set v -> [Set v]
+ Data.GenValidity.Tree: shrinkTreeOf :: (a -> [a]) -> Tree a -> [Tree a]
Files
- CHANGELOG.md +6/−0
- bench/Main.hs +24/−8
- genvalidity-containers.cabal +4/−4
- src/Data/GenValidity/Map.hs +5/−1
- src/Data/GenValidity/Sequence.hs +5/−1
- src/Data/GenValidity/Set.hs +6/−2
- src/Data/GenValidity/Tree.hs +6/−2
CHANGELOG.md view
@@ -1,5 +1,11 @@ # Changelog +## [1.0.0.1] - 2022-08-30++### Added++* `shrinkSetOf`, `shrinkSeqOf`, `shrinkMapOf`, and `shrinkTreeOf`+ ## [1.0.0.0] - 2021-11-20 ### Changed
bench/Main.hs view
@@ -17,12 +17,28 @@ main :: IO () main = Criterion.defaultMain- [ genValidBench @(Set Int),- genValidBench @(Seq Int),- genValidBench @(Tree Int),- genValidBench @(Forest Int),- genValidBench @(Map Int Int),- genBenchSizes "genSeqOf" $ genSeqOf (genValid :: Gen Int),- genBenchSizes "genSetOf" $ genSetOf (genValid :: Gen Int),- genBenchSizes "genMapOf" $ genMapOf (genValid :: Gen (Int, Int))+ [ bgroup+ "generators"+ [ genValidBench @(Set Int),+ genValidBench @(Seq Int),+ genValidBench @(Tree Int),+ genValidBench @(Forest Int),+ genValidBench @(Map Int Int),+ genBench "genSeqOf" $ genSeqOf (genValid :: Gen Int),+ genBench "genSetOf" $ genSetOf (genValid :: Gen Int),+ genBench "genMapOf" $ genMapOf (genValid :: Gen (Int, Int)),+ genBench "genTreeOf" $ genTreeOf (genValid :: Gen (Int, Int))+ ],+ bgroup+ "shrinkers"+ [ shrinkValidBench @(Set Int),+ shrinkValidBench @(Seq Int),+ shrinkValidBench @(Tree Int),+ shrinkValidBench @(Forest Int),+ shrinkValidBench @(Map Int Int),+ shrinkBench "shrinkSeqOf" $ shrinkSeqOf (shrinkValid :: Int -> [Int]),+ shrinkBench "shrinkSetOf" $ shrinkSetOf (shrinkValid :: Int -> [Int]),+ shrinkBench "shrinkMapOf" $ shrinkMapOf (shrinkValid :: (Int, Int) -> [(Int, Int)]),+ shrinkBench "shrinkTreeOf" $ shrinkTreeOf (shrinkValid :: Int -> [Int])+ ] ]
genvalidity-containers.cabal view
@@ -1,18 +1,18 @@ cabal-version: 1.12 --- This file has been generated from package.yaml by hpack version 0.34.4.+-- This file has been generated from package.yaml by hpack version 0.34.7. -- -- see: https://github.com/sol/hpack name: genvalidity-containers-version: 1.0.0.0+version: 1.0.0.1 synopsis: GenValidity support for containers category: Testing homepage: https://github.com/NorfairKing/validity#readme bug-reports: https://github.com/NorfairKing/validity/issues author: Tom Sydney Kerckhove maintainer: syd@cs-syd.eu-copyright: Copyright: (c) 2016-2021 Tom Sydney Kerckhove+copyright: Copyright: (c) 2016-2022 Tom Sydney Kerckhove license: MIT license-file: LICENSE build-type: Simple@@ -84,5 +84,5 @@ , criterion , genvalidity , genvalidity-containers- , genvalidity-criterion+ , genvalidity-criterion >=1.1.0.0 default-language: Haskell2010
src/Data/GenValidity/Map.hs view
@@ -2,6 +2,7 @@ module Data.GenValidity.Map ( genMapOf,+ shrinkMapOf, ) where @@ -13,7 +14,10 @@ instance (Show k, Ord k, GenValid k, GenValid v) => GenValid (Map k v) where genValid = genMapOf genValid- shrinkValid = fmap M.fromList . shrinkValid . M.toList+ shrinkValid = shrinkMapOf shrinkValid genMapOf :: Ord k => Gen (k, v) -> Gen (Map k v) genMapOf g = M.fromList <$> genListOf g++shrinkMapOf :: Ord k => ((k, v) -> [(k, v)]) -> Map k v -> [Map k v]+shrinkMapOf shrinker = fmap M.fromList . shrinkList shrinker . M.toList
src/Data/GenValidity/Sequence.hs view
@@ -2,6 +2,7 @@ module Data.GenValidity.Sequence ( genSeqOf,+ shrinkSeqOf, ) where @@ -14,7 +15,10 @@ instance GenValid v => GenValid (Seq v) where genValid = genSeqOf genValid- shrinkValid = fmap S.fromList . shrinkValid . toList+ shrinkValid = shrinkSeqOf shrinkValid genSeqOf :: Gen v -> Gen (Seq v) genSeqOf g = S.fromList <$> genListOf g++shrinkSeqOf :: (v -> [v]) -> Seq v -> [Seq v]+shrinkSeqOf shrinker = fmap S.fromList . shrinkList shrinker . toList
src/Data/GenValidity/Set.hs view
@@ -2,6 +2,7 @@ module Data.GenValidity.Set ( genSetOf,+ shrinkSetOf, genSeperate, genSeperateFor, genSeperateForNE,@@ -20,11 +21,14 @@ import Test.QuickCheck instance (Ord v, GenValid v) => GenValid (Set v) where- genValid = S.fromList <$> genValid- shrinkValid = fmap S.fromList . shrinkValid . S.toList+ genValid = genSetOf genValid+ shrinkValid = shrinkSetOf shrinkValid genSetOf :: Ord v => Gen v -> Gen (Set v) genSetOf g = S.fromList <$> genListOf g++shrinkSetOf :: Ord v => (v -> [v]) -> Set v -> [Set v]+shrinkSetOf shrinker = fmap S.fromList . shrinkList shrinker . S.toList genValidSeperateFor :: (GenValid b, Eq b) => [a] -> Gen [(b, a)] genValidSeperateFor = genSeperateFor genValid
src/Data/GenValidity/Tree.hs view
@@ -1,6 +1,6 @@ {-# OPTIONS_GHC -fno-warn-orphans #-} -module Data.GenValidity.Tree where+module Data.GenValidity.Tree (genTreeOf, shrinkTreeOf) where import Data.GenValidity import Data.List.NonEmpty (NonEmpty (..))@@ -11,7 +11,11 @@ instance GenValid a => GenValid (Tree a) where genValid = genTreeOf genValid- shrinkValid (Node v ts) = [Node v' ts' | (v', ts') <- shrinkValid (v, ts)]+ shrinkValid = shrinkTreeOf shrinkValid++shrinkTreeOf :: (a -> [a]) -> Tree a -> [Tree a]+shrinkTreeOf shrinker (Node v ts) =+ [Node v' ts' | (v', ts') <- shrinkTuple shrinker (shrinkList (shrinkTreeOf shrinker)) (v, ts)] -- | Generate a tree of values that are generated as specified. --