diff --git a/test/Spec.hs b/test/Spec.hs index 238a797..2d96419 100644 --- a/test/Spec.hs +++ b/test/Spec.hs @@ -12,12 +12,15 @@ import qualified Language.Brainfuck as Brainfuck import qualified Arbitrary.ValidBrainfuckText as ValidBrainfuckText import qualified Arbitrary.InvalidBrainfuckText as InValidBrainfuckText -prop_acceptValidTexts :: ValidBrainfuckText.ValidBrainfuckText -> Bool -prop_acceptValidTexts = Either.isRight . Brainfuck.parse . ValidBrainfuckText.get +-- | ValidBrainfuckText will produce a text with comments, it must be parsed correctly +prop_acceptValidTexts :: ValidBrainfuckText.ValidBrainfuckText -> Bool +prop_acceptValidTexts = Either.isRight . Brainfuck.parse . ValidBrainfuckText.get +-- | InvalidBrainfuckText will insert unbalanced brackets, they must be rejected prop_rejectInvalidTexts :: InValidBrainfuckText.InvalidBrainfuckText -> Bool prop_rejectInvalidTexts = Either.isLeft . Brainfuck.parse . InValidBrainfuckText.get +-- | Does rendering and parsing a vector of instructions yield the exact same result? prop_renderParseInverse :: Vector Instruction -> Bool prop_renderParseInverse source = Right source == (Brainfuck.parse . Brainfuck.render $ source)