Titan Core Initial Contribution
[deliverable/titan.core.git] / regression_test / unionOper / TunionOper.ttcn
1 /******************************************************************************
2 * Copyright (c) 2000-2014 Ericsson Telecom AB
3 * All rights reserved. This program and the accompanying materials
4 * are made available under the terms of the Eclipse Public License v1.0
5 * which accompanies this distribution, and is available at
6 * http://www.eclipse.org/legal/epl-v10.html
7 ******************************************************************************/
8 module TunionOper {
9 // ********** Type definitions *********************
10 type component unionOper_mycomp {};
11 type enumerated unionOper_myenum {xx1,xx2,xx3};
12 type record unionOper_trecord {
13 integer x1 optional,
14 float x2 };
15 type record of octetstring unionOper_trecof;
16 type set unionOper_tset {
17 integer x1,
18 float x2 optional };
19 type set of charstring unionOper_tsetof;
20 type union unionOper_tunion {
21 integer x1,
22 float x2 };
23 type union unionOper_myunion1 {integer x1, float x2}; // union of basic types
24 type union unionOper_myunion2 { // union of enum
25 unionOper_myenum x1,
26 integer x2};
27 type union unionOper_myunion3 { // union of record
28 unionOper_trecord x1,
29 integer x2};
30 type union unionOper_myunion4 { // union of record of
31 unionOper_trecof x1,
32 integer x2};
33 type union unionOper_myunion5 { // union of set
34 unionOper_tset x1,
35 integer x2};
36 type union unionOper_myunion6 { // union of set of
37 unionOper_tsetof x1,
38 integer x2};
39 type union unionOper_myunion7 { // union of union
40 unionOper_tunion x1,
41 integer x2};
42 type union unionOper_myunion8 { // union of same types
43 integer x1,
44 integer x2};
45 type union typedefunionComp_myunion {
46 unionOper_trecord x1,
47 unionOper_trecof x2,
48 unionOper_tset x3,
49 unionOper_tsetof x4,
50 unionOper_tunion x5,
51 integer x6[3]
52 };
53 // *************** Constanst ***********************
54 //const unionOper_trecord unionOper_temp1:={ x1:=omit, x2:=3.4 };
55 //const unionOper_trecof unionOper_temp2:={ 'AF12'O };
56 //const unionOper_tset unionOper_temp3:={ x1:=234, x2:=1.9};
57 //const unionOper_tsetof unionOper_temp4:={"f","8"};
58 //const unionOper_tunion unionOper_temp5:={ x2:=1.3 };
59 const unionOper_myunion1 unionOper_const1:={ //union with basic types
60 x1:=1 };
61 const unionOper_myunion2 unionOper_const2:={ //union with enum
62 x1:=xx1 };
63 const unionOper_myunion3 unionOper_const4:={ //union from record
64 x1:={ x1:=1, x2:=1.2 } };
65 const unionOper_myunion4 unionOper_const6:={ //union from record of
66 x1:={ '12AB'O, 'CD12'O } };
67 const unionOper_myunion5 unionOper_const8:={ //union from set
68 x1:={ x1:=2, x2:=1.3} };
69 const unionOper_myunion6 unionOper_const10:={ //union from set of
70 x1:={"a","b"} };
71 const unionOper_myunion7 unionOper_const12:={ //union from union
72 x1:={ x1 :=3 } };
73 const typedefunionComp_myunion unionOper_const13:= { x1:={ x1:=1, x2:=1.2 }};
74 const typedefunionComp_myunion unionOper_const14:= { x2:={ '12AB'O, 'CD12'O }};
75 const typedefunionComp_myunion unionOper_const15:= { x3:={ x1:=2, x2:=1.3 }};
76 const typedefunionComp_myunion unionOper_const16:= { x4:={ "a", "b", "c" }};
77 const typedefunionComp_myunion unionOper_const17:= { x5:={ x1 :=3 }};
78 const typedefunionComp_myunion unionOper_const18:= { x6:={ 1,2,3}};
79
80 testcase unionAssign() runs on unionOper_mycomp{
81 var unionOper_myunion1 x1:={ //union with basic types
82 x1:=1};
83 var unionOper_myunion1 x2,x3;
84 x2:={ x2:=1.2 };
85 if (x1.x1==1) {setverdict(pass);} //at declaration
86 else {setverdict(fail);}
87 if (ischosen(x1.x1)) {setverdict(pass);}
88 else {setverdict(fail);}
89 if (not(ischosen(x1.x2))) {setverdict(pass);}
90 else {setverdict(fail);}
91 if (x2.x2==1.2) {setverdict(pass);} //later
92 else {setverdict(fail);}
93 if (ischosen(x2.x2)) {setverdict(pass);}
94 else {setverdict(fail);}
95 if (not(ischosen(x2.x1))) {setverdict(pass);}
96 else {setverdict(fail);}
97 }
98
99 testcase unionAssignEnum() runs on unionOper_mycomp{
100 var unionOper_myunion2 x1:={ //union with enum
101 x1:=xx1};
102 var unionOper_myunion2 x2;
103 x2:={ x1:=xx2 };
104 if (x1.x1==xx1) {setverdict(pass);} //at declaration
105 else {setverdict(fail);}
106 if (ischosen(x1.x1)) {setverdict(pass);}
107 else {setverdict(fail);}
108 if (not(ischosen(x1.x2))) {setverdict(pass);}
109 else {setverdict(fail);}
110 if (x2.x1==xx2) {setverdict(pass);} //later
111 else {setverdict(fail);}
112 if (ischosen(x2.x1)) {setverdict(pass);}
113 else {setverdict(fail);}
114 if (not(ischosen(x2.x2))) {setverdict(pass);}
115 else {setverdict(fail);}
116 }
117
118 testcase unionAssignRec() runs on unionOper_mycomp{
119 //var unionOper_trecord temp1:={ x1:=omit, x2:=3.4 };
120 var unionOper_myunion3 x1:={ //union from record
121 x1:={ x1:=1, x2:=1.2 } };
122 var unionOper_myunion3 x2;
123 x2:={ x1:={ x1:=1, x2:=1.2 } };
124 if (x1.x1.x1==1) {setverdict(pass);} //at declaration
125 else {setverdict(fail);}
126 if (x1.x1.x2==1.2) {setverdict(pass);}
127 else {setverdict(fail);}
128 if (ischosen(x1.x1)) {setverdict(pass);}
129 else {setverdict(fail);}
130 if (not(ischosen(x1.x2))) {setverdict(pass);}
131 else {setverdict(fail);}
132 if (x2.x1.x1==1) {setverdict(pass);} //later
133 else {setverdict(fail);}
134 if (x2.x1.x2==1.2) {setverdict(pass);}
135 else {setverdict(fail);}
136 if (ischosen(x2.x1)) {setverdict(pass);}
137 else {setverdict(fail);}
138 if (not(ischosen(x2.x2))) {setverdict(pass);}
139 else {setverdict(fail);}
140 }
141
142 testcase unionAssignRecof() runs on unionOper_mycomp{
143 //var unionOper_trecof temp2:={'AF12'O};
144 var unionOper_myunion4 x1:={ //union from record of
145 x1:={ '12AB'O, 'CD12'O } };
146 var unionOper_myunion4 x2;
147 x2:={ x1:={ '12AB'O, 'CD12'O } };
148 if (x1.x1[0]=='12AB'O) {setverdict(pass);} //at declaration
149 else {setverdict(fail);}
150 if (x1.x1[1]=='CD12'O) {setverdict(pass);}
151 else {setverdict(fail);}
152 if (ischosen(x1.x1)) {setverdict(pass);}
153 else {setverdict(fail);}
154 if (not(ischosen(x1.x2))) {setverdict(pass);}
155 else {setverdict(fail);}
156 if (x2.x1[0]=='12AB'O) {setverdict(pass);} //later
157 else {setverdict(fail);}
158 if (x2.x1[1]=='CD12'O) {setverdict(pass);}
159 else {setverdict(fail);}
160 if (ischosen(x2.x1)) {setverdict(pass);}
161 else {setverdict(fail);}
162 if (not(ischosen(x2.x2))) {setverdict(pass);}
163 else {setverdict(fail);}
164 }
165
166
167 testcase unionAssignSet() runs on unionOper_mycomp{
168 //var unionOper_tset temp1:={ x1:=2, x2:=omit };
169 var unionOper_myunion5 x1:={ //union from record
170 x1:={ x1:=1, x2:=1.2 } };
171 var unionOper_myunion5 x2;
172 x2:={ x1:={ x1:=1, x2:=1.2 } };
173 if (x1.x1.x1==1) {setverdict(pass);} //at declaration
174 else {setverdict(fail);}
175 if (x1.x1.x2==1.2) {setverdict(pass);}
176 else {setverdict(fail);}
177 if (ischosen(x1.x1)) {setverdict(pass);}
178 else {setverdict(fail);}
179 if (not(ischosen(x1.x2))) {setverdict(pass);}
180 else {setverdict(fail);}
181 if (x2.x1.x1==1) {setverdict(pass);} //later
182 else {setverdict(fail);}
183 if (x2.x1.x2==1.2) {setverdict(pass);}
184 else {setverdict(fail);}
185 if (ischosen(x2.x1)) {setverdict(pass);}
186 else {setverdict(fail);}
187 if (not(ischosen(x2.x2))) {setverdict(pass);}
188 else {setverdict(fail);}
189 }
190
191 testcase unionAssignSetof() runs on unionOper_mycomp{
192 //var unionOper_tsetof temp2:={"a","7"};
193 var unionOper_myunion6 x1:={ //union from set of
194 x1:={ "1", "a" } };
195 var unionOper_myunion6 x2;
196 x2:={ x1:={ "1", "a" } };
197 if (x1.x1[0]=="1") {setverdict(pass);} //at declaration
198 else {setverdict(fail);}
199 if (x1.x1[1]=="a") {setverdict(pass);}
200 else {setverdict(fail);}
201 if (ischosen(x1.x1)) {setverdict(pass);}
202 else {setverdict(fail);}
203 if (not(ischosen(x1.x2))) {setverdict(pass);}
204 else {setverdict(fail);}
205 if (x2.x1[0]=="1") {setverdict(pass);} //later
206 else {setverdict(fail);}
207 if (x2.x1[1]=="a") {setverdict(pass);}
208 else {setverdict(fail);}
209 if (ischosen(x2.x1)) {setverdict(pass);}
210 else {setverdict(fail);}
211 if (not(ischosen(x2.x2))) {setverdict(pass);}
212 else {setverdict(fail);}
213 }
214
215 testcase unionAssignUnion() runs on unionOper_mycomp{
216 var unionOper_tunion temp5 := {x2:=1.3}
217 var unionOper_myunion7 x1:={ //union from union
218 x1:={ x1 :=3 } };
219 var unionOper_myunion7 x2;
220 x2:={ x1:={ x1 :=3 } };
221 if (x1.x1.x1==3) {setverdict(pass);} //at declaration
222 else {setverdict(fail);}
223 if (ischosen(x1.x1.x1)) {setverdict(pass);}
224 else {setverdict(fail);}
225 if (not(ischosen(x1.x1.x2))) {setverdict(pass);}
226 else {setverdict(fail);}
227 if (ischosen(x1.x1)) {setverdict(pass);}
228 else {setverdict(fail);}
229 if (not(ischosen(x1.x2))) {setverdict(pass);}
230 else {setverdict(fail);}
231 if (x2.x1.x1==3) {setverdict(pass);} //later
232 else {setverdict(fail);}
233 if (ischosen(x2.x1.x1)) {setverdict(pass);}
234 else {setverdict(fail);}
235 if (not(ischosen(x2.x1.x2))) {setverdict(pass);}
236 else {setverdict(fail);}
237 if (ischosen(x2.x1)) {setverdict(pass);}
238 else {setverdict(fail);}
239 if (not(ischosen(x2.x2))) {setverdict(pass);}
240 else {setverdict(fail);}
241 }
242
243 testcase unionAssignElem() runs on unionOper_mycomp{
244 var unionOper_myunion1 x1, x2; //union with basic types
245 x1:={ x1:=1 };
246 x2:= {x1:=2}
247 x1.x1:=3; // change value
248 x2.x2:=3.2; //choose other
249 if (x1.x1==3) {setverdict(pass);} //change value
250 else {setverdict(fail);}
251 if (ischosen(x1.x1)) {setverdict(pass);}
252 else {setverdict(fail);}
253 if (not(ischosen(x1.x2))) {setverdict(pass);}
254 else {setverdict(fail);}
255 if (x2.x2==3.2) {setverdict(pass);} //choose other
256 else {setverdict(fail);}
257 if (ischosen(x2.x2)) {setverdict(pass);}
258 else {setverdict(fail);}
259 if (not(ischosen(x2.x1))) {setverdict(pass);}
260 else {setverdict(fail);}
261 }
262
263 testcase unionAssignElemEnum() runs on unionOper_mycomp{
264 var unionOper_myunion2 x1, x2; //union with enum
265 x1:={ x1:=xx1 };
266 x2:= {x1:=xx2}
267 x1.x1:=xx3; // change value
268 x2.x2:=3; //choose other
269 if (x1.x1==xx3) {setverdict(pass);} //change value
270 else {setverdict(fail);}
271 if (ischosen(x1.x1)) {setverdict(pass);}
272 else {setverdict(fail);}
273 if (not(ischosen(x1.x2))) {setverdict(pass);}
274 else {setverdict(fail);}
275 if (x2.x2==3) {setverdict(pass);} //choose other
276 else {setverdict(fail);}
277 if (ischosen(x2.x2)) {setverdict(pass);}
278 else {setverdict(fail);}
279 if (not(ischosen(x2.x1))) {setverdict(pass);}
280 else {setverdict(fail);}
281 }
282
283 testcase unionAssignElemRec() runs on unionOper_mycomp{
284 //var unionOper_trecord temp1:={ x1:=omit, x2:=3.4 };
285 var unionOper_myunion3 x1,x2; //union from record
286 x1:={ x1:={ x1:=1, x2:=1.2 } };
287 x2:={ x1:={ x1:=1, x2:=1.2 } };
288 x1.x1.x1:=2; //change value
289 x2.x2:=2; //change selection
290 if (x1.x1.x1==2) {setverdict(pass);} //change value
291 else {setverdict(fail);}
292 if (x1.x1.x2==1.2) {setverdict(pass);}
293 else {setverdict(fail);}
294 if (ischosen(x1.x1)) {setverdict(pass);}
295 else {setverdict(fail);}
296 if (not(ischosen(x1.x2))) {setverdict(pass);}
297 else {setverdict(fail);}
298 if (x2.x2==2) {setverdict(pass);} //change selection
299 else {setverdict(fail);}
300 if (ischosen(x2.x2)) {setverdict(pass);}
301 else {setverdict(fail);}
302 if (not(ischosen(x2.x1))) {setverdict(pass);}
303 else {setverdict(fail);}
304 }
305
306 testcase unionAssignElemRecof() runs on unionOper_mycomp{
307 //var unionOper_trecof temp2:={'AF12'O};
308 var unionOper_myunion4 x1,x2; //union from record of
309 x1:={ x1:={ '12AB'O, 'CD12'O } };
310 x2:={ x1:={ '12AB'O, 'CD12'O } };
311 x1.x1[1]:='34AB'O; //change value
312 x2.x2:=2; //change selection
313 if (x1.x1[0]=='12AB'O) {setverdict(pass);} //change value
314 else {setverdict(fail);}
315 if (x1.x1[1]=='34AB'O) {setverdict(pass);}
316 else {setverdict(fail);}
317 if (ischosen(x1.x1)) {setverdict(pass);}
318 else {setverdict(fail);}
319 if (not(ischosen(x1.x2))) {setverdict(pass);}
320 else {setverdict(fail);}
321 if (x2.x2==2) {setverdict(pass);} //change selection
322 else {setverdict(fail);}
323 if (ischosen(x2.x2)) {setverdict(pass);}
324 else {setverdict(fail);}
325 if (not(ischosen(x2.x1))) {setverdict(pass);}
326 else {setverdict(fail);}
327 }
328
329
330 testcase unionAssignElemSet() runs on unionOper_mycomp{
331 //var unionOper_tset temp1:={ x1:=2, x2:=omit };
332 var unionOper_myunion5 x1,x2; //union from record
333 x1:= { x1:={ x1:=1, x2:=1.2 } };
334 x2:= { x1:={ x1:=1, x2:=1.2 } };
335 x1.x1.x2:=3.4; //change value
336 x2.x2:=3; //change selection
337 if (x1.x1.x1==1) {setverdict(pass);} //change value
338 else {setverdict(fail);}
339 if (x1.x1.x2==3.4) {setverdict(pass);}
340 else {setverdict(fail);}
341 if (ischosen(x1.x1)) {setverdict(pass);}
342 else {setverdict(fail);}
343 if (not(ischosen(x1.x2))) {setverdict(pass);}
344 else {setverdict(fail);}
345 if (x2.x2==3) {setverdict(pass);} //change selection
346 else {setverdict(fail);}
347 if (ischosen(x2.x2)) {setverdict(pass);}
348 else {setverdict(fail);}
349 if (not(ischosen(x2.x1))) {setverdict(pass);}
350 else {setverdict(fail);}
351 }
352
353 testcase unionAssignElemSetof() runs on unionOper_mycomp{
354 //var unionOper_tsetof temp2:={"a","7"};
355 var unionOper_myunion6 x1,x2; //union from record of
356 x1:={ x1:={ "1", "a" } };
357 x2:={ x2:=1 };
358 x1.x1[0]:="h"; //change value
359 x2.x1:={ "1", "a" }; //change selection
360 if (x1.x1[0]=="h") {setverdict(pass);} //change value
361 else {setverdict(fail);}
362 if (x1.x1[1]=="a") {setverdict(pass);}
363 else {setverdict(fail);}
364 if (ischosen(x1.x1)) {setverdict(pass);}
365 else {setverdict(fail);}
366 if (not(ischosen(x1.x2))) {setverdict(pass);}
367 else {setverdict(fail);}
368 if (x2.x1[0]=="1") {setverdict(pass);} //change selection
369 else {setverdict(fail);}
370 if (x2.x1[1]=="a") {setverdict(pass);}
371 else {setverdict(fail);}
372 if (ischosen(x2.x1)) {setverdict(pass);}
373 else {setverdict(fail);}
374 if (not(ischosen(x2.x2))) {setverdict(pass);}
375 else {setverdict(fail);}
376 }
377
378 testcase unionAssignElemUnion() runs on unionOper_mycomp{
379 //var unionOper_tunion temp5 := {x2:=1.3}
380 var unionOper_myunion7 x1,x2; //union from union
381 x1:={ x1:={ x1 :=3 } };
382 x2:={ x2:=2 };
383 x1.x1.x2:=3.4; //change value
384 x2.x1:={ x2 :=3.4 }; //change selection
385 if (x1.x1.x2==3.4) {setverdict(pass);} //change value
386 else {setverdict(fail);}
387 if (ischosen(x1.x1.x2)) {setverdict(pass);}
388 else {setverdict(fail);}
389 if (not(ischosen(x1.x1.x1))) {setverdict(pass);}
390 else {setverdict(fail);}
391 if (ischosen(x1.x1)) {setverdict(pass);}
392 else {setverdict(fail);}
393 if (not(ischosen(x1.x2))) {setverdict(pass);}
394 else {setverdict(fail);}
395 if (x2.x1.x2==3.4) {setverdict(pass);} //change selection
396 else {setverdict(fail);}
397 if (ischosen(x2.x1.x2)) {setverdict(pass);}
398 else {setverdict(fail);}
399 if (not(ischosen(x2.x1.x1))) {setverdict(pass);}
400 else {setverdict(fail);}
401 if (ischosen(x2.x1)) {setverdict(pass);}
402 else {setverdict(fail);}
403 if (not(ischosen(x2.x2))) {setverdict(pass);}
404 else {setverdict(fail);}
405 }
406
407
408 testcase unionConst() runs on unionOper_mycomp{
409 const unionOper_myunion1 const1:={ //union with basic types
410 x1:=1 };
411 if (unionOper_const1.x1==1) {setverdict(pass);} //definition part
412 else {setverdict(fail);}
413 if (ischosen(unionOper_const1.x1)) {setverdict(pass);}
414 else {setverdict(fail);}
415 if (not(ischosen(unionOper_const1.x2))) {setverdict(pass);}
416 else {setverdict(fail);}
417 if (const1.x1==1) {setverdict(pass);} //testcase
418 else {setverdict(fail);}
419 if (ischosen(const1.x1)) {setverdict(pass);}
420 else {setverdict(fail);}
421 if (not(ischosen(const1.x2))) {setverdict(pass);}
422 else {setverdict(fail);}
423 }
424
425 testcase unionConstEnum() runs on unionOper_mycomp{
426 const unionOper_myunion2 const2:={ //union with enum
427 x1:=xx1 };
428 if (unionOper_const2.x1==xx1) {setverdict(pass);} //definition part
429 else {setverdict(fail);}
430 if (ischosen(unionOper_const2.x1)) {setverdict(pass);}
431 else {setverdict(fail);}
432 if (not(ischosen(unionOper_const2.x2))) {setverdict(pass);}
433 else {setverdict(fail);}
434 if (const2.x1==xx1) {setverdict(pass);} //testcase
435 else {setverdict(fail);}
436 if (ischosen(const2.x1)) {setverdict(pass);}
437 else {setverdict(fail);}
438 if (not(ischosen(const2.x2))) {setverdict(pass);}
439 else {setverdict(fail);}
440 }
441
442 testcase unionConstRec() runs on unionOper_mycomp{
443 const unionOper_myunion3 const4:={ //union from record
444 x1:={ x1:=1, x2:=1.2 } };
445 if (unionOper_const4.x1.x1==1) {setverdict(pass);} //definition part
446 else {setverdict(fail);}
447 if (unionOper_const4.x1.x2==1.2) {setverdict(pass);}
448 else {setverdict(fail);}
449 if (ischosen(unionOper_const4.x1)) {setverdict(pass);}
450 else {setverdict(fail);}
451 if (not(ischosen(unionOper_const4.x2))) {setverdict(pass);}
452 else {setverdict(fail);}
453 if (const4.x1.x1==1) {setverdict(pass);} //testcase
454 else {setverdict(fail);}
455 if (const4.x1.x2==1.2) {setverdict(pass);}
456 else {setverdict(fail);}
457 if (ischosen(const4.x1)) {setverdict(pass);}
458 else {setverdict(fail);}
459 if (not(ischosen(const4.x2))) {setverdict(pass);}
460 else {setverdict(fail);}
461 }
462
463 testcase unionConstRecof() runs on unionOper_mycomp{
464 const unionOper_myunion4 const6:={ //union from record of
465 x1:={ '12AB'O, 'CD12'O } };
466 if (unionOper_const6.x1[0]=='12AB'O) {setverdict(pass);} //definition part
467 else {setverdict(fail);}
468 if (unionOper_const6.x1[1]=='CD12'O) {setverdict(pass);}
469 else {setverdict(fail);}
470 if (ischosen(unionOper_const6.x1)) {setverdict(pass);}
471 else {setverdict(fail);}
472 if (not(ischosen(unionOper_const6.x2))) {setverdict(pass);}
473 else {setverdict(fail);}
474 if (const6.x1[0]=='12AB'O) {setverdict(pass);} //testcase
475 else {setverdict(fail);}
476 if (const6.x1[1]=='CD12'O) {setverdict(pass);}
477 else {setverdict(fail);}
478 if (ischosen(const6.x1)) {setverdict(pass);}
479 else {setverdict(fail);}
480 if (not(ischosen(const6.x2))) {setverdict(pass);}
481 else {setverdict(fail);}
482 }
483
484
485 testcase unionConstSet() runs on unionOper_mycomp{
486 const unionOper_myunion5 const8:={ //union from set
487 x1:={ x1:=2, x2:=1.3} };
488 if (unionOper_const8.x1.x1==2) {setverdict(pass);} //definition part
489 else {setverdict(fail);}
490 if (unionOper_const8.x1.x2==1.3) {setverdict(pass);}
491 else {setverdict(fail);}
492 if (ischosen(unionOper_const8.x1)) {setverdict(pass);}
493 else {setverdict(fail);}
494 if (not(ischosen(unionOper_const8.x2))) {setverdict(pass);}
495 else {setverdict(fail);}
496 if (const8.x1.x1==2) {setverdict(pass);} //testcase
497 else {setverdict(fail);}
498 if (const8.x1.x2==1.3) {setverdict(pass);}
499 else {setverdict(fail);}
500 if (ischosen(const8.x1)) {setverdict(pass);}
501 else {setverdict(fail);}
502 if (not(ischosen(const8.x2))) {setverdict(pass);}
503 else {setverdict(fail);}
504 }
505
506 testcase unionConstSetof() runs on unionOper_mycomp{
507 const unionOper_myunion6 const10:={ //union from set of
508 x1:={"a","b"} };
509 if (unionOper_const10.x1[0]=="a") {setverdict(pass);} //definition part
510 else {setverdict(fail);}
511 if (unionOper_const10.x1[1]=="b") {setverdict(pass);}
512 else {setverdict(fail);}
513 if (ischosen(unionOper_const10.x1)) {setverdict(pass);}
514 else {setverdict(fail);}
515 if (not(ischosen(unionOper_const10.x2))) {setverdict(pass);}
516 else {setverdict(fail);}
517 if (const10.x1[0]=="a") {setverdict(pass);} //testcase
518 else {setverdict(fail);}
519 if (const10.x1[1]=="b") {setverdict(pass);}
520 else {setverdict(fail);}
521 if (ischosen(const10.x1)) {setverdict(pass);}
522 else {setverdict(fail);}
523 if (not(ischosen(const10.x2))) {setverdict(pass);}
524 else {setverdict(fail);}
525 }
526
527 testcase unionConstUnion() runs on unionOper_mycomp{
528 const unionOper_myunion7 const12:={ //union from union
529 x1:={ x1 :=3 } };
530 if (unionOper_const12.x1.x1==3) {setverdict(pass);} //definition part
531 else {setverdict(fail);}
532 if (ischosen(unionOper_const12.x1.x1)) {setverdict(pass);}
533 else {setverdict(fail);}
534 if (not(ischosen(unionOper_const12.x1.x2))) {setverdict(pass);}
535 else {setverdict(fail);}
536 if (ischosen(unionOper_const12.x1)) {setverdict(pass);}
537 else {setverdict(fail);}
538 if (not(ischosen(unionOper_const12.x2))) {setverdict(pass);}
539 else {setverdict(fail);}
540 if (const12.x1.x1==3) {setverdict(pass);} //testcase
541 else {setverdict(fail);}
542 if (ischosen(const12.x1.x1)) {setverdict(pass);}
543 else {setverdict(fail);}
544 if (not(ischosen(const12.x1.x2))) {setverdict(pass);}
545 else {setverdict(fail);}
546 if (ischosen(const12.x1)) {setverdict(pass);}
547 else {setverdict(fail);}
548 if (not(ischosen(const12.x2))) {setverdict(pass);}
549 else {setverdict(fail);}
550 }
551
552 testcase unionComp() runs on unionOper_mycomp{
553 var unionOper_myunion1 x1,x2,x3,x4;
554 x1:={ x1:=1 };
555 x2:={ x1:=1 };
556 x3:={ x1:=2 }; // different value
557 x4:={ x2:=1.2 }; // different selection
558 if (x1==x2) {setverdict(pass);}
559 else {setverdict(fail);}
560 if (not(x1==x3)) {setverdict(pass);} // different value
561 else {setverdict(fail);}
562 if (not(x4==x1)) {setverdict(pass);} // different selection
563 else {setverdict(fail);}
564 if (not(x1!=x2)) {setverdict(pass);}
565 else {setverdict(fail);}
566 if (x1!=x3) {setverdict(pass);} // different value
567 else {setverdict(fail);}
568 if (x4!=x2) {setverdict(pass);} // different selection
569 else {setverdict(fail);}
570 }
571
572 testcase unionCompSame() runs on unionOper_mycomp{
573 var unionOper_myunion8 x1,x2;
574 x1:={ x1:=1 }; // same value, different selection
575 x2:={ x2:=1 };
576 if (x1!=x2) {setverdict(pass);}
577 else {setverdict(fail);}
578 if (not(x1==x2)) {setverdict(pass);}
579 else {setverdict(fail);}
580 }
581
582 testcase unionCompEnum() runs on unionOper_mycomp{
583 var unionOper_myunion2 x1,x2,x3,x4;
584 x1:={ x1:=xx1 };
585 x2:={ x1:=xx1 };
586 x3:={ x1:=xx2 }; // different value
587 x4:={ x2:=1 }; // different selection
588 if (x1==x2) {setverdict(pass);}
589 else {setverdict(fail);}
590 if (not(x1==x3)) {setverdict(pass);} // different value
591 else {setverdict(fail);}
592 if (not(x4==x1)) {setverdict(pass);} // different selection
593 else {setverdict(fail);}
594 if (not(x1!=x2)) {setverdict(pass);}
595 else {setverdict(fail);}
596 if (x1!=x3) {setverdict(pass);} // different value
597 else {setverdict(fail);}
598 if (x4!=x2) {setverdict(pass);} // different selection
599 else {setverdict(fail);}
600 }
601
602
603 testcase unionCompRec() runs on unionOper_mycomp{
604 //var unionOper_trecord temp1:={ x1:=omit, x2:=3.4 };
605 var unionOper_myunion3 x1,x2,x3,x4;
606 x1 :={ x1:={ x1:=1, x2:=1.2 } };
607 x2 :={ x1:={ x1:=1, x2:=1.2 } };
608 x3 :={ x1:={ x1:=2, x2:=1.2 } }; // different value
609 x4 :={ x2:=1 }; // different selection
610 if (x1==x2) {setverdict(pass);}
611 else {setverdict(fail);}
612 if (not(x1==x3)) {setverdict(pass);} // different value
613 else {setverdict(fail);}
614 if (not(x4==x1)) {setverdict(pass);} // different selection
615 else {setverdict(fail);}
616 if (not(x1!=x2)) {setverdict(pass);}
617 else {setverdict(fail);}
618 if (x1!=x3) {setverdict(pass);} // different value
619 else {setverdict(fail);}
620 if (x4!=x2) {setverdict(pass);} // different selection
621 else {setverdict(fail);}
622 }
623
624
625 testcase unionCompRecof() runs on unionOper_mycomp{
626 //var unionOper_trecof temp2:={'AF12'O};
627 var unionOper_myunion4 x1,x2,x3,x4; //union from record of
628 x1:={ x1:={ '12AB'O, 'CD12'O } };
629 x2:={ x1:={ '12AB'O, 'CD12'O } };
630 x3:={ x1:={ '12AB'O } }; //different value
631 x4:={ x2:=12 }; //different selection
632 if (x1==x2) {setverdict(pass);}
633 else {setverdict(fail);}
634 if (not(x1==x3)) {setverdict(pass);} // different value
635 else {setverdict(fail);}
636 if (not(x4==x1)) {setverdict(pass);} // different selection
637 else {setverdict(fail);}
638 if (not(x1!=x2)) {setverdict(pass);}
639 else {setverdict(fail);}
640 if (x1!=x3) {setverdict(pass);} // different value
641 else {setverdict(fail);}
642 if (x4!=x2) {setverdict(pass);} // different selection
643 else {setverdict(fail);}
644 }
645
646
647 testcase unionCompSet() runs on unionOper_mycomp{
648 //var unionOper_tset temp1:={ x1:=2, x2:=omit };
649 var unionOper_myunion5 x1,x2,x3,x4; // union from set
650 x1:={ x1:={ x1:=1, x2:=1.2 } };
651 x2:={ x1:={ x1:=1, x2:=1.2 } };
652 x3:={ x1:={ x1:=4, x2:=1.2 } }; // different value
653 x4:={ x2:=4 }; // different selection
654 if (x1==x2) {setverdict(pass);}
655 else {setverdict(fail);}
656 if (not(x1==x3)) {setverdict(pass);} // different value
657 else {setverdict(fail);}
658 if (not(x4==x1)) {setverdict(pass);} // different selection
659 else {setverdict(fail);}
660 if (not(x1!=x2)) {setverdict(pass);}
661 else {setverdict(fail);}
662 if (x1!=x3) {setverdict(pass);} // different value
663 else {setverdict(fail);}
664 if (x4!=x2) {setverdict(pass);} // different selection
665 else {setverdict(fail);}
666 }
667
668 testcase unionCompSetof() runs on unionOper_mycomp{
669 //var unionOper_tsetof temp2:={"a","7"};
670 var unionOper_myunion6 x1,x2,x3,x4; //union from record of
671 x1:={ x1:={ "1", "a" } };
672 x2:={ x1:={ "1", "a" } };
673 x3:={ x1:={ "1", "a", "k" } }; //different value
674 x4:={ x2:=2 }; //different selection
675 if (x1==x2) {setverdict(pass);}
676 else {setverdict(fail);}
677 if (not(x1==x3)) {setverdict(pass);} // different value
678 else {setverdict(fail);}
679 if (not(x4==x1)) {setverdict(pass);} // different selection
680 else {setverdict(fail);}
681 if (not(x1!=x2)) {setverdict(pass);}
682 else {setverdict(fail);}
683 if (x1!=x3) {setverdict(pass);} // different value
684 else {setverdict(fail);}
685 if (x4!=x2) {setverdict(pass);} // different selection
686 else {setverdict(fail);}
687 }
688
689 testcase unionCompUnion() runs on unionOper_mycomp{
690 var unionOper_tunion temp5 := {x2:=1.3}
691 var unionOper_myunion7 x1,x2,x3,x4; // union form union
692 x1:={ x1:={ x1 :=3 } };
693 x2:={ x1:={ x1 :=3 } };
694 x3:={ x1:={ x2 :=3.9 } }; //different value
695 x4:={ x2:=3 }; //different selection
696 if (x1==x2) {setverdict(pass);}
697 else {setverdict(fail);}
698 if (not(x1==x3)) {setverdict(pass);} // different value
699 else {setverdict(fail);}
700 if (not(x4==x1)) {setverdict(pass);} // different selection
701 else {setverdict(fail);}
702 if (not(x1!=x2)) {setverdict(pass);}
703 else {setverdict(fail);}
704 if (x1!=x3) {setverdict(pass);} // different value
705 else {setverdict(fail);}
706 if (x4!=x2) {setverdict(pass);} // different selection
707 else {setverdict(fail);}
708 }
709
710 type union myu1 {
711 integer f1 (0..255),
712 charstring f2 length(0..255)
713 }
714 type myu1 myu2
715 type myu1 myu3 ({ f1 := 0 }, { f1 := 1 }, { f2 := "" })
716 type myu1 myu4 (myu3)
717
718 function f_u1() return myu3 {
719 var myu1 v_myu1 := { f1 := 0 }
720 var myu2 v_myu2 := { f2 := "" }
721 if (v_myu1 == v_myu2) { return v_myu1 }
722 else { return v_myu2 }
723 }
724
725 testcase unionSubtypes() runs on unionOper_mycomp {
726 var template myu1 vt_myu1 := { f1 := 0 } // Restricted fields.
727 var template myu4 vt_myu2 := { f2 := "" } // Type list.
728 var myu1 v_myu1 := { f2 := "0" }
729 var myu4 v_myu2 := { f2 := "" }
730
731 if (valueof(vt_myu1.f1) == str2int(v_myu1.f2) and v_myu2 == valueof(vt_myu2)) { setverdict(pass) }
732 else { setverdict(fail) }
733 if (f_u1() != f_u1()) { setverdict(fail) }
734 else { setverdict(pass) }
735 }
736
737 testcase unionIsvalue() runs on unionOper_mycomp{
738 var unionOper_tunion u0;
739 var unionOper_tunion u1 := { x1 := 1 };
740 var unionOper_tunion u2;
741 u2.x2 := 1.0;
742 var unionOper_tunion u3 := { x2 := 1.0 };
743 if ( isvalue(u0) ) { setverdict(fail); } else { setverdict(pass); };
744 if ( isvalue(u1) ) { setverdict(pass); } else { setverdict(fail); };
745 if ( isvalue(u2) ) { setverdict(pass); } else { setverdict(fail); };
746 if ( isvalue(u3) ) { setverdict(pass); } else { setverdict(fail); };
747
748 template unionOper_tunion t_union1 := { x1:= 1 }
749 template unionOper_tunion t_union2 := * ;
750 template unionOper_tunion t_union3 := { x1 := (1,2,3) }
751 template unionOper_tunion t_union4 := { x1 := ? }
752
753 if ( isvalue(t_union1) ) { setverdict(pass); } else { setverdict(fail); };
754 if ( isvalue(t_union1.x1) ) { setverdict(pass); } else { setverdict(fail); };
755 if ( isvalue(t_union2) ) { setverdict(fail); } else { setverdict(pass); };
756 if ( isvalue(t_union3) ) { setverdict(fail); } else { setverdict(pass); };
757 if ( isvalue(t_union3.x1) ) { setverdict(fail); } else { setverdict(pass); };
758 if ( isvalue(t_union4) ) { setverdict(fail); } else { setverdict(pass); };
759 if ( isvalue(t_union4.x1) ) { setverdict(fail); } else { setverdict(pass); };
760
761 if ( isvalue(modifies t_union1 := { x2 := 33.0 }) ) { setverdict(pass); } else { setverdict(fail); };
762 if ( isvalue(modifies t_union1 := { x2 := ? }) ) { setverdict(fail); } else { setverdict(pass); };
763 }
764
765 testcase unionIsbound() runs on unionOper_mycomp{
766 var unionOper_tunion u0;
767 var unionOper_tunion u1 := { x1 := 1 };
768 var unionOper_tunion u2;
769 u2.x2 := 1.0;
770 var unionOper_tunion u3 := { x2 := 1.0 };
771 if ( isbound(u0) ) { setverdict(fail); } else { setverdict(pass); };
772 if ( isbound(u0.x1) ) { setverdict(fail); } else { setverdict(pass); };
773 if ( isbound(u0.x2) ) { setverdict(fail); } else { setverdict(pass); };
774 if ( isbound(u1) ) { setverdict(pass); } else { setverdict(fail); };
775 if ( isbound(u1.x1) ) { setverdict(pass); } else { setverdict(fail); };
776 if ( isbound(u1.x2) ) { setverdict(fail); } else { setverdict(pass); };
777 if ( isbound(u2) ) { setverdict(pass); } else { setverdict(fail); };
778 if ( isbound(u2.x1) ) { setverdict(fail); } else { setverdict(pass); };
779 if ( isbound(u2.x2) ) { setverdict(pass); } else { setverdict(fail); };
780 if ( isbound(u3) ) { setverdict(pass); } else { setverdict(fail); };
781 if ( isbound(u3.x1) ) { setverdict(fail); } else { setverdict(pass); };
782 if ( isbound(u3.x2) ) { setverdict(pass); } else { setverdict(fail); };
783
784 template unionOper_tunion t_union1 := { x1:= 1 }
785 template unionOper_tunion t_union2 := * ;
786 template unionOper_tunion t_union3 := { x1 := (1,2,3) }
787 template unionOper_tunion t_union4 := { x1 := ? }
788
789 if ( isbound(t_union1) ) { setverdict(pass); } else { setverdict(fail); };
790 if ( isbound(t_union1.x1) ) { setverdict(pass); } else { setverdict(fail); };
791 if ( isbound(t_union2) ) { setverdict(pass); } else { setverdict(fail); };
792 if ( isbound(t_union3) ) { setverdict(pass); } else { setverdict(fail); };
793 if ( isbound(t_union3.x1) ) { setverdict(pass); } else { setverdict(fail); };
794 if ( isbound(t_union4) ) { setverdict(pass); } else { setverdict(fail); };
795 if ( isbound(t_union4.x1) ) { setverdict(pass); } else { setverdict(fail); };
796
797 if ( isbound(modifies t_union1 := { x2 := 33.0 }) ) { setverdict(pass); } else { setverdict(fail); };
798 if ( isbound(modifies t_union1 := { x2 := ? }) ) { setverdict(pass); } else { setverdict(fail); };
799 }
800
801 type record of charstring ROC;
802 type record of integer ROI;
803 type record MyRecord1 {
804 integer i optional,
805 float x optional,
806 charstring c
807 }
808
809 type union MyUnion1 {
810 ROC roc,
811 integer i,
812 ROI roi,
813 MyRecord1 r
814 }
815
816 const MyUnion1 c_myunion1:= { roc:= { "1aa", "2bb", "3cc"}}
817 const MyUnion1 c_myunion2:= { i:= 5}
818
819 testcase tc_unionOfRecordOfs1() runs on unionOper_mycomp {
820 var MyUnion1 vl_u:= c_myunion1;
821 if(isbound(vl_u)) {setverdict(pass)} else {setverdict(fail)}
822 if(isbound(vl_u.roc)){setverdict(pass)} else {setverdict(fail)}
823 if(isbound(vl_u.roc[0])){setverdict(pass)}else {setverdict(fail)}
824 if(isbound(vl_u.roc[1])){setverdict(pass)}else {setverdict(fail)}
825 if(isbound(vl_u.roc[2])){setverdict(pass)}else {setverdict(fail)}
826 if(isbound(vl_u.roc[3])){setverdict(fail)}else {setverdict(pass)}
827 if(isbound(vl_u.roc[99])){setverdict(fail)}else {setverdict(pass)}
828 if(isbound(vl_u.i)){setverdict(fail)}else {setverdict(pass)}
829 if(isbound(vl_u.roi)){setverdict(fail)}else {setverdict(pass)}
830 if(isbound(vl_u.roi[0])){setverdict(fail)}else {setverdict(pass)}
831 if(isbound(vl_u.roi[1])){setverdict(fail)} else {setverdict(pass)}
832 log(vl_u.roc);
833 }
834
835 testcase tc_unionOfRecordOfs2() runs on unionOper_mycomp {
836 var MyUnion1 vl_u:= c_myunion2;
837 if(isbound(vl_u)) {setverdict(pass)} else {setverdict(fail)}
838 if(isbound(vl_u.roc)){setverdict(fail)} else {setverdict(pass)}
839 if(isbound(vl_u.roc[0])){setverdict(fail)} else {setverdict(pass)}
840 if(isbound(vl_u.roc[1])){setverdict(fail)} else {setverdict(pass)}
841 if(isbound(vl_u.roc[2])){setverdict(fail)} else {setverdict(pass)}
842 if(isbound(vl_u.roc[3])){setverdict(fail)} else {setverdict(pass)}
843 if(isbound(vl_u.roc[99])){setverdict(fail)} else {setverdict(pass)}
844 if(isbound(vl_u.r)){setverdict(fail)} else {setverdict(pass)};
845 if(isbound(vl_u.r.i)){setverdict(fail)} else {setverdict(pass)};
846 if(isbound(vl_u.r.x)){setverdict(fail)} else {setverdict(pass)};
847 if(isbound(vl_u.r.c)){setverdict(fail)} else {setverdict(pass)};
848 //checks if the selected item remained the same
849 if(isbound(vl_u.i)){setverdict(pass)}else {setverdict(fail)}
850 if(isbound(vl_u.roi)){setverdict(fail)} else {setverdict(pass)}
851 if(isbound(vl_u.roi[0])){setverdict(fail)}else {setverdict(pass)}
852 if(isbound(vl_u.roi[1])){setverdict(fail)} else {setverdict(pass)}
853 }
854
855
856 // testcase tc_compilationerror1() runs on unionOper_mycomp {
857 // var MyUnion1 vl_u:= c_myunion2;
858 // if(isbound(vl_u)) {setverdict(pass)} else {setverdict(fail)}
859 // if(isbound(vl_u.roc)){setverdict(fail)} else {setverdict(pass)}
860 // if(isbound(vl_u.roc[0])){setverdict(fail)}else {setverdict(pass)}
861 // if(isbound(vl_u.r.x)){setverdict(fail)}else {setverdict(pass)}
862 // if(isbound(vl_u.roc[99])){setverdict(fail)} else {setverdict(pass)}
863 // }
864
865
866
867 testcase tc_union_modify() runs on unionOper_mycomp {
868 var MyUnion1 vl_u:= c_myunion2;
869 if(isbound(vl_u)) {setverdict(pass)} else {setverdict(fail)}
870 if(isbound(vl_u.roc)){setverdict(fail)} else {setverdict(pass)}
871 if(isbound(vl_u.roi)){setverdict(fail)} else {setverdict(pass)}
872
873 vl_u:=c_myunion1;
874 if(isbound(vl_u)) {setverdict(pass)} else {setverdict(fail)}
875 if(isbound(vl_u.roc)){setverdict(pass)} else {setverdict(fail)}
876 if(isbound(vl_u.roc[0])){setverdict(pass)}else {setverdict(fail)}
877 if(isbound(vl_u.roc[1])){setverdict(pass)}else {setverdict(fail)}
878 if(isbound(vl_u.roc[2])){setverdict(pass)}else {setverdict(fail)}
879 if(isbound(vl_u.roc[3])){setverdict(fail)}
880 if(isbound(vl_u.roc[99])){setverdict(fail)}
881 if(isbound(vl_u.i)){setverdict(fail)}
882 if(isbound(vl_u.roi)){setverdict(fail)}
883 if(isbound(vl_u.roi[0])){setverdict(fail)}
884 if(isbound(vl_u.roi[1])){setverdict(fail)} else {setverdict(pass)}
885 log(vl_u.roc);
886 }
887 //expected:error
888 testcase tc_sideeffect1() runs on unionOper_mycomp {
889 var MyUnion1 vl_u:= c_myunion1; // { roc:= { "1aa", "2bb", "3cc"}}
890 if(isbound(vl_u.roc[3])){setverdict(fail)}else {setverdict(pass)}
891 if(ispresent(vl_u.roc[3])){setverdict(fail)}else {setverdict(pass)}
892 }
893
894 //expected:error
895 testcase tc_sideeffect2() runs on unionOper_mycomp {
896 var MyUnion1 vl_u:= c_myunion1; // { roc:= { "1aa", "2bb", "3cc"}}
897 var integer vl_oldsize:=0, vl_newsize:=0;
898 vl_oldsize:=sizeof(vl_u.roc);
899
900 if(isbound(vl_u.i)){setverdict(fail)}else {setverdict(pass)}
901
902 if(isbound(vl_u.roc)) {setverdict(pass)}else {setverdict(fail)}
903
904 //checks if size is unchenged
905 if(isbound(vl_u.roc[4])) {setverdict(fail)}else {setverdict(pass)}
906 vl_newsize:=sizeof(vl_u.roc);
907 if(vl_newsize == vl_oldsize) {setverdict(pass)}else {setverdict(fail)}
908 //log(vl_u.i);
909 }
910
911 testcase tc_unionOfRecordOfs1_ispresent() runs on unionOper_mycomp {
912 var MyUnion1 vl_u:= c_myunion1;
913 if(ispresent(vl_u)) {setverdict(pass)} else {setverdict(fail)}
914 }
915
916 testcase tc_unionOfRecordOfs2_ispresent() runs on unionOper_mycomp {
917 var MyUnion1 vl_u:= c_myunion1;
918 if(ispresent(vl_u.roc)){setverdict(pass)} else {setverdict(fail)}
919 if(ispresent(vl_u.roc[0])){setverdict(pass)}else {setverdict(fail)}
920 if(ispresent(vl_u.roc[1])){setverdict(pass)}else {setverdict(fail)}
921 if(ispresent(vl_u.roc[2])){setverdict(pass)}else {setverdict(fail)}
922 if(ispresent(vl_u.roc[3])){setverdict(fail)}else {setverdict(pass)}
923 if(ispresent(vl_u.roc[99])){setverdict(fail)}else {setverdict(pass)}
924 if(ispresent(vl_u.i)){setverdict(fail)}else {setverdict(pass)}
925 if(ispresent(vl_u.roi)){setverdict(fail)}else {setverdict(pass)}
926 if(ispresent(vl_u.roi[0])){setverdict(fail)}else {setverdict(pass)}
927 if(ispresent(vl_u.roi[1])){setverdict(fail)} else {setverdict(pass)}
928 log(vl_u.roc);
929 }
930
931 testcase tc_unionOfRecordOfs3_ispresent() runs on unionOper_mycomp {
932 var MyUnion1 vl_u:= c_myunion2;
933 if(ispresent(vl_u)) {setverdict(pass)} else {setverdict(fail)}
934 if(ispresent(vl_u.roc)){setverdict(fail)} else {setverdict(pass)}
935 if(ispresent(vl_u.roc[0])){setverdict(fail)} else {setverdict(pass)}
936 if(ispresent(vl_u.roc[1])){setverdict(fail)} else {setverdict(pass)}
937 if(ispresent(vl_u.roc[2])){setverdict(fail)} else {setverdict(pass)}
938 if(ispresent(vl_u.roc[3])){setverdict(fail)} else {setverdict(pass)}
939 if(ispresent(vl_u.roc[99])){setverdict(fail)} else {setverdict(pass)}
940 if(ispresent(vl_u.r)){setverdict(fail)} else {setverdict(pass)};
941 if(ispresent(vl_u.r.i)){setverdict(fail)} else {setverdict(pass)};
942 if(ispresent(vl_u.r.x)){setverdict(fail)} else {setverdict(pass)};
943 if(ispresent(vl_u.r.c)){setverdict(fail)} else {setverdict(pass)};
944 //checks if the selected item remained the same
945 if(ispresent(vl_u.i)){setverdict(pass)}else {setverdict(fail)}
946 if(ispresent(vl_u.roi)){setverdict(fail)} else {setverdict(pass)}
947 if(ispresent(vl_u.roi[0])){setverdict(fail)}else {setverdict(pass)}
948 if(ispresent(vl_u.roi[1])){setverdict(fail)} else {setverdict(pass)}
949 }
950
951
952 // testcase tc_compilationerror1() runs on unionOper_mycomp {
953 // var MyUnion1 vl_u:= c_myunion2;
954 // if(ispresent(vl_u)) {setverdict(pass)} else {setverdict(fail)}
955 // if(ispresent(vl_u.roc)){setverdict(fail)} else {setverdict(pass)}
956 // if(ispresent(vl_u.roc[0])){setverdict(fail)}else {setverdict(pass)}
957 // if(ispresent(vl_u.r.x)){setverdict(fail)}else {setverdict(pass)}
958 // if(ispresent(vl_u.roc[99])){setverdict(fail)} else {setverdict(pass)}
959 // }
960
961
962
963 testcase tc_union_modify_ispresent() runs on unionOper_mycomp {
964 var MyUnion1 vl_u:= c_myunion2;
965 if(ispresent(vl_u)) {setverdict(pass)} else {setverdict(fail)}
966 if(ispresent(vl_u.roc)){setverdict(fail)} else {setverdict(pass)}
967 if(ispresent(vl_u.roi)){setverdict(fail)} else {setverdict(pass)}
968
969 vl_u:=c_myunion1;
970 if(ispresent(vl_u)) {setverdict(pass)} else {setverdict(fail)}
971 if(ispresent(vl_u.roc)){setverdict(pass)} else {setverdict(fail)}
972 if(ispresent(vl_u.roc[0])){setverdict(pass)}else {setverdict(fail)}
973 if(ispresent(vl_u.roc[1])){setverdict(pass)}else {setverdict(fail)}
974 if(ispresent(vl_u.roc[2])){setverdict(pass)}else {setverdict(fail)}
975 if(ispresent(vl_u.roc[3])){setverdict(fail)}
976 if(ispresent(vl_u.roc[99])){setverdict(fail)}
977 if(ispresent(vl_u.i)){setverdict(fail)}
978 if(ispresent(vl_u.roi)){setverdict(fail)}
979 if(ispresent(vl_u.roi[0])){setverdict(fail)}
980 if(ispresent(vl_u.roi[1])){setverdict(fail)} else {setverdict(pass)}
981 log(vl_u.roc);
982 }
983 //expected:error
984 testcase tc_sideeffect1_ispresent() runs on unionOper_mycomp {
985 var MyUnion1 vl_u:= c_myunion1; // { roc:= { "1aa", "2bb", "3cc"}}
986 if(ispresent(vl_u.roc[2])){setverdict(pass)}else {setverdict(fail)}
987 if(ispresent(vl_u.roc[3])){setverdict(fail)}else {setverdict(pass)}
988 }
989
990 //expected:error
991 testcase tc_sideeffect2_ispresent() runs on unionOper_mycomp {
992 var MyUnion1 vl_u:= c_myunion1; // { roc:= { "1aa", "2bb", "3cc"}}
993 var integer vl_oldsize:=0, vl_newsize:=0;
994 vl_oldsize:=sizeof(vl_u.roc);
995
996 if(ispresent(vl_u.i)){setverdict(fail)}else {setverdict(pass)}
997
998 if(ispresent(vl_u.roc)) {setverdict(pass)}else {setverdict(fail)}
999
1000 //checks if size is unchenged
1001 if(ispresent(vl_u.roc[4])) {setverdict(fail)}else {setverdict(pass)}
1002 vl_newsize:=sizeof(vl_u.roc);
1003 if(vl_newsize == vl_oldsize) {setverdict(pass)}else {setverdict(fail)}
1004 //log(vl_u.i);
1005 }
1006
1007 control {
1008 const typedefunionComp_myunion cl_1:= { x1:={ x1:=1, x2:=1.2 }}; // constant in control part
1009 const typedefunionComp_myunion cl_2:= { x2:={ '12AB'O, 'CD12'O }};
1010 const typedefunionComp_myunion cl_3:= { x3:={ x1:=2, x2:=1.3 }};
1011 const typedefunionComp_myunion cl_4:= { x4:={ "a", "b", "c" }};
1012 const typedefunionComp_myunion cl_5:= { x5:={ x1 :=3 }};
1013 const typedefunionComp_myunion cl_6:= { x6:={ 1,2,3}};
1014 var typedefunionComp_myunion vl_1; // variable in control part
1015 var typedefunionComp_myunion vl_2;
1016 var typedefunionComp_myunion vl_3;
1017 var typedefunionComp_myunion vl_4;
1018 var typedefunionComp_myunion vl_5;
1019 var typedefunionComp_myunion vl_6;
1020
1021 execute(unionAssign());
1022 execute(unionAssignEnum());
1023 execute(unionAssignRec());
1024 execute(unionAssignRecof());
1025 execute(unionAssignSet());
1026 execute(unionAssignSetof());
1027 execute(unionAssignUnion());
1028 execute(unionAssignElem());
1029 execute(unionAssignElemEnum());
1030 execute(unionAssignElemRec());
1031 execute(unionAssignElemRecof());
1032 execute(unionAssignElemSet());
1033 execute(unionAssignElemSetof());
1034 execute(unionAssignElemUnion());
1035 execute(unionConst());
1036 execute(unionConstEnum());
1037 execute(unionConstRec());
1038 execute(unionConstRecof());
1039 execute(unionConstSet());
1040 execute(unionConstSetof());
1041 execute(unionConstUnion())
1042 execute(unionComp());
1043 execute(unionCompSame());
1044 execute(unionCompEnum());
1045 execute(unionCompRec());
1046 execute(unionCompRecof());
1047 execute(unionCompSet());
1048 execute(unionCompSetof());
1049 execute(unionCompUnion());
1050 execute(unionSubtypes());
1051 execute(unionIsvalue());
1052 execute(unionIsbound());
1053
1054 execute(tc_unionOfRecordOfs1());
1055 execute(tc_unionOfRecordOfs2());
1056 execute(tc_union_modify());
1057 execute(tc_sideeffect1());
1058 execute(tc_sideeffect2());
1059 execute(tc_unionOfRecordOfs1_ispresent());
1060 execute(tc_unionOfRecordOfs2_ispresent());
1061 execute(tc_unionOfRecordOfs3_ispresent());
1062 execute(tc_union_modify_ispresent());
1063 execute(tc_sideeffect1_ispresent());
1064 execute(tc_sideeffect2_ispresent());
1065 }
1066 }
This page took 0.052943 seconds and 5 git commands to generate.