feat: QuickCheck testing
This commit is contained in:
parent
cbccc8253b
commit
95f86c8660
5 changed files with 101 additions and 2 deletions
24
test/Spec.hs
24
test/Spec.hs
|
@ -1,2 +1,24 @@
|
|||
{-# LANGUAGE TemplateHaskell #-}
|
||||
import Test.QuickCheck.All (quickCheckAll)
|
||||
import System.Exit (exitFailure, exitSuccess)
|
||||
|
||||
import qualified Data.Either as Either
|
||||
import qualified Language.Brainfuck as Brainfuck
|
||||
import qualified Arbitrary.ValidBrainfuckProgram as ValidBrainfuckProgram
|
||||
import qualified Arbitrary.InvalidBrainfuckProgram as InValidBrainfuckProgram
|
||||
|
||||
prop_acceptValidPrograms :: ValidBrainfuckProgram.ValidBrainfuckProgram -> Bool
|
||||
prop_acceptValidPrograms = Either.isRight . Brainfuck.parse . ValidBrainfuckProgram.get
|
||||
|
||||
prop_rejectInvalidPrograms :: InValidBrainfuckProgram.InvalidBrainfuckProgram -> Bool
|
||||
prop_rejectInvalidPrograms = Either.isLeft . Brainfuck.parse . InValidBrainfuckProgram.get
|
||||
|
||||
return [] -- template haskell guard
|
||||
runQuickCheck :: IO Bool
|
||||
runQuickCheck = $quickCheckAll
|
||||
|
||||
main :: IO ()
|
||||
main = putStrLn "Test suite not yet implemented"
|
||||
main = do
|
||||
quickCheckGood <- runQuickCheck
|
||||
|
||||
if quickCheckGood then exitSuccess else exitFailure
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue