packages feed

puzzle-draw-0.3.0.0: tests/Data/GridSpec.hs

module Data.GridSpec where

import qualified Data.Set as Set
import Test.Hspec (Spec, describe, it, shouldBe)

import Data.Grid
import Data.GridShape (N(..))

spec :: Spec
spec = do
    describe "sizeGrid" $ do
        it "creates a rectangular grid of nodes" $ do
            nodes (sizeGrid (2, 3)) `shouldBe` Set.fromList [
                                          N 0 0, N 0 1, N 0 2,
                                          N 1 0, N 1 1, N 1 2]
            nodes (sizeGrid (0, 0)) `shouldBe` Set.empty
            nodes (sizeGrid (2, 0)) `shouldBe` Set.empty
            nodes (sizeGrid (2, 1)) `shouldBe ` Set.fromList [N 0 0, N 1 0]

    describe "nodeGrid" $ do
        it "creates the grid of nodes from a rectangular grid of cells" $ do
            nodes (nodeGrid (sizeGrid (2, 1))) `shouldBe` nodes (sizeGrid (3, 2))