module Main where import Test.HUnit import Control.Monad import Data.Array import AufgabeFFP5 a :: Array Int Int a = array (1,9) [(1,3),(2,(-5)),(3,0),(4,9),(5,2),(6,(-1)),(7,2),(8,(-5)),(9,1)] b :: Array Int Int b = array (1,9) [(1,3),(2,(-1)),(3,(-2)),(4,9),(5,2),(6,(-1)),(7,2),(8,0),(9,(-1))] c :: Array Int Int c = array (1,5) [(1,2),(2,3),(3,(-10)),(4,1),(5,4)] d :: Array Int Int d = array (1,6) [(1, (-3)), (2, 1), (3, 10), (4, (-5)), (5, 8), (6, 7)] minA :: Array Int Int minA = array (0,0) [(0,0)] cases1 = TestLabel "mas" $ TestList [ TestCase $ assertEqual "mas a" 12 (mas a), TestCase $ assertEqual "mas b" 12 (mas b), TestCase $ assertEqual "mas c" 5 (mas c), TestCase $ assertEqual "mas d" 21 (mas d), TestCase $ assertEqual "mas minA" 0 (mas minA) ] cases2 = TestLabel "amas" $ TestList [ TestCase $ assertEqual "amas a" [(3,7), (4,7)] (amas a), TestCase $ assertEqual "amas b" [(1,7),(1,8),(4,7),(4,8)] (amas b), TestCase $ assertEqual "amas c" [(1,2),(4,5)] (amas c), TestCase $ assertEqual "amas d" [(2,6)] (amas d), TestCase $ assertEqual "amas minA" [(0,0)] (amas minA) ] cases3 = TestLabel "lmas" $ TestList [ TestCase $ assertEqual "lmas a" (3,7) (lmas a), TestCase $ assertEqual "lmas b" (1,8) (lmas b), TestCase $ assertEqual "lmas c" (1,2) (lmas c), TestCase $ assertEqual "lmas d" (2,6) (lmas d), TestCase $ assertEqual "lmas minA" (0,0) (lmas minA) ] tests :: [Test] tests = [cases1, cases2, cases3] main = do forM tests $ \test -> runTestTT test