packages feed

quickcheck-dynamic 3.0.1 → 3.0.2

raw patch · 5 files changed

+21/−6 lines, 5 filesPVP: major bump suggested

API removals or changes: PVP suggests a major version bump

API changes (from Hackage documentation)

- Test.QuickCheck.StateModel.Variables: data HasNoVariables a
+ Test.QuickCheck.StateModel.Variables: HasNoVariables :: a -> HasNoVariables a
+ Test.QuickCheck.StateModel.Variables: instance Test.QuickCheck.StateModel.Variables.HasVariables GHC.Word.Word16
+ Test.QuickCheck.StateModel.Variables: instance Test.QuickCheck.StateModel.Variables.HasVariables GHC.Word.Word32
+ Test.QuickCheck.StateModel.Variables: instance Test.QuickCheck.StateModel.Variables.HasVariables GHC.Word.Word64
+ Test.QuickCheck.StateModel.Variables: instance Test.QuickCheck.StateModel.Variables.HasVariables GHC.Word.Word8
+ Test.QuickCheck.StateModel.Variables: newtype HasNoVariables a
+ Test.QuickCheck.StateModel.Variables: unsafeNextVarIndex :: VarContext -> Int
- Test.QuickCheck.DynamicLogic: forAllUniqueDL :: (DynLogicModel s, Testable a) => Int -> Annotated s -> DL s () -> (Actions s -> a) -> Property
+ Test.QuickCheck.DynamicLogic: forAllUniqueDL :: (DynLogicModel s, Testable a) => Annotated s -> DL s () -> (Actions s -> a) -> Property
- Test.QuickCheck.DynamicLogic.Internal: forAllUniqueScripts :: (DynLogicModel s, Testable a) => Int -> Annotated s -> DynFormula s -> (Actions s -> a) -> Property
+ Test.QuickCheck.DynamicLogic.Internal: forAllUniqueScripts :: (DynLogicModel s, Testable a) => Annotated s -> DynFormula s -> (Actions s -> a) -> Property

Files

CHANGELOG.md view
@@ -9,6 +9,13 @@  ## UNRELEASED +## 3.0.2 - 2023-02-17++* Added instances of `HasVariables` for Word types+* Exported definition of `HasNoVariables` to make it useable+  with deriving via in downstream packages (whoops!)+* Fixed impossible to use `nextVar` arguments to `forAllUniqueDL`+ ## 3.0.1 - 2023-02-15  * Remove template haskell dependency
quickcheck-dynamic.cabal view
@@ -1,6 +1,6 @@ cabal-version:   2.2 name:            quickcheck-dynamic-version:         3.0.1+version:         3.0.2 license:         Apache-2.0 license-files:   LICENSE
src/Test/QuickCheck/DynamicLogic.hs view
@@ -125,12 +125,11 @@  forAllUniqueDL ::   (DL.DynLogicModel s, Testable a) =>-  Int ->   Annotated s ->   DL s () ->   (Actions s -> a) ->   Property-forAllUniqueDL nextVar initState d = DL.forAllUniqueScripts nextVar initState (runDL initState d)+forAllUniqueDL initState d = DL.forAllUniqueScripts initState (runDL initState d)  forAllDL ::   (DL.DynLogicModel s, Testable a) =>
src/Test/QuickCheck/DynamicLogic/Internal.hs view
@@ -325,14 +325,14 @@ -- | `Property` function suitable for formulae without choice. forAllUniqueScripts ::   (DynLogicModel s, Testable a) =>-  Int ->   Annotated s ->   DynFormula s ->   (Actions s -> a) ->   Property-forAllUniqueScripts n s f k =+forAllUniqueScripts s f k =   QC.withSize $ \sz ->     let d = unDynFormula f sz+        n = unsafeNextVarIndex $ vars s      in case generate chooseUniqueNextStep d n s 500 of           Nothing -> counterexample "Generating Non-unique script in forAllUniqueScripts" False           Just test -> validDLTest d test . applyMonitoring d test . property $ k (scriptFromDL test)
src/Test/QuickCheck/StateModel/Variables.hs view
@@ -6,7 +6,7 @@   Var,   Any (..),   HasVariables (..),-  HasNoVariables,+  HasNoVariables (..),   VarContext,   mkVar,   ctxAtType,@@ -16,6 +16,7 @@   isWellTyped,   allVariables,   unsafeCoerceVar,+  unsafeNextVarIndex ) where  import Data.Data@@ -26,6 +27,7 @@ import Data.Set (Set) import Data.Set qualified as Set import GHC.Generics+import GHC.Word import Test.QuickCheck as QC  -- | A symbolic variable for a value of type `a`@@ -65,6 +67,10 @@ deriving via HasNoVariables Integer instance HasVariables Integer deriving via HasNoVariables Int instance HasVariables Int deriving via HasNoVariables Char instance HasVariables Char+deriving via HasNoVariables Word8 instance HasVariables Word8+deriving via HasNoVariables Word16 instance HasVariables Word16+deriving via HasNoVariables Word32 instance HasVariables Word32+deriving via HasNoVariables Word64 instance HasVariables Word64  data Any f where   Some :: (Typeable a, Eq (f a)) => f a -> Any f@@ -119,6 +125,9 @@  unsafeCoerceVar :: Var a -> Var b unsafeCoerceVar (Var i) = Var i++unsafeNextVarIndex :: VarContext -> Int+unsafeNextVarIndex (VarCtx vs) = 1 + maximum (0 : [ i | Some (Var i) <- Set.toList vs ])  instance {-# OVERLAPPABLE #-} (Generic a, GenericHasVariables (Rep a)) => HasVariables a