-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/
-- | Automated Mutation Testing
--
-- This package defines a mutation analysis library for haskell programs.
-- It does this by parsing the haskell source, and replacing a few of the
-- common haskell functions and operators with other, but similar
-- operators and functions, and running the testsuite to check whether
-- the difference has been detected. Currently, it supports QuickCheck,
-- HUnit and Hspec tests.
@package MuCheck
@version 0.1.1.0
module MuCheck.Utils.Common
-- | The choose function generates subsets of a given size
choose :: [b] -> Int -> [[b]]
-- | The genFileNames function lazily generates filenames of mutants
genFileNames :: String -> [String]
-- | The replace function replaces first element in a list given old
-- and new values as a pair
replace :: Eq a => (a, a) -> [a] -> [a]
-- | The safeHead function safely extracts head of a list using
-- Maybe
safeHead :: [a] -> Maybe a
module MuCheck.Utils.Print
-- | simple wrapper for adding a % at the end.
(./.) :: (Show a, Integral a) => a -> a -> [Char]
-- | join lines together
showAS :: [String] -> String
-- | make lists into lines in text.
showA :: Show a => [a] -> String
module MuCheck.Interpreter
type InterpreterOutput a = Either InterpreterError (String, a)
checkQuickCheckOnMutants :: [String] -> String -> [String] -> String -> IO [Result]
checkHUnitOnMutants :: [String] -> String -> [String] -> String -> IO [Counts]
checkHspecOnMutants :: [String] -> String -> [String] -> String -> IO [Summary]
mutantCheckSummary :: Summarizable a => [String] -> String -> [String] -> FilePath -> IO [a]
runCodeOnMutants :: Typeable * t => [[Char]] -> [Char] -> [Char] -> IO [Either InterpreterError (String, t)]
evalMethod :: (MonadInterpreter m, Typeable t) => String -> String -> String -> m (String, t)
data TSum
TSum :: Int -> Int -> Int -> Int -> Int -> String -> TSum
tsum_numMutants :: TSum -> Int
tsum_loadError :: TSum -> Int
tsum_notKilled :: TSum -> Int
tsum_killed :: TSum -> Int
tsum_others :: TSum -> Int
tsum_log :: TSum -> String
data TSSum
TSSum :: Int -> Int -> Int -> String -> TSSum
tssum_numMutants :: TSSum -> Int
tssum_alive :: TSSum -> Int
tssum_errors :: TSSum -> Int
tssum_log :: TSSum -> String
type MutantFilename = String
class Typeable s => Summarizable s
testSummary :: Summarizable s => [MutantFilename] -> [InterpreterOutput s] -> TSum
suiteSummary :: Summarizable s => [[InterpreterOutput s]] -> TSSum
isSuccess :: Summarizable s => s -> Bool
multipleCheckSummary :: (Show b, Show a, Ord a) => ((a, b) -> Bool) -> [[Either a1 (a, b)]] -> TSSum
instance Typeable Summary
instance Typeable Counts
instance Typeable Result
instance Summarizable Summary
instance Summarizable Result
instance Summarizable Counts
module MuCheck.MuOp
data MuOp
(==>*) :: Mutable a => a -> [a] -> [MuOp]
(*==>*) :: Mutable a => [a] -> [a] -> [MuOp]
(~~>) :: (MonadPlus m, Eq a) => a -> a -> (a -> m a)
mkMp' :: (MonadPlus m, Typeable * a) => MuOp -> a -> m a
class Mutable a
(==>) :: Mutable a => a -> a -> MuOp
instance Mutable GuardedRhs
instance Mutable Literal
instance Mutable Decl
instance Mutable Exp
instance Mutable QOp
instance Mutable QName
instance Mutable Name
instance Show MuOp
module MuCheck.Operators
allOps :: [MuOp]
comparators :: [MuOp]
predNums :: [MuOp]
binAriths :: [MuOp]
arithLists :: [MuOp]
(<$>) :: (Mutable a1, Eq a1) => (a -> a1) -> [a] -> [MuOp]
module MuCheck.StdArgs
data GenerationMode
FirstOrderOnly :: GenerationMode
FirstAndHigherOrder :: GenerationMode
data StdArgs
StdArgs :: [MuOp] -> Bool -> Bool -> Bool -> Bool -> Int -> GenerationMode -> StdArgs
muOps :: StdArgs -> [MuOp]
doMutatePatternMatches :: StdArgs -> Bool
doMutateValues :: StdArgs -> Bool
doNegateIfElse :: StdArgs -> Bool
doNegateGuards :: StdArgs -> Bool
maxNumMutants :: StdArgs -> Int
genMode :: StdArgs -> GenerationMode
stdArgs :: StdArgs
instance Eq GenerationMode
instance Show GenerationMode
instance Show StdArgs
module MuCheck.Utils.Syb
selectMany :: (Data a, Typeable b) => (b -> Bool) -> a -> [b]
selectOne :: (Typeable * a, Data a1) => (a -> Bool) -> a1 -> Maybe a
relevantOps :: (Data a, Eq a) => a -> [MuOp] -> [MuOp]
once :: MonadPlus m => GenericM m -> GenericM m
once' :: (forall a. Data a => a -> Maybe a) -> (forall a. Data a => a -> a)
module MuCheck.Mutation
genMutants :: String -> FilePath -> IO Int
genMutantsWith :: StdArgs -> String -> FilePath -> IO Int
mutates :: [MuOp] -> Decl -> [Decl]
mutatesN :: [MuOp] -> Decl -> Int -> [Decl]
mutate :: MuOp -> Decl -> [Decl]
isFunction :: Name -> GenericQ Bool
isFunctionD :: String -> Decl -> Bool
permMatches :: Decl -> [MuOp]
removeOnePMatch :: Decl -> [MuOp]
removeOneElem :: Eq t => [t] -> [[t]]
parseModuleFromFile :: String -> Module
getDecls :: Module -> [Decl]
extractStrings :: [Match] -> [String]
getFuncNames :: [Decl] -> [String]
putDecls :: Module -> [Decl] -> Module
getName :: Module -> String
selectValOps :: (Data a, Eq a, Typeable b, Mutable b, Eq b) => (b -> Bool) -> [b -> b] -> a -> [MuOp]
selectValOps' :: (Data a, Eq a, Typeable b, Mutable b) => (b -> Bool) -> (b -> [b]) -> a -> [MuOp]
selectIntOps :: (Data a, Eq a) => a -> [MuOp]
selectIfElseBoolNegOps :: (Data a, Eq a) => a -> [MuOp]
selectGuardedBoolNegOps :: (Data a, Eq a) => a -> [MuOp]