summaryrefslogtreecommitdiff
path: root/files/practicum/StdSortListTest.icl
diff options
context:
space:
mode:
authorCamil Staps2016-02-02 19:24:50 +0100
committerCamil Staps2016-02-02 19:24:50 +0100
commita7d7542dc646a5fd124ef71e71ce260889f1701b (patch)
tree04ed89503bbb3cc9933273a1326a53ca724c3492 /files/practicum/StdSortListTest.icl
parentweek6 camil: working positioning of lines by putting empties at left and righ... (diff)
Moved to 1415 directoryHEADmaster
Diffstat (limited to 'files/practicum/StdSortListTest.icl')
-rw-r--r--files/practicum/StdSortListTest.icl107
1 files changed, 0 insertions, 107 deletions
diff --git a/files/practicum/StdSortListTest.icl b/files/practicum/StdSortListTest.icl
deleted file mode 100644
index 411f7ca..0000000
--- a/files/practicum/StdSortListTest.icl
+++ /dev/null
@@ -1,107 +0,0 @@
-module StdSortListTest
-
-/* Test module StdSortList
- Voor werken met Gast:
- (*) gebruik Environment 'Gast'
- (*) zet Project Options op 'Basic Values Only' en '16M' Maximum Heap Size.
-*/
-
-import gast
-import GenLexOrd
-import StdSortList
-
-Start = testn 10000
- (\n` n2` m -> let n = lst2slst (cast [A,B,C] n` )
- n2 = lst2slst (cast [A,B,C] n2`)
- in
- leeg_is_leeg /\
- count_matches_elems n /\
- is_sorted_elems n /\
- member_is_member n m /\
- member_na_insert n m /\
- member_na_remove n m /\
- insert_remove_invariant n m /\
- minimum_property n /\
- maximum_property n /\
- merge_additive n n2 /\
- merge_member n n2 m /\
- True
- )
-
-:: Enum = A | B | C
-
-derive bimap []
-derive ggen Enum
-derive genShow Enum
-derive gEq Enum
-derive gLexOrd Enum
-instance == Enum where (==) x y = gEq{|*|} x y
-instance < Enum where (<) x y = gEq{|*|} (gLexOrd{|*|} x y) LT
-
-// clean should have something like this!
-cast :: a a -> a
-cast _ x = x
-
-leeg_is_leeg :: Property
-leeg_is_leeg
- = name "leeg_is_leeg"
- (count newSortList == 0)
-
-count_matches_elems :: (SortList a) -> Property | Eq, Ord a
-count_matches_elems n
- = name "count_matches_elems"
- (length (elements n) == count n)
-
-is_sorted_elems :: (SortList a) -> Property | Eq, Ord a
-is_sorted_elems n
- = name "is_sorted_elems"
- (isSorted (elements n))
- where isSorted lst = and [ x<=y \\ x<-lst & y<-tl lst ]
-
-member_is_member :: (SortList a) a -> Property | Eq, Ord a
-member_is_member lst e
- = name "member_is_member"
- ((isMember e (elements lst)) <==> (memberSort e lst))
-
-member_na_insert :: (SortList a) a -> Property | Eq, Ord a
-member_na_insert lst e
- = name "member_na_insert"
- (memberSort e (insertSort e lst))
-
-member_na_remove :: (SortList a) a -> Property | Eq, Ord a
-member_na_remove lst e
- = name "member_na_remove"
- (not (memberSort e (removeAll e lst)))
-
-insert_remove_invariant :: (SortList a) a -> Property | Eq, Ord a
-insert_remove_invariant lst e
- = name "insert_remove_invariant"
- (memberSort e lst <==> memberSort e lst`)
- where lst` = removeFirst e (insertSort e lst)
-
-minimum_property :: (SortList a) -> Property | Eq,Ord a
-minimum_property n
- = name "minimum_property"
- (count n > 0 ==> (memberSort min n /\ all ((<=) min) (elements n)))
- where min = minimum n
-
-maximum_property :: (SortList a) -> Property | Eq,Ord a
-maximum_property n
- = name "maximum_property"
- (count n > 0 ==> (memberSort max n /\ all ((>=) max) (elements n)))
- where max = maximum n
-
-merge_member :: (SortList a) (SortList a) a -> Property | Eq,Ord a
-merge_member n m e
- = name "merge_member"
- (memberSort e nm <==> (memberSort e n \/ memberSort e m))
- where nm = mergeSortList n m
-
-merge_additive :: (SortList a) (SortList a) -> Property | Eq,Ord a
-merge_additive n m
- = name "merge_additive"
- (count n + count m == count nm)
- where nm = mergeSortList n m
-
-lst2slst :: [a] -> SortList a | Eq,Ord a
-lst2slst xs = seq (map insertSort xs) newSortList