Fixed some typing relating to QuickCheck and the TestMonad to avoid type ambiguities in future
This commit is contained in:
parent
2ea7c37abe
commit
03eab6c142
|
@ -740,7 +740,7 @@ generateEquationInput
|
||||||
-- but got: [(y1 * (((y2 * y2) + x1) REM x3)),(y4 * y4),x10,x2,x3,x6,x7,x8,x9,((y4 * y4) + 8*x3 / 2)]
|
-- but got: [(y1 * (((y2 * y2) + x1) REM x3)),(y4 * y4),x10,x2,x3,x6,x7,x8,x9,((y4 * y4) + 8*x3 / 2)]
|
||||||
|
|
||||||
qcTestMakeEquations :: [LabelledQuickCheckTest]
|
qcTestMakeEquations :: [LabelledQuickCheckTest]
|
||||||
qcTestMakeEquations = [("Turning Code Into Equations", scaleQC (20,100,400,1000) prop)]
|
qcTestMakeEquations = [("Turning Code Into Equations", scaleQC (20,100,400,1000) (runQCTest . prop))]
|
||||||
where
|
where
|
||||||
prop :: MakeEquationInput -> QCProp
|
prop :: MakeEquationInput -> QCProp
|
||||||
prop (MEI mei) = testMakeEquation mei
|
prop (MEI mei) = testMakeEquation mei
|
||||||
|
@ -1056,7 +1056,7 @@ instance Arbitrary OmegaTestInput where
|
||||||
arbitrary = generateProblem >>* OMI
|
arbitrary = generateProblem >>* OMI
|
||||||
|
|
||||||
qcOmegaEquality :: [LabelledQuickCheckTest]
|
qcOmegaEquality :: [LabelledQuickCheckTest]
|
||||||
qcOmegaEquality = [("Omega Test Equality Solving", scaleQC (40,200,2000,10000) prop)]
|
qcOmegaEquality = [("Omega Test Equality Solving", scaleQC (40,200,2000,10000) (runQCTest . prop))]
|
||||||
where
|
where
|
||||||
prop :: OmegaTestInput -> QCProp
|
prop :: OmegaTestInput -> QCProp
|
||||||
prop (OMI (ans,(eq,ineq))) = omegaCheck actAnswer
|
prop (OMI (ans,(eq,ineq))) = omegaCheck actAnswer
|
||||||
|
|
|
@ -55,11 +55,12 @@ compareForResult msg showFunc cmpFunc exp act
|
||||||
(*&&*) :: TestMonad m r => m () -> m () -> m ()
|
(*&&*) :: TestMonad m r => m () -> m () -> m ()
|
||||||
(*&&*) = (>>)
|
(*&&*) = (>>)
|
||||||
|
|
||||||
instance (TestMonad m r, Testable r) => Testable (m ()) where
|
|
||||||
property = property . runTest
|
|
||||||
|
|
||||||
type QCProp = Either Result ()
|
type QCProp = Either Result ()
|
||||||
|
|
||||||
|
-- | A type-constrained version of runTest for QuickCheck Testable things:
|
||||||
|
runQCTest :: QCProp -> Result
|
||||||
|
runQCTest = runTest
|
||||||
|
|
||||||
testEqual :: (Show a, Eq a, TestMonad m r) => String -> a -> a -> m ()
|
testEqual :: (Show a, Eq a, TestMonad m r) => String -> a -> a -> m ()
|
||||||
testEqual msg = compareForResult msg show (==)
|
testEqual msg = compareForResult msg show (==)
|
||||||
|
|
||||||
|
|
|
@ -759,9 +759,9 @@ deepCheck test level = (flip check) test $ configForSize $
|
||||||
testModify :: [LabelledQuickCheckTest]
|
testModify :: [LabelledQuickCheckTest]
|
||||||
testModify =
|
testModify =
|
||||||
[
|
[
|
||||||
("Control-Flow Graph Identity Transformations", deepCheck prop_Id)
|
("Control-Flow Graph Identity Transformations", deepCheck (runTest . prop_Id))
|
||||||
,("Control-Flow Graph Replacement Transformations", deepCheck prop_Rep)
|
,("Control-Flow Graph Replacement Transformations", deepCheck (runTest . prop_Rep))
|
||||||
,("Random List Generation", deepCheck prop_gennums)
|
,("Random List Generation", deepCheck (runTest . prop_gennums))
|
||||||
]
|
]
|
||||||
where
|
where
|
||||||
-- | Checks that applying any set (from the powerset of identity functions) of identity functions
|
-- | Checks that applying any set (from the powerset of identity functions) of identity functions
|
||||||
|
|
Loading…
Reference in New Issue
Block a user