diff options
author | Mart Lubbers | 2015-02-06 08:39:37 +0100 |
---|---|---|
committer | Mart Lubbers | 2015-02-06 08:39:37 +0100 |
commit | 379b6353396ca2401241d714733d570629835ffe (patch) | |
tree | 26652c854a79c627b5f50bc8ac26f9b84f8e196d /files/practicum/EersteOfLaatsteTest.icl | |
parent | Merge branch 'master' of https://github.com/dopefishh/fp1 (diff) |
added practicum files, updated gitignore
Diffstat (limited to 'files/practicum/EersteOfLaatsteTest.icl')
-rw-r--r-- | files/practicum/EersteOfLaatsteTest.icl | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/files/practicum/EersteOfLaatsteTest.icl b/files/practicum/EersteOfLaatsteTest.icl new file mode 100644 index 0000000..d6e89f3 --- /dev/null +++ b/files/practicum/EersteOfLaatsteTest.icl @@ -0,0 +1,44 @@ +module EersteOfLaatsteTest
+
+/* Test module EersteOfLaatste
+ Voor werken met Gast:
+ (*) gebruik Environment 'Gast'
+ (*) zet Project Options op 'Basic Values Only'
+*/
+
+import EersteOfLaatste
+import StdEnv
+import gast
+
+Start
+ = testn 1000
+ (\n v ->
+ eerste2_is_eerste_2 v /\
+ laatste2_is_laatste_2 v /\
+ eersten_is_eerste_n n v /\
+ laatsten_is_laatste_n n v /\
+ True
+ )
+
+:: BaseType :== Int
+
+eerste2_is_eerste_2 :: [BaseType] -> Property
+eerste2_is_eerste_2 l = name "eerste2 is eerste twee"
+ ((length l > 1) ==> let l` = eerste2 l in zelfde_deel 2 l` l)
+
+laatste2_is_laatste_2 :: [BaseType] -> Property
+laatste2_is_laatste_2 l = name "laatste2 is laatste twee"
+ ((length l > 1) ==> let l` = laatste2 l in zelfde_deel 2 l` (drop (length l - 2) l))
+
+eersten_is_eerste_n :: Int [BaseType] -> Property
+eersten_is_eerste_n n l = name "eersten is eerste n"
+ ((n >= 0 && n < length l) ==> let l` = eersten n l in zelfde_deel n l` l)
+
+laatsten_is_laatste_n :: Int [BaseType] -> Property
+laatsten_is_laatste_n n l = name "laatsten is laatste n"
+ ((n >= 0 && n < length l) ==> let l` = laatsten n l in zelfde_deel n l` (drop (length l - n) l))
+
+zelfde_deel :: Int [BaseType] [BaseType] -> Bool
+zelfde_deel 0 _ _ = True
+zelfde_deel n [a:as] [b:bs] = a == b && zelfde_deel (n-1) as bs
+zelfde_deel _ _ _ = False
|