blob: 35c2d2791135a394cf0b84d71f0963b209a2dd63 (
plain) (
tree)
|
|
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}
|