From 379b6353396ca2401241d714733d570629835ffe Mon Sep 17 00:00:00 2001 From: Mart Lubbers Date: Fri, 6 Feb 2015 08:39:37 +0100 Subject: added practicum files, updated gitignore --- files/practicum/EersteOfLaatsteTest.icl | 44 +++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 files/practicum/EersteOfLaatsteTest.icl (limited to 'files/practicum/EersteOfLaatsteTest.icl') 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 -- cgit v1.2.3