Fixed allSelectorsSent because a simpler implementation was overriding the original.
[cslatevm.git] / tests / array-words.slate
blob83d39f8bd52691e16a99160bf6a054e86df9c08f
1   UnitTests define: #WordArray &parents: {TestCase}.
3   tc@(UnitTests WordArray traits) isEmpty
4   [
5     wa ::= WordArray new.
6     tc assert: wa isEmpty description: 'New WordArray is not empty'.
7 ].
9 tc@(UnitTests WordArray traits) size
11   wa ::= WordArray new.
12   tc assert: wa size = 0 description: 'Empty WordArray has non-zero size'.
15 tc@(UnitTests WordArray traits) includes
17   wa ::= WordArray new &capacity: 5.
18   wa at: 0 put:  2.
19   tc assert: (wa includes: 2) description: 'First inserted object not found'.
20   wa at: 4 put: 10.  
21   tc assert: (wa includes: 10) description: 'Second inserted object not found'. 
22   tc deny: (wa includes: 4) description: 'Found object which was not added'.
25 tc@(UnitTests WordArray traits) at
27   wa ::= WordArray new &capacity: 6.
28   wa at: 0 put: 10.
29   wa at: 5 put: 1000.
30   tc assert: (wa at: 0) = 10 description: 'First object retrieved isn\'t object stored'.
31   tc assert: (wa at: 5) = 1000 description: 'Last object retrieved isn\'t object stored'.
34 tc@(UnitTests WordArray traits) accepts
36   wa ::= WordArray new.
37   tc assert: (wa accepts: 16rFFFFFFFF) description: 'Will not accept 2^32'.
38   tc deny: (wa accepts: 16r100000000) description: 'Accepted overlarge value'.
39   tc deny: (wa accepts: -1) description: 'Accepted negative number'.
42 tc@(UnitTests WordArray traits) endian
44   wale ::= WordArray LittleEndian new &capacity: 1.
45   wabe ::= WordArray BigEndian new &capacity: 1.
46   wale at: 0 put: 16r01020408.
47   wabe at: 0 put: 16r01020408.
48   tc assert: ((wale at: 0) = 16r01020408) description: 'Reading LittleEndian value failed'.
49   tc assert: ((wabe at: 0) = 16r01020408) description: 'Reading BigEndian value failed'.
50   tc assert: ((wale bytes at: 0) = 8) description: 'First LittleEndian byte wrong'.
51   tc assert: ((wale bytes at: 1) = 4) description: 'Second LittleEndian byte wrong'.
52   tc assert: ((wale bytes at: 2) = 2) description: 'Third LittleEndian byte wrong'.
53   tc assert: ((wale bytes at: 3) = 1) description: 'Forth LittleEndian byte wrong'.
54   tc assert: ((wabe bytes at: 0) = 1) description: 'First BigEndian byte wrong'.
55   tc assert: ((wabe bytes at: 1) = 2) description: 'Second BigEndian byte wrong'.
56   tc assert: ((wabe bytes at: 2) = 4) description: 'Third BigEndian byte wrong'.
57   tc assert: ((wabe bytes at: 3) = 8) description: 'Forth BigEndian byte wrong'.
60 tc@(UnitTests WordArray traits) do
62   sum ::= 0.
63   counter ::= 0.
64   wa ::= WordArray new &capacity: 12.
65   wa  `>> [
66     at: 0 put: 16r1.
67     at: 1 put: 16r2.
68     at: 3 put: 16r3.
69     at: 5 put: 16r4.
70     at: 7 put: 16r5.].
71   wa do: [|:each| sum: sum + each. counter: counter + 1].
72   tc assert: sum = 15 description: 'Sum of elements failed'.
73   tc assert: counter = 12 description: 'Count of elements failed'.
76 tc@(UnitTests WordArray traits) suite
77 [tc suiteForSelectors: {
78   #isEmpty.
79   #size.
80   #accepts.
81   #at.
82   #includes.
83   #do.
84   #endian.
85 }].