summaryrefslogtreecommitdiffstats
path: root/TestAufgabeFFP1.hs
blob: 4a38f3cd0dbc228b6d4c1581950f486e30436a90 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
module Main where

import Test.HUnit
import Control.Monad
import AufgabeFFP1

assertBoolF :: String -> Bool -> Assertion
assertBoolF msg b =  when b (assertFailure msg)

-------------------------------------------------------------------------------

pof2s1 :: Test
pof2s1 = TestCase (assertEqual "pof2s"
  [1,2,4,8,16,32,64,128,256,512]
  (take 10 pof2s))

pof2sTests = TestList [pof2s1]

-------------------------------------------------------------------------------

pd1 :: Test
pd1 = TestCase (assertEqual "pd"
  [[1], [1,1], [1,2,1], [1,3,3,1], [1,4,6,4,1], [1,5,10,10,5,1],
  [1,6,15,20,15,6,1], [1,7,21,35,35,21,7,1], [1,8,28,56,70,56,28,8,1],
  [1,9,36,84,126,126,84,36,9,1], [1,10,45,120,210,252,210,120,45,10,1]]
  (take 11 pd))

pdTests = TestList [pd1]

-------------------------------------------------------------------------------

fibdiag1 :: Test
fibdiag1 = TestCase (assertEqual "fibdiag(1)" [1] (fibdiag 1))

fibdiag2 :: Test
fibdiag2 = TestCase (assertEqual "fibdiag(2)" [1] (fibdiag 2))

fibdiag3 :: Test
fibdiag3 = TestCase (assertEqual "fibdiag(3)" [1,1] (fibdiag 3))

fibdiag4 :: Test
fibdiag4 = TestCase (assertEqual "fibdiag(4)" [1,2] (fibdiag 4))

fibdiag5 :: Test
fibdiag5 = TestCase (assertEqual "fibdiag(5)" [1,3,1] (fibdiag 5))

fibdiag6 :: Test
fibdiag6 = TestCase (assertEqual "fibdiag(6)" [1,4,3] (fibdiag 6))

fibdiag7 :: Test
fibdiag7 = TestCase (assertEqual "fibdiag(7)" [1,5,6,1] (fibdiag 7))

fibdiag8 :: Test
fibdiag8 = TestCase (assertEqual "fibdiag(8)" [1,6,10,4] (fibdiag 8))

fibdiagTests = TestList [fibdiag1, fibdiag2, fibdiag3, fibdiag4, fibdiag5,
  fibdiag6, fibdiag7, fibdiag8]

-------------------------------------------------------------------------------

fibdiags1 :: Test
fibdiags1 = TestCase (assertEqual "fibdiags"
  [[1], [1], [1,1], [1,2], [1,3,1], [1,4,3], [1,5,6,1], [1,6,10,4]]
  (take 8 fibdiags))

fibdiagsTests = TestList [fibdiags1]

-------------------------------------------------------------------------------

fibspd1 :: Test
fibspd1 = TestCase (assertEqual "fibspd"
  [1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987,1597,2584,4181,6765,10946,17711,28657]
  (take 23 fibspd))

fibspdTests = TestList [fibspd1]

-------------------------------------------------------------------------------

tests :: [Test]
tests = [pof2s1, pdTests, fibdiagTests, fibdiagsTests, fibspdTests]

main = do
  forM tests $ \test ->
    runTestTT test