sbv-0.9: Data/SBV/TestSuite/Puzzles/MagicSquare.hs
-----------------------------------------------------------------------------
-- |
-- Module : Data.SBV.TestSuite.Puzzles.MagicSquare
-- Copyright : (c) Levent Erkok
-- License : BSD3
-- Maintainer : erkokl@gmail.com
-- Stability : experimental
-- Portability : portable
--
-- Test suite for Data.SBV.Examples.Puzzles.MagicSquare
-----------------------------------------------------------------------------
module Data.SBV.TestSuite.Puzzles.MagicSquare(testSuite) where
import Data.SBV
import Data.SBV.Internals
import Data.SBV.Examples.Puzzles.MagicSquare
-- Test suite
testSuite :: SBVTestSuite
testSuite = mkTestSuite $ \_ -> test [
"magic 2" ~: assert . not =<< isSatisfiable (mkMagic 2)
, "magic 3" ~: assert =<< isSatisfiable (mkMagic 3)
]
where mkMagic n = mapM (const free_) [1 .. n*n] >>= output . isMagic . chunk n