blob: 81f112cb8564e07611348963fe36cf8a9007674f (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
|
module StdAssocListTest
/* Test module StdAssocList
Voor werken met Gast:
(*) gebruik Environment 'Gast'
(*) zet Project Options op 'Basic Values Only' en '2M' Maximum Heap Size
*/
import gast
import StdAssocList
Start
= testn 1000
(\x ->
newAssocList_is_leeg /\
aantal_elementen_klopt x /\
lookup_after_update x /\
lookup_after_update2 x /\
keys_zijn_uniek x /\
True
)
newIntStringAssocList :: AssocList Int String
newIntStringAssocList = newAssocList
vulIntStringAssocList :: (AssocList Int String) Int -> AssocList Int String
vulIntStringAssocList l n = seq [updateKey k (toString k) \\ k <- [1..n]] l
newAssocList_is_leeg :: Property
newAssocList_is_leeg = name "newAssocList_is_leeg"
(countValues newIntStringAssocList == 0)
aantal_elementen_klopt :: Int -> Property
aantal_elementen_klopt n = name "aantal_elementen_klopt"
(countValues (vulIntStringAssocList newIntStringAssocList n`) == max 0 n`)
where n` = min n 100
lookup_after_update :: Int -> Property
lookup_after_update n = name "lookup_after_update"
(lookupKey k (updateKey k v (vulIntStringAssocList newIntStringAssocList n`)) == [v])
where n` = min n 100
k = n+1
v = toString k
lookup_after_update2 :: Int -> Property
lookup_after_update2 n = name "lookup_after_update"
(lookupKey k (vulIntStringAssocList (updateKey k v newIntStringAssocList) n`) == [v])
where n` = min n 100
k = n+1
v = toString k
keys_zijn_uniek :: Int -> Property
keys_zijn_uniek n = name "keys_zijn_uniek"
(lookupKey k (removeKey k (vulIntStringAssocList newIntStringAssocList n`)) == [])
where n` = min n 100
k = n/2
|