Show diff for golden test failures

This commit is contained in:
George Thomas 2025-12-09 16:47:12 +00:00
parent 2862457529
commit 6e851d63f0
3 changed files with 6 additions and 2 deletions

View File

@ -43,7 +43,7 @@ main =
withResource (parseFile $ "../inputs/" <> t <> "/" <> pt) mempty \input ->
testGroup pt $
( zip (map show [1 :: Int ..]) parts <&> \(n, pp) ->
goldenVsString n ("../outputs/" <> t <> "/" <> pt <> "/" <> n) $
goldenVsStringDiff n diffCommand ("../outputs/" <> t <> "/" <> pt <> "/" <> n) $
TL.encodeUtf8 . pp <$> input
)
<> [testGroup "extra" $ extraTests isRealData ("../outputs/" <> t <> "/" <> pt <> "/extra/") input]

View File

@ -41,6 +41,7 @@ module Pre (
allUnorderedPairs,
adjacentPairs,
sortPair,
diffCommand,
)
where
@ -122,3 +123,6 @@ adjacentPairs = \case
sortPair :: (Ord a) => (a, a) -> (a, a)
sortPair (a, b) = if a <= b then (a, b) else (b, a)
diffCommand :: FilePath -> FilePath -> [String]
diffCommand a b = ["diff", "--color=always", a, b]

View File

@ -31,7 +31,7 @@ puzzle =
let frames = Seq.fromList . takeUntil noneAccessible . fmap snd . generateFrames . mkGrid <$> input
nFrames = if isRealData then 58 else 9
in ( [0 .. nFrames] <&> \n ->
goldenVsString (show n) (path <> "frames/" <> show n) $
goldenVsStringDiff (show n) diffCommand (path <> "frames/" <> show n) $
TL.encodeUtf8 . maybe "frame list too short!" drawGrid . Seq.lookup n <$> frames
)
<> [ testCase "end" do