hspec-smallcheck-0.5.0: src/Test/Hspec/SmallCheck/Types.hs
module Test.Hspec.SmallCheck.Types where
import Prelude ()
import Test.Hspec.SmallCheck.Compat
import Data.List
import Test.Hspec.Core.Spec (Location(..))
data Result = Failure (Maybe Location) Reason
deriving (Eq, Show, Read)
data Reason =
Reason String
| ExpectedActual String String String
deriving (Eq, Show, Read)
parseResult :: String -> (String, Maybe Result)
parseResult xs = case [(x, Just y) | (x, Just y) <- zip (inits xs) (map readMaybe $ tails xs)] of
r : _ -> r
[] -> (xs, Nothing)
concatPrefix :: String -> String -> Maybe String
concatPrefix a b = case filter (not . null) $ [a, b] of
[] -> Nothing
xs -> Just (intercalate "\n" xs)