packages feed

grids-0.5.0.0: test/Spec/Shapes.hs

{-# LANGUAGE OverloadedLists #-}
{-# LANGUAGE TypeApplications #-}
module Spec.Shapes (spec) where

import Test.Hspec hiding (focus)
import Data.Grid as G
import Data.Functor.Compose
import Control.Monad

smallGrid :: Grid '[2, 2] Int
smallGrid = generate id

spec :: Spec
spec = 
  describe "partitionFocus" $ do
    it "should split properly" $ do
      let g :: Grid [2, 2] Int = autoConvolute @[3, 3] omitBounds (sum . Compose . fmap join . snd . partitionFocus . getCompose) smallGrid
      let sums = fromNestedLists' [[6, 5], [4, 3]]
      g `shouldBe` sums