feat[compressed]: ability to uncompress

This commit is contained in:
vegowotenks 2025-06-23 14:00:21 +02:00
parent f05da30c8a
commit 40ce94ab7b
3 changed files with 41 additions and 2 deletions

View file

@ -11,6 +11,7 @@ import qualified Data.Either as Either
import qualified Language.Brainfuck as Brainfuck
import qualified Arbitrary.ValidBrainfuckText as ValidBrainfuckText
import qualified Arbitrary.InvalidBrainfuckText as InValidBrainfuckText
import qualified Language.Brainfuck.Instruction.Compressed as CompressedInstruction
-- | ValidBrainfuckText will produce a text with comments, it must be parsed correctly
prop_acceptValidTexts :: ValidBrainfuckText.ValidBrainfuckText -> Bool
@ -24,6 +25,10 @@ prop_rejectInvalidTexts = Either.isLeft . Brainfuck.parse . InValidBrainfuckText
prop_renderParseInverse :: Vector Instruction -> Bool
prop_renderParseInverse source = Right source == (Brainfuck.parse . Brainfuck.render $ source)
-- | Compressing and Uncompressing should be inverse
prop_CompressUncompressInverse :: Vector Instruction -> Bool
prop_CompressUncompressInverse source = source == CompressedInstruction.uncompress . CompressedInstruction.compress
return [] -- template haskell guard
runQuickCheck :: IO Bool
runQuickCheck = $quickCheckAll