Parsing a string automatically generated by QuickCheck can be useful in many
cases. A function for doing this is added to the common test functions.
Signed-off-by: Michele Tartara <mtartara@google.com>
Reviewed-by: Helga Velroyen <helgav@google.com>
, readTestData
, genSample
, testParser
+ , genPropParser
, genNonNegative
) where
Left msg -> HUnit.assertFailure $ "Parsing failed: " ++ msg
Right obtained -> HUnit.assertEqual fileName expectedContent obtained
+-- | Generate a property test for parsers.
+genPropParser :: (Show a, Eq a) => Parser a -> String -> a -> Property
+genPropParser parser s expected =
+ case parseOnly parser $ pack s of
+ Left msg -> failTest $ "Parsing failed: " ++ msg
+ Right obtained -> expected ==? obtained
+
-- | Generate an arbitrary non negative integer number
genNonNegative :: Gen Int
genNonNegative =