Files
advent-of-code-2022/test/Day4Spec.hs
T

36 lines
927 B
Haskell
Raw Normal View History

2022-12-05 13:05:21 +01:00
{-# LANGUAGE QuasiQuotes #-}
module Day4Spec (spec) where
import Test.Hspec
import Text.Heredoc
import Day4.Part1
import Day4.Part2
import Day4.Shared
inputPart1 :: String
inputPart1 = [str|2-4,6-8
|2-3,4-5
|5-7,7-9
|2-8,3-7
|6-6,4-6
|2-6,4-8
|]
spec :: Spec
spec =
describe "Day4" $ do
describe "Part 1" $ do
it "parses section" $ do
section "2-4" `shouldBe` 2 +=+ 4
it "parses section pair" $ do
elfPair "2-4,6-8" ` shouldBe` (2 +=+ 4, 6 +=+ 8)
it "finds fully overlapping sections" $ do
isFullyOverlapping (3 +=+ 6, 4 +=+ 6) `shouldBe` True
it "counts fully overlapping pairs" $ do
countFullyOverlappingPairs inputPart1 `shouldBe` 2
describe "Part 2" $ do
it "counts overlapping pairs" $ do
countOverlappingPairs inputPart1 `shouldBe` 4