Skip to content

Commit c135f75

Browse files
lochelOpenModelica-Hudson
authored andcommitted
Unit test for expandable array
1 parent 1a9e96d commit c135f75

File tree

3 files changed

+143
-0
lines changed

3 files changed

+143
-0
lines changed
Lines changed: 141 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,141 @@
1+
// name: ExpandableArray Unit Testing
2+
// status: correct
3+
4+
runScript("LoadCompilerSources.mos"); getErrorString();
5+
6+
loadString("
7+
package ExpandableArrayTest
8+
function Test
9+
protected
10+
ExpandableArray<Integer> exarray;
11+
algorithm
12+
exarray := ExpandableArray.new(2, 1);
13+
ExpandableArray.dump(exarray, \"new(2)\", intString);
14+
15+
exarray := ExpandableArray.set(2, 2, exarray);
16+
ExpandableArray.dump(exarray, \"set(2, 2)\", intString);
17+
18+
exarray := ExpandableArray.add(1, exarray);
19+
ExpandableArray.dump(exarray, \"add(1)\", intString);
20+
21+
exarray := ExpandableArray.add(3, exarray);
22+
ExpandableArray.dump(exarray, \"add(3)\", intString);
23+
24+
exarray := ExpandableArray.set(5, 6, exarray);
25+
ExpandableArray.dump(exarray, \"set(5, 6)\", intString);
26+
27+
exarray := ExpandableArray.update(5, 5, exarray);
28+
ExpandableArray.dump(exarray, \"update(5, 5)\", intString);
29+
30+
exarray := ExpandableArray.shrink(exarray);
31+
ExpandableArray.dump(exarray, \"shrink()\", intString);
32+
33+
exarray := matchcontinue(exarray)
34+
local
35+
ExpandableArray<Integer> ea;
36+
37+
case ea equation
38+
ea = ExpandableArray.set(6, 6, ea);
39+
ea = ExpandableArray.set(4, 4, ea);
40+
fail();
41+
then ea;
42+
43+
else equation
44+
ExpandableArray.dump(exarray, \"set(6, 6)\", intString);
45+
then exarray;
46+
end matchcontinue;
47+
48+
exarray := ExpandableArray.clear(exarray);
49+
ExpandableArray.dump(exarray, \"clear()\", intString);
50+
51+
exarray := ExpandableArray.shrink(exarray);
52+
ExpandableArray.dump(exarray, \"shrink()\", intString);
53+
54+
exarray := ExpandableArray.shrink(exarray);
55+
ExpandableArray.dump(exarray, \"shrink()\", intString);
56+
57+
exarray := ExpandableArray.set(7, 1, exarray);
58+
ExpandableArray.dump(exarray, \"set(7, 1)\", intString);
59+
60+
exarray := ExpandableArray.delete(7, exarray);
61+
ExpandableArray.dump(exarray, \"delete(7)\", intString);
62+
63+
exarray := ExpandableArray.shrink(exarray);
64+
ExpandableArray.dump(exarray, \"shrink()\", intString);
65+
end Test;
66+
end ExpandableArrayTest;
67+
"); getErrorString();
68+
69+
setCommandLineOptions("+d=rml,noevalfunc"); getErrorString();
70+
71+
ExpandableArrayTest.Test(); getErrorString();
72+
73+
// Result:
74+
// "
75+
// "
76+
// ""
77+
// true
78+
// ""
79+
// true
80+
// ""
81+
// new(2) (0/2)
82+
// ========================================
83+
// <empty>
84+
// set(2, 2) (1/2)
85+
// ========================================
86+
// 2: 2
87+
// add(1) (2/2)
88+
// ========================================
89+
// 1: 1
90+
// 2: 2
91+
// add(3) (3/4)
92+
// ========================================
93+
// 1: 1
94+
// 2: 2
95+
// 3: 3
96+
// set(5, 6) (4/8)
97+
// ========================================
98+
// 1: 1
99+
// 2: 2
100+
// 3: 3
101+
// 5: 6
102+
// update(5, 5) (4/8)
103+
// ========================================
104+
// 1: 1
105+
// 2: 2
106+
// 3: 3
107+
// 5: 5
108+
// shrink() (4/4)
109+
// ========================================
110+
// 1: 1
111+
// 2: 2
112+
// 3: 3
113+
// 4: 5
114+
// set(6, 6) (5/8)
115+
// ========================================
116+
// 1: 1
117+
// 2: 2
118+
// 3: 3
119+
// 4: 5
120+
// 6: 6
121+
// clear() (0/8)
122+
// ========================================
123+
// <empty>
124+
// shrink() (0/0)
125+
// ========================================
126+
// <empty>
127+
// shrink() (0/0)
128+
// ========================================
129+
// <empty>
130+
// set(7, 1) (1/7)
131+
// ========================================
132+
// 7: 1
133+
// delete(7) (0/7)
134+
// ========================================
135+
// <empty>
136+
// shrink() (0/0)
137+
// ========================================
138+
// <empty>
139+
//
140+
// ""
141+
// endResult

openmodelica/bootstrapping/LoadCompilerSources.mos

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -230,6 +230,7 @@ if true then /* Suppress output */
230230
prefixPath + "Util/DynLoad.mo",
231231
prefixPath + "Util/ErrorExt.mo",
232232
prefixPath + "Util/Error.mo",
233+
prefixPath + "Util/ExpandableArray.mo",
233234
prefixPath + "Util/File.mo",
234235
prefixPath + "Util/Flags.mo",
235236
prefixPath + "Util/FMI.mo",

openmodelica/bootstrapping/Makefile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ TEST = ../../rtest
44
TESTFILES = \
55
DiffAlgorithm.mos \
66
DumpTest.mos \
7+
ExpandableArrayTest.mos \
78
ExpressionTest.mos \
89
GraphTest.mos \
910
HashTableTest.mos \

0 commit comments

Comments
 (0)