From 7bacf5efc4eda58d56fa1d8935692274d797cd4a Mon Sep 17 00:00:00 2001 From: George Thomas Date: Mon, 5 Jan 2026 15:13:18 +0000 Subject: [PATCH] Improve error handling in Day 4 extra tests --- haskell/Puzzles/Day4.hs | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/haskell/Puzzles/Day4.hs b/haskell/Puzzles/Day4.hs index 2f4e9c9..7a60c4a 100644 --- a/haskell/Puzzles/Day4.hs +++ b/haskell/Puzzles/Day4.hs @@ -35,13 +35,16 @@ puzzle = pure $ Seq.fromList $ takeUntil noneAccessible frameStream ) let nFrames = if isRealData then 58 else 9 + lookupFrame n frames = + maybe (fail $ "frame list index not found: " <> show n) pure $ + Seq.lookup n frames in map ( \n -> TestTree (mkTestName $ show n) - ( \frames -> - golden (path <> "frames/" <> show n) $ - maybe "frame list too short!" drawGrid (Seq.lookup n frames) + ( \frames -> do + g <- lookupFrame n frames + golden (path <> "frames/" <> show n) $ drawGrid g ) [] ) @@ -50,7 +53,7 @@ puzzle = "end" ( \frames -> do assertEqual (nFrames + 1) (Seq.length frames) - Just g <- pure $ Seq.lookup nFrames frames + g <- lookupFrame nFrames frames assert "accessible tile found" $ noneAccessible g ) []