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/MatchStringsTest.icl | 80 ++++++++++++++++++++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100644 files/practicum/MatchStringsTest.icl (limited to 'files/practicum/MatchStringsTest.icl') diff --git a/files/practicum/MatchStringsTest.icl b/files/practicum/MatchStringsTest.icl new file mode 100644 index 0000000..35c2d27 --- /dev/null +++ b/files/practicum/MatchStringsTest.icl @@ -0,0 +1,80 @@ +module MatchStringsTest + +/* Test module MatchStrings + Voor werken met Gast: + (*) gebruik Environment 'Gast' + (*) zet Project Options op 'Basic Values Only' +*/ + +import StdEnv +import MatchStrings +import gast + +Start + = testn 1000 + (\s t -> + eigenschap_waar_voor_gelijke_argumenten is_gelijk s /\ + eigenschap_onwaar_voor_groter_argument is_gelijk s /\ + eigenschap_onwaar_voor_groter_argument is_deelstring s /\ + eigenschap_waar_voor_gelijke_argumenten is_deelstring s /\ + eigenschap_waar_voor_gelijk_begin is_deelstring s t /\ + eigenschap_waar_voor_gelijk_midden is_deelstring s t /\ + eigenschap_waar_voor_gelijk_eind is_deelstring s t /\ + eigenschap_onwaar_voor_groter_argument is_deel s /\ + eigenschap_waar_voor_gelijke_argumenten is_deel s /\ + eigenschap_waar_voor_gelijk_begin is_deel s t /\ + eigenschap_waar_voor_gelijk_midden is_deel s t /\ + eigenschap_waar_voor_gelijk_eind is_deel s t /\ + eigenschap_waar_voor_uitbreiding is_deel s t /\ + kleenes_matcht_altijd s /\ + dots_matcht_zelfde_lengte s /\ + True + ) + +eigenschap_onwaar_voor_groter_argument :: (String String -> Bool) String -> Property +eigenschap_onwaar_voor_groter_argument f a + = name "eigenschap_onwaar_voor_groter_argument" (not (f (a +++ ".") a)) + +eigenschap_waar_voor_gelijke_argumenten :: (String String -> Bool) String -> Property +eigenschap_waar_voor_gelijke_argumenten f a + = name "eigenschap_waar_voor_gelijke_argumenten" (f a a) + +eigenschap_waar_voor_gelijk_begin :: (String String -> Bool) String String -> Property +eigenschap_waar_voor_gelijk_begin f a b + = name "eigenschap_waar_voor_gelijk_begin" (f a (a +++ b)) + +eigenschap_waar_voor_gelijk_midden :: (String String -> Bool) String String -> Property +eigenschap_waar_voor_gelijk_midden f a b + = name "eigenschap_waar_voor_gelijk_midden" (f a (b +++ a +++ b)) + +eigenschap_waar_voor_gelijk_eind :: (String String -> Bool) String String -> Property +eigenschap_waar_voor_gelijk_eind f a b + = name "eigenschap_waar_voor_gelijk_eind" (f a (b +++ a)) + +eigenschap_waar_voor_uitbreiding :: (String String -> Bool) String String -> Property +eigenschap_waar_voor_uitbreiding f a extra + = name "eigenschap_waar_voor_uitbreiding" + ((extra <> "") ==> f a (breid_string_uit extra a)) + +breid_string_uit :: String String -> String +breid_string_uit extra string + = toString (flatten [[c:cs] \\ c <-: string]) +where + cs = fromString extra + +kleenes_matcht_altijd :: String -> Property +kleenes_matcht_altijd s + = name "kleenes_matcht_altijd" + (ForEach [{# '*' \\ _ <- [1..n]} \\ n <- [1..10]] (flip is_match s)) + +dots_matcht_zelfde_lengte :: String -> Property +dots_matcht_zelfde_lengte s + = name "dots_matcht_zelfde_lengte" + (is_match dots s + && + not (is_match ("."+++dots) s) + && + not (is_match dots (s+++".")) + ) +where + dots = {# '.' \\ _ <-: s} -- cgit v1.2.3