Minor refactor

This commit is contained in:
George Thomas 2025-12-02 08:55:32 +00:00
parent ea6ca4158c
commit b1bd83f089

View File

@ -23,13 +23,14 @@ puzzleTest :: Puzzle a -> TestTree
puzzleTest p = puzzleTest p =
testGroup pt $ testGroup pt $
["examples", "real"] <&> \t -> ["examples", "real"] <&> \t ->
withResource (maybe (fail "parse failure") pure . p.parse =<< readFile ("inputs/" <> t <> "/" <> pt)) mempty \input -> withResource (parseFile $ "inputs/" <> t <> "/" <> pt) mempty \input ->
testGroup t $ testGroup t $
[("1", p.part1), ("2", p.part2)] <&> \(n, pp) -> [("1", p.part1), ("2", p.part2)] <&> \(n, pp) ->
goldenVsString n ("outputs/" <> t <> "/" <> pt <> "/" <> n) $ goldenVsString n ("outputs/" <> t <> "/" <> pt <> "/" <> n) $
BL.fromStrict . encodeUtf8 . pp.solve <$> input BL.fromStrict . encodeUtf8 . pp.solve <$> input
where where
pt = show p.number pt = show p.number
parseFile fp = maybe (fail "parse failure") pure . p.parse =<< readFile fp
data Puzzle input = Puzzle data Puzzle input = Puzzle
{ number :: Word { number :: Word