sbv-2.1: SBVUnitTest/TestSuite/Puzzles/DogCatMouse.hs
-----------------------------------------------------------------------------
-- |
-- Module : TestSuite.Puzzles.DogCatMouse
-- Copyright : (c) Levent Erkok
-- License : BSD3
-- Maintainer : erkokl@gmail.com
-- Stability : experimental
--
-- Test suite for Data.SBV.Examples.Puzzles.DogCatMouse
-----------------------------------------------------------------------------
module TestSuite.Puzzles.DogCatMouse(testSuite) where
import Data.SBV
-- import Data.SBV.Examples.Puzzles.DogCatMouse -- everything defined here
import SBVTest
-- Test suite
testSuite :: SBVTestSuite
testSuite = mkTestSuite $ \goldCheck -> test [
"dog cat mouse" ~: allSat p `goldCheck` "dogCatMouse.gold"
]
where p = do [dog, cat, mouse] <- sIntegers ["dog", "cat", "mouse"]
solve [ dog .>= 1 -- at least one dog
, cat .>= 1 -- at least one cat
, mouse .>= 1 -- at least one mouse
, dog + cat + mouse .== 100 -- buy precisely 100 animals
, 1500 * dog + 100 * cat + 25 * mouse .== 10000 -- spend exactly 100 dollars (use cents since we don't have fractions)
]