import Game
import Shape
import Helpers
import Test.HUnit
main :: IO Counts
main = runTestTT $ TestList testCases
assertList :: [([Position], Game)]
assertList = [([(5,20), (6,20), (7,20), (6,19)], (addBlock newGame T)),
([(5,19), (6,19), (7,19), (6,18)], move (addBlock newGame T) MoveDown)]
testCases :: [Test]
testCases = map t assertList
where t (poslist, game) =
TestCase $ assertBool (show poslist) (hasColorsHere poslist game)
hasColorsHere :: [Position] -> Game -> Bool
hasColorsHere ps g = and (map test ps)
where test p = Nothing /= colorAt g p