Files
advent-of-code-2022/test/Day6Spec.hs

36 lines
1.5 KiB
Haskell
Raw Normal View History

2022-12-06 10:54:58 +01:00
module Day6Spec (spec) where
import Test.Hspec
import Day6
spec :: Spec
spec =
describe "Day6" $ do
describe "Part1" $ do
it "finds unique lists" $ do
isUnique "abc" `shouldBe` True
isUnique "abca" `shouldBe` False
isUnique "cabc" `shouldBe` False
it "finds the marker in the next iteration" $ do
findMarker' 4 3 "abc" "d" `shouldBe` Just 4
findMarker' 4 4 "bcd" "e" `shouldBe` Just 5
it "finds nothing if nothing is there" $ do
findMarker "abcb" `shouldBe` Nothing
findMarker "abcabcb" `shouldBe` Nothing
it "finds the marker in the beginning" $ do
findMarker "abcd" `shouldBe` Just 4
findMarker "aabcd" `shouldBe` Just 5
it "finds a marker" $ do
findMarker "mjqjpqmgbljsphdztnvjfqwrcgsmlb"`shouldBe` Just 7
findMarker "bvwbjplbgvbhsrlpgdmjqwftvncz" `shouldBe` Just 5
findMarker "nppdvjthqldpwncqszvftbrmjlhg" `shouldBe` Just 6
findMarker "nznrnfrfntjfmvfwmzdfjlvtqnbhcprsg" `shouldBe` Just 10
findMarker "zcfzfwzzqfrljwzlrfnpqdbhtmscgvjw" `shouldBe` Just 11
describe "Part 2" $ do
it "finds start of message marker" $ do
findStart "mjqjpqmgbljsphdztnvjfqwrcgsmlb"`shouldBe` Just 19
findStart "bvwbjplbgvbhsrlpgdmjqwftvncz" `shouldBe` Just 23
findStart "nppdvjthqldpwncqszvftbrmjlhg" `shouldBe` Just 23
findStart "nznrnfrfntjfmvfwmzdfjlvtqnbhcprsg" `shouldBe` Just 29
findStart "zcfzfwzzqfrljwzlrfnpqdbhtmscgvjw" `shouldBe` Just 26