Add some useful inputs to extraTests
This commit is contained in:
parent
2f35bd9251
commit
f91824a6a9
@ -1,7 +1,9 @@
|
|||||||
module Main (main) where
|
module Main (main) where
|
||||||
|
|
||||||
|
import Data.Bool
|
||||||
import Data.ByteString.Lazy qualified as BL
|
import Data.ByteString.Lazy qualified as BL
|
||||||
import Data.Functor
|
import Data.Functor
|
||||||
|
import Data.List.Extra
|
||||||
import Data.Text.Encoding (encodeUtf8)
|
import Data.Text.Encoding (encodeUtf8)
|
||||||
import Data.Text.IO qualified as T
|
import Data.Text.IO qualified as T
|
||||||
import Puzzle
|
import Puzzle
|
||||||
@ -19,7 +21,7 @@ main =
|
|||||||
defaultMain
|
defaultMain
|
||||||
. localOption (Always :: UseColor)
|
. localOption (Always :: UseColor)
|
||||||
. testGroup "tests"
|
. testGroup "tests"
|
||||||
$ ["examples", "real"] <&> \t ->
|
$ enumerate <&> \isRealData@(bool "examples" "real" -> t) ->
|
||||||
testGroup t $
|
testGroup t $
|
||||||
[ Day1.puzzle
|
[ Day1.puzzle
|
||||||
, Day2.puzzle
|
, Day2.puzzle
|
||||||
@ -40,4 +42,4 @@ main =
|
|||||||
goldenVsString n ("../outputs/" <> t <> "/" <> pt <> "/" <> n) $
|
goldenVsString n ("../outputs/" <> t <> "/" <> pt <> "/" <> n) $
|
||||||
BL.fromStrict . encodeUtf8 . pp <$> input
|
BL.fromStrict . encodeUtf8 . pp <$> input
|
||||||
)
|
)
|
||||||
<> [testGroup "extra" extraTests]
|
<> [testGroup "extra" $ extraTests isRealData ("../outputs/" <> t <> "/" <> pt <> "/extra/") input]
|
||||||
|
|||||||
@ -9,5 +9,5 @@ data Puzzle = forall input. Puzzle
|
|||||||
{ number :: Word
|
{ number :: Word
|
||||||
, parser :: Parsec Void Text input
|
, parser :: Parsec Void Text input
|
||||||
, parts :: [input -> Text]
|
, parts :: [input -> Text]
|
||||||
, extraTests :: [TestTree]
|
, extraTests :: Bool -> FilePath -> IO input -> [TestTree]
|
||||||
}
|
}
|
||||||
|
|||||||
@ -37,7 +37,7 @@ puzzle =
|
|||||||
| p' == 0 -> abs c + 1
|
| p' == 0 -> abs c + 1
|
||||||
| otherwise -> abs c
|
| otherwise -> abs c
|
||||||
]
|
]
|
||||||
, extraTests = []
|
, extraTests = mempty
|
||||||
}
|
}
|
||||||
|
|
||||||
data Direction = L | R
|
data Direction = L | R
|
||||||
|
|||||||
@ -25,7 +25,7 @@ puzzle =
|
|||||||
. concatMap
|
. concatMap
|
||||||
(mapMaybe (\n -> guard (isRepetitionN n) $> n) . uncurry enumFromTo)
|
(mapMaybe (\n -> guard (isRepetitionN n) $> n) . uncurry enumFromTo)
|
||||||
]
|
]
|
||||||
, extraTests = []
|
, extraTests = mempty
|
||||||
}
|
}
|
||||||
|
|
||||||
newtype ID = ID Int
|
newtype ID = ID Int
|
||||||
|
|||||||
@ -26,7 +26,7 @@ puzzle =
|
|||||||
. sum
|
. sum
|
||||||
. map (digitsToInt . fromMaybe (error "battery list too short") . maxBatteries 12)
|
. map (digitsToInt . fromMaybe (error "battery list too short") . maxBatteries 12)
|
||||||
]
|
]
|
||||||
, extraTests = []
|
, extraTests = mempty
|
||||||
}
|
}
|
||||||
|
|
||||||
newtype Bank = Bank (NonEmpty Battery)
|
newtype Bank = Bank (NonEmpty Battery)
|
||||||
|
|||||||
@ -27,7 +27,7 @@ puzzle =
|
|||||||
. unfoldr ((\r -> guard (fst r /= 0) $> r) . (removeAccessibleRolls <<<<$>>>>) . findAccessible)
|
. unfoldr ((\r -> guard (fst r /= 0) $> r) . (removeAccessibleRolls <<<<$>>>>) . findAccessible)
|
||||||
. addCoords
|
. addCoords
|
||||||
]
|
]
|
||||||
, extraTests = []
|
, extraTests = mempty
|
||||||
}
|
}
|
||||||
|
|
||||||
addCoords :: (Num a, Enum a) => [[c]] -> [[(V2 a, c)]]
|
addCoords :: (Num a, Enum a) => [[c]] -> [[(V2 a, c)]]
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user