From 38eb10ed45ca5983baf84afb3247e4bd243555bc Mon Sep 17 00:00:00 2001 From: Nathan McCarty Date: Tue, 6 Dec 2022 01:46:55 -0500 Subject: [PATCH] Day 6: Cleanup --- 06/Main.idr | 63 ++++++++++------------------------------------------- 1 file changed, 12 insertions(+), 51 deletions(-) diff --git a/06/Main.idr b/06/Main.idr index 390668e..d9803f9 100644 --- a/06/Main.idr +++ b/06/Main.idr @@ -20,56 +20,17 @@ findStart n cs = Nothing => Nothing (Just x) => Just $ finToNat x + n -findStartOfPacket : List Char -> Maybe Nat -findStartOfPacket = findStart 4 - -findStartOfMessage : List Char -> Maybe Nat -findStartOfMessage = findStart 14 - -testCases : List (String, Nat, Nat) -testCases = [("mjqjpqmgbljsphdztnvjfqwrcgsmlb", 7, 19), - ("bvwbjplbgvbhsrlpgdmjqwftvncz", 5, 23), - ("nppdvjthqldpwncqszvftbrmjlhg", 6, 23), - ("nznrnfrfntjfmvfwmzdfjlvtqnbhcprsg", 10, 29), - ("zcfzfwzzqfrljwzlrfnpqdbhtmscgvjw", 11, 26)] - -testCase : (String, Nat, Nat) -> IO Bool -testCase (string, start, message) = - do putStrLn $ "Test Case: " ++ string - putStrLn $ "Expected Start of packet: " ++ show start - putStrLn $ "Expected Start of message: " ++ show message - let result = findStartOfPacket (unpack string) - let messageResult = findStartOfMessage (unpack string) - putStrLn $ "Evaluated start of packet: " ++ show result - putStrLn $ "Evaluated start of message: " ++ show messageResult - let result = not (result == Just start) - result <- if result - then do putStrLn "Test Failed!!!" - pure True - else if messageResult == Just message - then do putStrLn "Test Passed" - pure False - else do putStrLn "Test Failed!!!" - pure True - putStrLn "" - pure result - main : IO () main = - do testsPart1 <- traverse testCase testCases - if or . map (\x => Delay x) $ testsPart1 - then putStrLn "Failed tests" - else - do file <- readFile "input" - case file of - Right contents => - do putStr "Part 1: " - putStrLn $ case findStartOfPacket (unpack contents) of - Just start => show start - Nothing => "Failed to find start" - putStr "Part 2: " - putStrLn $ case findStartOfMessage (unpack contents) of - Just start => show start - Nothing => "Failed to find start" - - Left err => printLn err + do file <- readFile "input" + case file of + Right contents => + do putStr "Part 1: " + putStrLn $ case findStart 4 (unpack contents) of + Just start => show start + Nothing => "Failed to find start" + putStr "Part 2: " + putStrLn $ case findStart 14 (unpack contents) of + Just start => show start + Nothing => "Failed to find start" + Left err => printLn err