Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

Day12Spec.hs 782B

123456789101112131415161718192021222324252627282930
  1. {-# LANGUAGE QuasiQuotes #-}
  2. module Day12Spec (spec) where
  3. import Day12
  4. import Test.Hspec
  5. import Text.Heredoc
  6. import Data.Maybe (fromJust, isJust)
  7. testInput :: String
  8. testInput = [str|Sabqponm
  9. |abcryxxl
  10. |accszExk
  11. |acctuvwj
  12. |abdefghi
  13. |]
  14. spec :: Spec
  15. spec =
  16. describe "Day12" $ do
  17. describe "Part1" $ do
  18. it "finds a path" $ do
  19. let (points, grid) = parseGrid testInput
  20. let result = findPath grid points
  21. isJust result `shouldBe` True
  22. fst (fromJust result) `shouldBe` 31
  23. it "finds shortest paths from all lowest points" $ do
  24. let (points, grid) = parseGrid testInput
  25. let fastest = findBestPath grid points
  26. fst fastest `shouldBe` 29