day2: Write a basic unit test for part 1

main
Tristan Daniël Maat 2021-12-03 21:33:12 +00:00
parent 418c7f13fb
commit a497af5d30
Signed by: tlater
GPG Key ID: 49670FD774E43268
1 changed files with 21 additions and 5 deletions

View File

@ -1,11 +1,12 @@
import Control.Exception (assert)
main :: IO ()
main = do
instructions <- getContents
let
parsed = parseInstructions instructions
location = navigate parsed
solution1 = uncurry (*) location
print solution1
putStrLn (solution1 instructions)
solution1 :: String -> String
solution1 input = show (uncurry (*) (navigate (parseInstructions input)))
parseInstructions :: String -> [(Int, Int)]
parseInstructions instructions =
@ -23,3 +24,18 @@ navigate instructions =
where
sumTuples :: (Int, Int) -> (Int, Int) -> (Int, Int)
sumTuples (a, b) (c, d) = (a + c, b + d)
-- Tests
testInput1 :: String
testInput1 = unlines [
"forward 5",
"down 5",
"forward 8",
"up 3",
"down 8",
"forward 2"
]
test1 :: String
test1 = assert ((solution1 testInput1) == "150") "success"