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
|
module Main where
import Test.HUnit
import Control.Monad
import AufgabeFFP2
assertBoolF :: String -> Bool -> Assertion
assertBoolF msg b = when b (assertFailure msg)
-------------------------------------------------------------------------------
-- 1
pps1 :: Test
pps1 = TestCase (assertEqual "pps"
[(3,5),(5,7),(11,13),(17,19),(29,31),(41,43), (59,61),(71,73),(101,103),(107,109)]
(take 10 pps))
pps2 :: Test
pps2 = TestCase (assertEqual "pps"
(347,349)
(pps!!20))
pps3 :: Test
pps3 = TestCase (assertEqual "pps"
(809,811)
(head (drop 30 pps)))
ppsTests = TestList [pps1, pps2, pps3]
-------------------------------------------------------------------------------
-- 2
-------------------------------------------------------------------------------
-- 3
-------------------------------------------------------------------------------
-- 4
gz1 :: Test
gz1 = TestCase (assertEqual "gz"
144
(gz 42))
gz2 :: Test
gz2 = TestCase (assertEqual "gz"
400
(gz 402))
gzs1 :: Test
gzs1 = TestCase (assertEqual "gzs"
144
(gzs!!41))
gzs2 :: Test
gzs2 = TestCase (assertEqual "gzs"
400
(gzs!!401))
gzTests = TestList [gz1, gz2, gzs1, gzs2]
-------------------------------------------------------------------------------
tests :: [Test]
tests = [ppsTests, gzTests]
main = do
forM tests $ \test ->
runTestTT test
|