packages feed

puzzle-draw-0.3.0.0: tests/Data.hs

module Data where

import qualified Data.Text as T
import Data.Maybe (fromJust)
import Data.Yaml
import qualified Data.ByteString as B
import Data.Text.Encoding (encodeUtf8)

packStr :: String -> B.ByteString
packStr = encodeUtf8 . T.pack

decodeLines :: [String] -> Value
decodeLines = fromJust . decodeThrow . packStr . unlines

packLine :: String -> Value
packLine = String . T.pack

packLines :: [String] -> Value
packLines = String . T.pack . unlines

geradeweg_1 :: Value
geradeweg_1 = packLines $
    [ ".....    "
    , ".211."
    , "..2..  "
    , "3...4"
    , "....."
    ]

geradeweg_1_sol :: Value
geradeweg_1_sol = packLines $
    [ "┌┐┌─┐"
    , "││└┐│  "
    , "│└─┘│"
    , "└──┐│"
    , "  .└┘ "
    ]

tightfit_1 :: Value
tightfit_1 = packLines $
    [ " --- "
    , "3/\\.-"
    , "-\\.\\4"
    , "-.\\/-"
    , " 35-"
    ]

tightfit_broken_1 :: Value
tightfit_broken_1 = packLines $
    [ " --- "
    , "3/\\.-"
    , "-\\x\\4"
    , "-.\\/-"
    , " 35-"
    ]

tightfit_broken_2 :: Value
tightfit_broken_2 = packLines $
    [ "3/\\.-"
    , "-\\x\\4"
    , "-.\\/-"
    , " 35-"
    ]

tightfit_1_sol :: Value
tightfit_1_sol = packLines $
    [ "2/1 4\\5  3"
    , "  4\\5  3  2\\1 "
    , "   3  1\\2 5/4"
    ]

tightfit_sol_broken :: Value
tightfit_sol_broken = packLine "2/1 4 /5"

tightfit_sol_broken_2 :: Value
tightfit_sol_broken_2 = packLine "2/x 4 3/5"

slalom_sol_broken :: Value
slalom_sol_broken = packLine "//\\ /\\x5 "

kpyramid_1 :: Value
kpyramid_1 = packLines $
    [ "G     3"
    , "G    . ."
    , "G   . . ."
    , "W  .o. . ."
    , "G 1*.*.o.*6"
    ]

kpyramid_1_sol :: Value
kpyramid_1_sol = packLines $
    [ "    3"
    , "   8 5"
    , "  1 9 4"
    , " 3 2 7 3"
    , "1 2 4 3 6"
    ]

kpyramid_broken_1 :: Value
kpyramid_broken_1 = packLines $
    [ "  G     3"
    , "  G    . 22"
    , "  H   . aa ."
    , "  W  .o. .|. "
    , "  G 1*.*.o.*6"
    ]

kpyramid_broken_2 :: Value
kpyramid_broken_2 = packLines $
    [ "G     3"
    , "G    . 22"
    , "H   . aa ."
    , "W  .o. .|. "
    , "G 1*.*.o.*6"
    ]

kpyramid_broken_3 :: Value
kpyramid_broken_3 = packLines $
    [ "G     3"
    , "G    . ."
    , "G   . . ."
    , "W  .o. . ."
    , "G a*.*.o.*6"
    ]

compass_1 :: Value
compass_1 = decodeLines $
    [ "grid: |"
    , "  ..."
    , "  a.b"
    , "clues:"
    , "  a: 2 1 . 2"
    , "  b: 21 . . 0"
    ]

compass_broken_1 :: Value
compass_broken_1 = decodeLines $
    [ "grid: |"
    , "  a.b"
    , "clues:"
    , "  b: 21 . . 0"
    ]

compass_broken_2 :: Value
compass_broken_2 = decodeLines $
    [ "grid: |"
    , "  a.b"
    , "clues:"
    , "  a: x . . 0"
    , "  b: 21 . . 0"
    ]

compass_broken_3 :: Value
compass_broken_3 = decodeLines $
    [ "grid: |"
    , "  a.b"
    , "clues:"
    , "  a: 1 . ."
    , "  b: 21 . . 0"
    ]

compass_broken_4 :: Value
compass_broken_4 = decodeLines $
    [ "grid: |"
    , "  a.b"
    , "clues:"
    , "  a: 1 . . 2 3"
    , "  b: 21 . . 0"
    ]

compass_broken_5 :: Value
compass_broken_5 = decodeLines $
    [ "grid: |"
    , "  a3b"
    , "clues:"
    , "  a: 1 . . 2 3"
    , "  b: 21 . . 0"
    ]

thermo_1 :: Value
thermo_1 = packLines $
    [ ".b..2."
    , "a.c5.1"
    , ".d..6."
    , ".4..c."
    , "5.3b.d"
    , ".2..a."
    ]

thermo_2 :: Value
thermo_2 = packLines $
    [ "....2."
    , "..c5.1"
    , ".b..6."
    , "a..c.."
    , "a...b."
    , ".bc.a."
    ]

thermo_broken_1 :: Value
thermo_broken_1 = packLines $
    [ ".."
    , "a."
    ]

thermo_broken_2 :: Value
thermo_broken_2 = packLines $
    [ "bb"
    , "a."
    ]

multioutside :: Value
multioutside = decodeLines $
    [ "left:"
    , "  - [2, 1]"
    , "  - [3]"
    , "right:"
    , "  - []"
    , "  - [1, 0]"
    , "bottom:"
    , "  - [0, 0, 1]"
    , "top:"
    , "  - [-1, 1]"
    ]

boxof2or3_1 :: Value
boxof2or3_1 = packLines $
    [ "*-*-*-*-*"
    , "| | | | |"
    , "*-*-*-*-*"
    , "| | |"
    , "*-o-o-o-*"
    , "    | | |"
    , "*-*-*-*-*"
    , "| | | | |"
    , "o-*-*-*-*"
    ]

edgeGrid_1 :: Value
edgeGrid_1 = packLines $
   [ "o-*-*-o"
   , "|1|2 3"
   , "*-o"
   ]