Sync with 5.4.0
[deliverable/titan.core.git] / regression_test / setOper / TsetOper.ttcn
CommitLineData
970ed795 1/******************************************************************************
3abe9331 2 * Copyright (c) 2000-2015 Ericsson Telecom AB
970ed795
EL
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 ******************************************************************************/
8module TsetOper {
9// ********** Type definitions *********************
10type component setOper_mycomp {};
11type set typedefset_empty {};
12type enumerated setOper_myenum {xx1,xx2,xx3};
13type record setOper_trecord {
14 integer x1 optional,
15 float x2 };
16type record of octetstring setOper_trecof;
17type set setOper_tset {
18 integer x1,
19 float x2 optional };
20type set of charstring setOper_tsetof;
21type union setOper_tunion {
22 integer x1,
23 float x2 };
24type set setOper_myset1 { // set from basic types
25 integer x1,
26 float x2,
27 setOper_myenum x3 };
28type set setOper_myset2 { // set from basic types, with optional field
29 integer x1,
30 float x2,
31 setOper_myenum x3,
32 integer x4 optional };
33type set setOper_myset3 { // set from record, with optional field
34 setOper_trecord x1,
35 setOper_trecord x2 optional
36 };
37type set setOper_myset4 { // set from record of, with optional field
38 setOper_trecof x1,
39 setOper_trecof x2 optional
40 };
41type set setOper_myset5 { // set from set, with optional field
42 setOper_tset x1,
43 setOper_tset x2 optional
44 };
45type set setOper_myset6 { // set from set of, with optional field
46 setOper_tsetof x1,
47 setOper_tsetof x2 optional
48 };
49type set setOper_myset7 { // set from union, with optional field
50 setOper_tunion x1,
51 setOper_tunion x2 optional
52 };
53type set typedefsetComp_myset {
54 setOper_trecord x1,
55 setOper_trecof x2,
56 setOper_tset x3,
57 setOper_tsetof x4 optional,
58 setOper_tunion x5,
59 integer x6[3]
60 };
61// *************** Constanst ***********************
62const setOper_trecord setOper_temp1:={ x1:=omit, x2:=3.4 };
63const setOper_trecof setOper_temp2:={ 'AF12'O };
64const setOper_tset setOper_temp3:={ x1:=234, x2:=1.9};
65const setOper_tsetof setOper_temp4:={"f","8"};
66const setOper_tunion setOper_temp5:={ x2:=1.3 };
67const setOper_myset1 setOper_const1:={ //set with basic types
68x1:=1,
69x2:=1.2,
70x3:=xx2 };
71const setOper_myset2 setOper_const2:={ //set with basic types, with optional field
72x1:=1,
73x2:=1.2,
74x3:=xx2,
75x4:=2 };
76const setOper_myset2 setOper_const3:={ //set with basic types, with omited field
77x1:=1,
78x2:=1.2,
79x3:=xx2,
80x4:=omit };
81const setOper_myset3 setOper_const4:={ //set from record
82 x1:={ x1:=1, x2:=1.2 },
83 x2:=setOper_temp1
84};
85const setOper_myset3 setOper_const5:={ //set from record, with omited field
86 x1:={ x1:=1, x2:=1.2 },
87 x2:=omit
88};
89const setOper_myset4 setOper_const6:={ //set from record of
90 x1:={ '12AB'O, 'CD12'O },
91 x2:=setOper_temp2
92};
93const setOper_myset4 setOper_const7:={ //set from record of, with omited field
94 x1:={ '12AB'O, 'CD12'O },
95 x2:=omit
96};
97const setOper_myset5 setOper_const8:={ //set from set
98 x1:={ x1:=2, x2:=1.3},
99 x2:=setOper_temp3
100};
101const setOper_myset5 setOper_const9:={ //set from set, with omited field
102 x1:={ x1:=2, x2:=1.3},
103 x2:=omit
104};
105const setOper_myset6 setOper_const10:={ //set from set of
106 x1:={"a","b"},
107 x2:=setOper_temp4 //{"f","8"},
108};
109const setOper_myset6 setOper_const11:={ //set from set of, with omited field
110 x1:={"a","b"},
111 x2:=omit
112};
113const setOper_myset7 setOper_const12:={ //set from union
114 x1:={ x1 :=3 },
115 x2:=setOper_temp5 //{ x2:=1.3 }
116};
117const setOper_myset7 setOper_const13:={ //set from union, with omited field
118 x1:={ x1 :=3 },
119 x2:=omit
120};
121const typedefsetComp_myset setOper_const14 := { // complex set
122 x1 := { x1:=omit, x2:=3.4 },
123 x2 := { 'AF12'O },
124 x3 := { x1:=234, x2:=1.9},
125 x4 := {"f","8"},
126 x5 := { x2:=1.3 },
127 x6 := {1,2,3}
128}
129
130testcase setAssign() runs on setOper_mycomp{
131var setOper_myset1 x1:={ //set with basic types
132x1:=1,
133x2:=1.2,
134x3:=xx2 };
135var setOper_myset1 x2,x3;
136x2:={ x1:=1, x2:=1.2, x3:=xx2 };
137x3:={ x2:=1.2, x1:=1, x3:=xx2 };
138if (x1.x1==1) {setverdict(pass);} //at declaration
139 else {setverdict(fail);}
140if (x1.x2==1.2) {setverdict(pass);}
141 else {setverdict(fail);}
142if (x1.x3==xx2) {setverdict(pass);}
143 else {setverdict(fail);}
144if (x2.x1==1) {setverdict(pass);} //later
145 else {setverdict(fail);}
146if (x2.x2==1.2) {setverdict(pass);}
147 else {setverdict(fail);}
148if (x2.x3==xx2) {setverdict(pass);}
149 else {setverdict(fail);}
150if (x3.x1==1) {setverdict(pass);} //out of order
151 else {setverdict(fail);}
152if (x3.x2==1.2) {setverdict(pass);}
153 else {setverdict(fail);}
154if (x3.x3==xx2) {setverdict(pass);}
155 else {setverdict(fail);}
156}
157
158testcase setAssignOpt() runs on setOper_mycomp{
159var integer inttemp:=2;
160var setOper_myset2 x1:={ //set with basic types, with optional field
161 x1:=1,
162 x2:=1.2,
163 x3:=xx2,
164 x4:=inttemp}; //2
165var setOper_myset2 x2:={ //set with basic types, with omited field
166 x1:=1,
167 x2:=1.2,
168 x3:=xx2,
169 x4:=omit };
170var setOper_myset2 x3, x4;
171x3:={ //set with basic types, with optional field
172 x1:=1,
173 x2:=1.2,
174 x3:=xx2,
175 x4:=inttemp }; //2
176x4:={ //set with basic types, with omited field
177 x1:=1,
178 x2:=1.2,
179 x3:=xx2,
180 x4:=omit };
181//at declaration, with optional field
182if (x1.x1==1) {setverdict(pass);}
183 else {setverdict(fail);}
184if (x1.x2==1.2) {setverdict(pass);}
185 else {setverdict(fail);}
186if (x1.x3==xx2) {setverdict(pass);}
187 else {setverdict(fail);}
188if (x1.x4==2) {setverdict(pass);}
189 else {setverdict(fail);}
190//at declaration, with omited field
191if (x2.x1==1) {setverdict(pass);}
192 else {setverdict(fail);}
193if (x2.x2==1.2) {setverdict(pass);}
194 else {setverdict(fail);}
195if (x2.x3==xx2) {setverdict(pass);}
196 else {setverdict(fail);}
197if (not(ispresent(x2.x4))) {setverdict(pass);}
198 else {setverdict(fail);}
199//later, with optional field
200if (x3.x1==1) {setverdict(pass);}
201 else {setverdict(fail);}
202if (x3.x2==1.2) {setverdict(pass);}
203 else {setverdict(fail);}
204if (x3.x3==xx2) {setverdict(pass);}
205 else {setverdict(fail);}
206if (x3.x4==2) {setverdict(pass);}
207 else {setverdict(fail);}
208//later, with optional field
209if (x4.x1==1) {setverdict(pass);}
210 else {setverdict(fail);}
211if (x4.x2==1.2) {setverdict(pass);}
212 else {setverdict(fail);}
213if (x4.x3==xx2) {setverdict(pass);}
214 else {setverdict(fail);}
215if (not(ispresent(x4.x4))) {setverdict(pass);}
216 else {setverdict(fail);}
217}
218
219testcase setAssignRec() runs on setOper_mycomp{
220var setOper_trecord temp1:={ x1:=omit, x2:=3.4 };
221var setOper_myset3 x1:={ //set from record
222 x1:={ x1:=1, x2:=1.2 },
223 x2:=temp1
224};
225var setOper_myset3 x2:={ //set from record, with omited field
226 x1:={ x1:=1, x2:=1.2 },
227 x2:=omit
228};
229var setOper_myset3 x3,x4;
230x3:={ //set from record
231 x1:={ x1:=1, x2:=1.2 },
232 x2:=temp1
233};
234x4:={ //set from record, with omited field
235 x1:={ x1:=1, x2:=1.2 },
236 x2:=omit
237};
238if (x1.x1.x1==1) {setverdict(pass);} //at declaration
239 else {setverdict(fail);}
240if (x1.x1.x2==1.2) {setverdict(pass);}
241 else {setverdict(fail);}
242if (x1.x2==temp1) {setverdict(pass);}
243 else {setverdict(fail);}
244if (x2.x1.x1==1) {setverdict(pass);} //at declaration, omit
245 else {setverdict(fail);}
246if (x2.x1.x2==1.2) {setverdict(pass);}
247 else {setverdict(fail);}
248if (not(ispresent(x2.x2))) {setverdict(pass);}
249 else {setverdict(fail);}
250if (x3.x1.x1==1) {setverdict(pass);} //later
251 else {setverdict(fail);}
252if (x3.x1.x2==1.2) {setverdict(pass);}
253 else {setverdict(fail);}
254if (x3.x2==temp1) {setverdict(pass);}
255 else {setverdict(fail);}
256if (x4.x1.x1==1) {setverdict(pass);} //later, omit
257 else {setverdict(fail);}
258if (x4.x1.x2==1.2) {setverdict(pass);}
259 else {setverdict(fail);}
260if (not(ispresent(x4.x2))) {setverdict(pass);}
261 else {setverdict(fail);}
262}
263
264testcase setAssignRecof() runs on setOper_mycomp{
265var setOper_trecof temp2:={'AF12'O};
266var setOper_myset4 x1:={ //set from record of
267 x1:={ '12AB'O, 'CD12'O },
268 x2:=temp2
269};
270var setOper_myset4 x2:={ //set from record of, with omited field
271 x1:={ '12AB'O, 'CD12'O },
272 x2:=omit
273};
274var setOper_myset4 x3,x4
275x3:={ //set from record of
276 x1:={ '12AB'O, 'CD12'O },
277 x2:=temp2
278};
279x4:={ //set from record of, with omited field
280 x1:={ '12AB'O, 'CD12'O },
281 x2:=omit
282};
283if (x1.x1[0]=='12AB'O) {setverdict(pass);} //at declaration
284 else {setverdict(fail);}
285if (x1.x1[1]=='CD12'O) {setverdict(pass);}
286 else {setverdict(fail);}
287if (x1.x2==temp2) {setverdict(pass);}
288 else {setverdict(fail);}
289if (x2.x1[0]=='12AB'O) {setverdict(pass);} //at declaration, omit
290 else {setverdict(fail);}
291if (x2.x1[1]=='CD12'O) {setverdict(pass);}
292 else {setverdict(fail);}
293if (not(ispresent(x2.x2))) {setverdict(pass);}
294 else {setverdict(fail);}
295if (x3.x1[0]=='12AB'O) {setverdict(pass);} //later
296 else {setverdict(fail);}
297if (x3.x1[1]=='CD12'O) {setverdict(pass);}
298 else {setverdict(fail);}
299if (x3.x2==temp2) {setverdict(pass);}
300 else {setverdict(fail);}
301if (x4.x1[0]=='12AB'O) {setverdict(pass);} //later, omit
302 else {setverdict(fail);}
303if (x4.x1[1]=='CD12'O) {setverdict(pass);}
304 else {setverdict(fail);}
305if (not(ispresent(x4.x2))) {setverdict(pass);}
306 else {setverdict(fail);}
307}
308
309testcase setAssignSet() runs on setOper_mycomp{
310var setOper_tset temp1:={ x1:=2, x2:=omit };
311var setOper_myset5 x1:={ //set from set
312 x1:={ x1:=1, x2:=1.2 },
313 x2:=temp1
314};
315var setOper_myset5 x2:={ //set from set, with omited field
316 x1:={ x1:=1, x2:=1.2 },
317 x2:=omit
318};
319var setOper_myset5 x3,x4;
320x3:={ //set from set
321 x1:={ x1:=1, x2:=1.2 },
322 x2:=temp1
323};
324x4:={ //set from set, with omited field
325 x1:={ x1:=1, x2:=1.2 },
326 x2:=omit
327};
328if (x1.x1.x1==1) {setverdict(pass);} //at declaration
329 else {setverdict(fail);}
330if (x1.x1.x2==1.2) {setverdict(pass);}
331 else {setverdict(fail);}
332if (x1.x2==temp1) {setverdict(pass);}
333 else {setverdict(fail);}
334if (x2.x1.x1==1) {setverdict(pass);} //at declaration, omit
335 else {setverdict(fail);}
336if (x2.x1.x2==1.2) {setverdict(pass);}
337 else {setverdict(fail);}
338if (not(ispresent(x2.x2))) {setverdict(pass);}
339 else {setverdict(fail);}
340if (x3.x1.x1==1) {setverdict(pass);} //later
341 else {setverdict(fail);}
342if (x3.x1.x2==1.2) {setverdict(pass);}
343 else {setverdict(fail);}
344if (x3.x2==temp1) {setverdict(pass);}
345 else {setverdict(fail);}
346if (x4.x1.x1==1) {setverdict(pass);} //later, omit
347 else {setverdict(fail);}
348if (x4.x1.x2==1.2) {setverdict(pass);}
349 else {setverdict(fail);}
350if (not(ispresent(x4.x2))) {setverdict(pass);}
351 else {setverdict(fail);}
352}
353
354testcase setAssignSetof() runs on setOper_mycomp{
355var setOper_tsetof temp2:={"a","7"};
356var setOper_myset6 x1:={ //set from set of
357 x1:={ "1", "a" },
358 x2:=temp2
359};
360var setOper_myset6 x2:={ //set from set of, with omited field
361 x1:={ "1", "a" },
362 x2:=omit
363};
364var setOper_myset6 x3,x4
365x3:={ //set from set of
366 x1:={ "1", "a" },
367 x2:=temp2
368};
369x4:={ //set from set of, with omited field
370 x1:={ "1","a" },
371 x2:=omit
372};
373if (x1.x1[0]=="1") {setverdict(pass);} //at declaration
374 else {setverdict(fail);}
375if (x1.x1[1]=="a") {setverdict(pass);}
376 else {setverdict(fail);}
377if (x1.x2==temp2) {setverdict(pass);}
378 else {setverdict(fail);}
379if (x2.x1[0]=="1") {setverdict(pass);} //at declaration, omit
380 else {setverdict(fail);}
381if (x2.x1[1]=="a") {setverdict(pass);}
382 else {setverdict(fail);}
383if (not(ispresent(x2.x2))) {setverdict(pass);}
384 else {setverdict(fail);}
385if (x3.x1[0]=="1") {setverdict(pass);} //later
386 else {setverdict(fail);}
387if (x3.x1[1]=="a") {setverdict(pass);}
388 else {setverdict(fail);}
389if (x3.x2==temp2) {setverdict(pass);}
390 else {setverdict(fail);}
391if (x4.x1[0]=="1") {setverdict(pass);} //later, omit
392 else {setverdict(fail);}
393if (x4.x1[1]=="a") {setverdict(pass);}
394 else {setverdict(fail);}
395if (not(ispresent(x4.x2))) {setverdict(pass);}
396 else {setverdict(fail);}
397}
398
399testcase setAssignUnion() runs on setOper_mycomp{
400var setOper_tunion temp5 := {x2:=1.3}
401var setOper_myset7 x1:={ //set from union
402 x1:={ x1 :=3 },
403 x2:=temp5 //{ x2:=1.3 }
404};
405var setOper_myset7 x2:={ //set from union, with omited field
406 x1:={ x1 :=3 },
407 x2:=omit
408};
409var setOper_myset7 x3,x4;
410x3:={ //set from union
411 x1:={ x1 :=3 },
412 x2:=temp5 //{ x2:=1.3 }
413};
414x4:={ //set from union, with omited field
415 x1:={ x1 :=3 },
416 x2:=omit
417};
418if (x1.x1.x1==3) {setverdict(pass);} //at declaration
419 else {setverdict(fail);}
420if (ischosen(x1.x1.x1)) {setverdict(pass);}
421 else {setverdict(fail);}
422if (not(ischosen(x1.x1.x2))) {setverdict(pass);}
423 else {setverdict(fail);}
424if (x1.x2==temp5) {setverdict(pass);}
425 else {setverdict(fail);}
426if (x2.x1.x1==3) {setverdict(pass);} //at declaration, omit
427 else {setverdict(fail);}
428if (ischosen(x2.x1.x1)) {setverdict(pass);}
429 else {setverdict(fail);}
430if (not(ischosen(x2.x1.x2))) {setverdict(pass);}
431 else {setverdict(fail);}
432if (not(ispresent(x2.x2))) {setverdict(pass);}
433 else {setverdict(fail);}
434if (x3.x1.x1==3) {setverdict(pass);} //later
435 else {setverdict(fail);}
436if (ischosen(x3.x1.x1)) {setverdict(pass);}
437 else {setverdict(fail);}
438if (not(ischosen(x3.x1.x2))) {setverdict(pass);}
439 else {setverdict(fail);}
440if (x3.x2==temp5) {setverdict(pass);}
441 else {setverdict(fail);}
442if (x4.x1.x1==3) {setverdict(pass);} //later, omit
443 else {setverdict(fail);}
444if (ischosen(x4.x1.x1)) {setverdict(pass);}
445 else {setverdict(fail);}
446if (not(ischosen(x4.x1.x2))) {setverdict(pass);}
447 else {setverdict(fail);}
448if (not(ispresent(x4.x2))) {setverdict(pass);}
449 else {setverdict(fail);}
450}
451
452testcase setAssignElem() runs on setOper_mycomp{
453var setOper_myset1 x1:={ //set with basic types
454x1:=1,
455x2:=1.2,
456x3:=xx2 };
457x1.x2:=3.4;
458if (x1.x1==1) {setverdict(pass);}
459 else {setverdict(fail);}
460if (x1.x2==3.4) {setverdict(pass);}
461 else {setverdict(fail);}
462if (x1.x3==xx2) {setverdict(pass);}
463 else {setverdict(fail);}
464}
465
466
467testcase setAssignElemOpt() runs on setOper_mycomp{
468var integer inttemp:=2;
469var setOper_myset2 x1:={ //set with basic types
470x1:=1,
471x2:=1.2,
472x3:=xx2,
473x4:=omit } ; //2
474var setOper_myset2 x2, x3, x4;
475x2:=x1;
476x3:={x1:=1, x2:=1.2, x3:=xx2, x4:=inttemp };
477x4:=x3;
478x1.x1:=2; //not optional field
479x2.x4:=3; //optional field; omited-> value
480x3.x4:=3; //optional field; value-> value
481x4.x4:=omit; //optional field; value -> omited
482//not optional field
483if (x1.x1==2) {setverdict(pass);}
484 else {setverdict(fail);}
485if (x1.x2==1.2) {setverdict(pass);}
486 else {setverdict(fail);}
487if (x1.x3==xx2) {setverdict(pass);}
488 else {setverdict(fail);}
489if (not(ispresent(x1.x4))) {setverdict(pass);}
490 else {setverdict(fail);}
491//optional field, omited -> value
492if (x2.x1==1) {setverdict(pass);}
493 else {setverdict(fail);}
494if (x2.x2==1.2) {setverdict(pass);}
495 else {setverdict(fail);}
496if (x2.x3==xx2) {setverdict(pass);}
497 else {setverdict(fail);}
498if (x2.x4==3) {setverdict(pass);}
499 else {setverdict(fail);}
500//optional field; value-> value
501if (x3.x1==1) {setverdict(pass);}
502 else {setverdict(fail);}
503if (x3.x2==1.2) {setverdict(pass);}
504 else {setverdict(fail);}
505if (x3.x3==xx2) {setverdict(pass);}
506 else {setverdict(fail);}
507if (x3.x4==3) {setverdict(pass);}
508 else {setverdict(fail);}
509//optional field; value -> omited
510if (x4.x1==1) {setverdict(pass);}
511 else {setverdict(fail);}
512if (x4.x2==1.2) {setverdict(pass);}
513 else {setverdict(fail);}
514if (x4.x3==xx2) {setverdict(pass);}
515 else {setverdict(fail);}
516if (not(ispresent(x4.x4))) {setverdict(pass);}
517 else {setverdict(fail);}
518}
519
520testcase setAssignElemRec() runs on setOper_mycomp{
521var setOper_trecord temp1:={ x1:=omit, x2:=3.4 };
522var setOper_myset3 x1;
523x1:={ //set from record
524 x1:={ x1:=1, x2:=1.2 },
525 x2:=temp1
526};
527x1.x1.x1:=2;
528temp1.x1:=3;
529x1.x2:=temp1;
530if (x1.x1.x1==2) {setverdict(pass);}
531 else {setverdict(fail);}
532if (x1.x1.x2==1.2) {setverdict(pass);}
533 else {setverdict(fail);}
534if (x1.x2==temp1) {setverdict(pass);}
535 else {setverdict(fail);}
536}
537
538
539testcase setAssignElemRecof() runs on setOper_mycomp{
540var setOper_trecof temp2:={'AF12'O};
541var setOper_myset4 x1:={ //set from record of
542 x1:={ '12AB'O, 'CD12'O },
543 x2:=temp2
544};
545x1.x1[1]:='34AB'O;
546if (x1.x1[0]=='12AB'O) {setverdict(pass);}
547 else {setverdict(fail);}
548if (x1.x1[1]=='34AB'O) {setverdict(pass);}
549 else {setverdict(fail);}
550if (x1.x2==temp2) {setverdict(pass);}
551 else {setverdict(fail);}
552}
553
554testcase setAssignElemSet() runs on setOper_mycomp{
555var setOper_tset temp1:={ x1:=2, x2:=omit };
556var setOper_myset5 x1:={ //set from set
557 x1:={ x1:=1, x2:=1.2 },
558 x2:=temp1
559};
560x1.x1.x2:=3.4;
561if (x1.x1.x1==1) {setverdict(pass);}
562 else {setverdict(fail);}
563if (x1.x1.x2==3.4) {setverdict(pass);}
564 else {setverdict(fail);}
565if (x1.x2==temp1) {setverdict(pass);}
566 else {setverdict(fail);}
567}
568
569testcase setAssignElemSetof() runs on setOper_mycomp{
570var setOper_tsetof temp2:={"a","7"};
571var setOper_myset6 x1:={ //set from set of
572 x1:={ "1", "a" },
573 x2:=temp2
574};
575x1.x1[0]:="h";
576if (x1.x1[0]=="h") {setverdict(pass);}
577 else {setverdict(fail);}
578if (x1.x1[1]=="a") {setverdict(pass);}
579 else {setverdict(fail);}
580if (x1.x2==temp2) {setverdict(pass);}
581 else {setverdict(fail);}
582}
583
584testcase setAssignElemUnion() runs on setOper_mycomp{
585var setOper_tunion temp5 := {x2:=1.3}
586var setOper_myset7 x1:={ //set from union
587 x1:={ x1 :=3 },
588 x2:=temp5 //{ x2:=1.3 }
589};
590x1.x1.x2:=3.4;
591if (x1.x1.x2==3.4) {setverdict(pass);}
592 else {setverdict(fail);}
593if (ischosen(x1.x1.x2)) {setverdict(pass);}
594 else {setverdict(fail);}
595if (not(ischosen(x1.x1.x1))) {setverdict(pass);}
596 else {setverdict(fail);}
597if (x1.x2==temp5) {setverdict(pass);}
598 else {setverdict(fail);}
599}
600
601testcase setSizeof() runs on setOper_mycomp{
602var integer inttemp:=2;
603var setOper_myset2 x1:={ //set with basic types, with optional field
604x1:=1,
605x2:=1.2,
606x3:=xx2,
607x4:=inttemp}; //2
608var setOper_myset2 x2:={ //set with basic types, with omited field
609x1:=1,
610x2:=1.2,
611x3:=xx2,
612x4:=omit };
613var setOper_myset2 x3, x4;
614x3:={ //set with basic types, with optional field
615x1:=1,
616x2:=1.2,
617x3:=xx2,
618x4:=inttemp }; //2
619x4:={ //set with basic types, with omited field
620x1:=1,
621x2:=1.2,
622x3:=xx2,
623x4:=omit };
624//if (sizeof(x1)==4) {setverdict(pass);} //at declaration, with optional field
625// else {setverdict(fail);}
626//if (sizeof(x2)==3) {setverdict(pass);} //at declaration, with omited field
627// else {setverdict(fail);}
628//if (sizeof(x3)==4) {setverdict(pass);} //later, with optional field
629// else {setverdict(fail);}
630//if (sizeof(x4)==3) {setverdict(pass);} //testcase, with optional field
631// else {setverdict(fail);}
632//if (sizeof(setOper_myset2)==4) {setverdict(pass);} // size of type
633// else {setverdict(fail);}
634}
635
636testcase setConst() runs on setOper_mycomp{
637const setOper_myset1 const1:={ //set with basic types
638x1:=1,
639x2:=1.2,
640x3:=xx2 };
641if (setOper_const1.x1==1) {setverdict(pass);} //definition part
642 else {setverdict(fail);}
643if (setOper_const1.x2==1.2) {setverdict(pass);}
644 else {setverdict(fail);}
645if (setOper_const1.x3==xx2) {setverdict(pass);}
646 else {setverdict(fail);}
647if (const1.x1==1) {setverdict(pass);} //testcase
648 else {setverdict(fail);}
649if (const1.x2==1.2) {setverdict(pass);}
650 else {setverdict(fail);}
651if (const1.x3==xx2) {setverdict(pass);}
652 else {setverdict(fail);}
653}
654
655testcase setConstOpt() runs on setOper_mycomp{
656const setOper_myset2 const2:={ //set with basic types, with optional field
657x1:=1,
658x2:=1.2,
659x3:=xx2,
660x4:=2 };
661const setOper_myset2 const3:={ //set with basic types, with omited field
662x1:=1,
663x2:=1.2,
664x3:=xx2,
665x4:=omit };
666//definition part, with optional field
667if (setOper_const2.x1==1) {setverdict(pass);}
668 else {setverdict(fail);}
669if (setOper_const2.x2==1.2) {setverdict(pass);}
670 else {setverdict(fail);}
671if (setOper_const2.x3==xx2) {setverdict(pass);}
672 else {setverdict(fail);}
673if (setOper_const2.x4==2) {setverdict(pass);}
674 else {setverdict(fail);}
675//definition part, with omited field
676if (setOper_const3.x1==1) {setverdict(pass);}
677 else {setverdict(fail);}
678if (setOper_const3.x2==1.2) {setverdict(pass);}
679 else {setverdict(fail);}
680if (setOper_const3.x3==xx2) {setverdict(pass);}
681 else {setverdict(fail);}
682if (not(ispresent(setOper_const3.x4))) {setverdict(pass);}
683 else {setverdict(fail);}
684//testcase, with optional field
685if (const2.x1==1) {setverdict(pass);}
686 else {setverdict(fail);}
687if (const2.x2==1.2) {setverdict(pass);}
688 else {setverdict(fail);}
689if (const2.x3==xx2) {setverdict(pass);}
690 else {setverdict(fail);}
691if (const2.x4==2) {setverdict(pass);}
692 else {setverdict(fail);}
693//testcase, with optional field
694if (const3.x1==1) {setverdict(pass);}
695 else {setverdict(fail);}
696if (const3.x2==1.2) {setverdict(pass);}
697 else {setverdict(fail);}
698if (const3.x3==xx2) {setverdict(pass);}
699 else {setverdict(fail);}
700if (not(ispresent(const3.x4))) {setverdict(pass);}
701 else {setverdict(fail);}
702}
703
704testcase setConstRec() runs on setOper_mycomp{
705const setOper_myset3 const4:={ //set from record
706 x1:={ x1:=1, x2:=1.2 },
707 x2:=setOper_temp1
708};
709const setOper_myset3 const5:={ //set from record, with omited field
710 x1:={ x1:=1, x2:=1.2 },
711 x2:=omit
712};
713if (setOper_const4.x1.x1==1) {setverdict(pass);} //definition part
714 else {setverdict(fail);}
715if (setOper_const4.x1.x2==1.2) {setverdict(pass);}
716 else {setverdict(fail);}
717if (setOper_const4.x2==setOper_temp1) {setverdict(pass);}
718 else {setverdict(fail);}
719if (setOper_const5.x1.x1==1) {setverdict(pass);} //definition part, omit
720 else {setverdict(fail);}
721if (setOper_const5.x1.x2==1.2) {setverdict(pass);}
722 else {setverdict(fail);}
723if (not(ispresent(setOper_const5.x2))) {setverdict(pass);}
724 else {setverdict(fail);}
725if (const4.x1.x1==1) {setverdict(pass);} //testcase
726 else {setverdict(fail);}
727if (const4.x1.x2==1.2) {setverdict(pass);}
728 else {setverdict(fail);}
729if (const4.x2==setOper_temp1) {setverdict(pass);}
730 else {setverdict(fail);}
731if (const5.x1.x1==1) {setverdict(pass);} //testcase part, omit
732 else {setverdict(fail);}
733if (const5.x1.x2==1.2) {setverdict(pass);}
734 else {setverdict(fail);}
735if (not(ispresent(const5.x2))) {setverdict(pass);}
736 else {setverdict(fail);}
737}
738
739testcase setConstRecof() runs on setOper_mycomp{
740const setOper_myset4 const6:={ //set from record of
741 x1:={ '12AB'O, 'CD12'O },
742 x2:=setOper_temp2
743};
744const setOper_myset4 const7:={ //set from record of, with omited field
745 x1:={ '12AB'O, 'CD12'O },
746 x2:=omit
747};
748if (setOper_const6.x1[0]=='12AB'O) {setverdict(pass);} //definition part
749 else {setverdict(fail);}
750if (setOper_const6.x1[1]=='CD12'O) {setverdict(pass);}
751 else {setverdict(fail);}
752if (setOper_const6.x2==setOper_temp2) {setverdict(pass);}
753 else {setverdict(fail);}
754if (setOper_const7.x1[0]=='12AB'O) {setverdict(pass);} //definition part, omit
755 else {setverdict(fail);}
756if (setOper_const7.x1[1]=='CD12'O) {setverdict(pass);}
757 else {setverdict(fail);}
758if (not(ispresent(setOper_const7.x2))) {setverdict(pass);}
759 else {setverdict(fail);}
760if (const6.x1[0]=='12AB'O) {setverdict(pass);} //testcase
761 else {setverdict(fail);}
762if (const6.x1[1]=='CD12'O) {setverdict(pass);}
763 else {setverdict(fail);}
764if (const6.x2==setOper_temp2) {setverdict(pass);}
765 else {setverdict(fail);}
766if (const7.x1[0]=='12AB'O) {setverdict(pass);} //testcase part, omit
767 else {setverdict(fail);}
768if (const7.x1[1]=='CD12'O) {setverdict(pass);}
769 else {setverdict(fail);}
770if (not(ispresent(const7.x2))) {setverdict(pass);}
771 else {setverdict(fail);}
772}
773
774testcase setConstSet() runs on setOper_mycomp{
775const setOper_myset5 const8:={ //set from set
776 x1:={ x1:=2, x2:=1.3},
777 x2:=setOper_temp3
778};
779const setOper_myset5 const9:={ //set from set, with omited field
780 x1:={ x1:=2, x2:=omit},
781 x2:=omit
782};
783if (setOper_const8.x1.x1==2) {setverdict(pass);} //definition part
784 else {setverdict(fail);}
785if (setOper_const8.x1.x2==1.3) {setverdict(pass);}
786 else {setverdict(fail);}
787if (setOper_const8.x2==setOper_temp3) {setverdict(pass);}
788 else {setverdict(fail);}
789if (setOper_const9.x1.x1==2) {setverdict(pass);} //definition part, omit
790 else {setverdict(fail);}
791if (setOper_const9.x1.x2==1.3) {setverdict(pass);}
792 else {setverdict(fail);}
793if (not(ispresent(setOper_const9.x2))) {setverdict(pass);}
794 else {setverdict(fail);}
795if (const8.x1.x1==2) {setverdict(pass);} //testcase
796 else {setverdict(fail);}
797if (const8.x1.x2==1.3) {setverdict(pass);}
798 else {setverdict(fail);}
799if (const8.x2==setOper_temp3) {setverdict(pass);}
800 else {setverdict(fail);}
801if (const9.x1.x1==2) {setverdict(pass);} //testcase part, omit
802 else {setverdict(fail);}
803if (not(ispresent(const9.x1.x2))) {setverdict(pass);}
804 else {setverdict(fail);}
805if (not(ispresent(const9.x2))) {setverdict(pass);}
806 else {setverdict(fail);}
807}
808
809testcase setConstSetof() runs on setOper_mycomp{
810const setOper_myset6 const10:={ //set from set of
811 x1:={"a","b"},
812 x2:=setOper_temp4 //{"f","8"},
813};
814const setOper_myset6 const11:={ //set from set of, with omited field
815 x1:={"a","b"},
816 x2:=omit
817};
818if (setOper_const10.x1[0]=="a") {setverdict(pass);} //definition part
819 else {setverdict(fail);}
820if (setOper_const10.x1[1]=="b") {setverdict(pass);}
821 else {setverdict(fail);}
822if (setOper_const10.x2==setOper_temp4) {setverdict(pass);}
823 else {setverdict(fail);}
824if (setOper_const11.x1[0]=="a") {setverdict(pass);} //definition part, omit
825 else {setverdict(fail);}
826if (setOper_const11.x1[1]=="b") {setverdict(pass);}
827 else {setverdict(fail);}
828if (not(ispresent(setOper_const11.x2))) {setverdict(pass);}
829 else {setverdict(fail);}
830if (const10.x1[0]=="a") {setverdict(pass);} //testcase
831 else {setverdict(fail);}
832if (const10.x1[1]=="b") {setverdict(pass);}
833 else {setverdict(fail);}
834if (const10.x2==setOper_temp4) {setverdict(pass);}
835 else {setverdict(fail);}
836if (const11.x1[0]=="a") {setverdict(pass);} //testcase part, omit
837 else {setverdict(fail);}
838if (const11.x1[1]=="b") {setverdict(pass);}
839 else {setverdict(fail);}
840if (not(ispresent(const11.x2))) {setverdict(pass);}
841 else {setverdict(fail);}
842}
843
844testcase setConstUnion() runs on setOper_mycomp{
845const setOper_myset7 const12:={ //set from union
846 x1:={ x1 :=3 },
847 x2:=setOper_temp5 //{ x2:=1.3 }
848};
849const setOper_myset7 const13:={ //set from union, with omited field
850 x1:={ x1 :=3 },
851 x2:=omit
852};
853if (setOper_const12.x1.x1==3) {setverdict(pass);} //definition part
854 else {setverdict(fail);}
855if (setOper_const12.x2==setOper_temp5) {setverdict(pass);}
856 else {setverdict(fail);}
857if (setOper_const13.x1.x1==3) {setverdict(pass);} //definition part, omit
858 else {setverdict(fail);}
859if (not(ispresent(setOper_const13.x2))) {setverdict(pass);}
860 else {setverdict(fail);}
861if (const12.x1.x1==3) {setverdict(pass);} //testcase
862 else {setverdict(fail);}
863if (const12.x2==setOper_temp5) {setverdict(pass);}
864 else {setverdict(fail);}
865if (const13.x1.x1==3) {setverdict(pass);} //testcase part, omit
866 else {setverdict(fail);}
867if (not(ispresent(const13.x2))) {setverdict(pass);}
868 else {setverdict(fail);}
869}
870
871
872testcase setComp() runs on setOper_mycomp{
873var setOper_myset1 x1,x2,x3,x4;
874x1:={ x1:=1, x2:=1.2, x3:=xx2 };
875x2:={ x1:=1, x2:=1.2, x3:=xx2 };
876x3:={ x1:=1, x2:=1.24, x3:=xx2 };
877x4:={ x2:=1.2, x1:=1, x3:=xx2 };
878if (x1==x2) {setverdict(pass);}
879 else {setverdict(fail);}
880if (not(x1==x3)) {setverdict(pass);}
881 else {setverdict(fail);}
882if (x1!=x3) {setverdict(pass);}
883 else {setverdict(fail);}
884if (not(x1!=x2)) {setverdict(pass);}
885 else {setverdict(fail);}
886if (x4==x2) {setverdict(pass);} //out of order
887 else {setverdict(fail);}
888if (not(x4==x3)) {setverdict(pass);}
889 else {setverdict(fail);}
890if (x4!=x3) {setverdict(pass);}
891 else {setverdict(fail);}
892if (not(x4!=x2)) {setverdict(pass);}
893 else {setverdict(fail);}
894}
895
896
897testcase setCompOpt() runs on setOper_mycomp{
898var integer inttemp:=2; // set with basic types with optional field
899var setOper_myset2 x1,x2,x3;
900x1 :={ x1:=1, x2:=1.2, x3:=xx2, x4:=inttemp }; //inntemp=2
901x2:= { x1:=1, x2:=1.2, x3:=xx2, x4:=omit };
902x3:= { x1:=1, x2:=1.2, x3:=xx2, x4:=omit };
903if (x2==x3) {setverdict(pass);}
904 else {setverdict(fail);}
905if (not(x1==x2)) {setverdict(pass);}
906 else {setverdict(fail);}
907if (x1!=x3) {setverdict(pass);}
908 else {setverdict(fail);}
909if (not(x2!=x3)) {setverdict(pass);}
910 else {setverdict(fail);}
911}
912
913testcase setCompRec() runs on setOper_mycomp{
914var setOper_trecord temp1:={ x1:=omit, x2:=3.4 }; // set with record
915var setOper_myset3 x1,x2,x3;
916x1 :={
917 x1:={ x1:=1, x2:=1.2 },
918 x2:=temp1
919};
920x2 :={
921 x1:={ x1:=1, x2:=1.2 },
922 x2:=temp1
923};
924x3 :={
925 x1:={ x1:=2, x2:=1.2 },
926 x2:=temp1
927};
928if (x1==x2) {setverdict(pass);}
929 else {setverdict(fail);}
930if (not(x1==x3)) {setverdict(pass);}
931 else {setverdict(fail);}
932if (x1!=x3) {setverdict(pass);}
933 else {setverdict(fail);}
934if (not(x1!=x2)) {setverdict(pass);}
935 else {setverdict(fail);}
936}
937
938
939testcase setCompRecof() runs on setOper_mycomp{
940var setOper_trecof temp2:={'AF12'O};
941var setOper_myset4 x1,x2,x3;
942x1:={ //set from record of
943 x1:={ '12AB'O, 'CD12'O },
944 x2:=temp2
945};
946x2:={
947 x1:={ '12AB'O, 'CD12'O },
948 x2:=temp2
949};
950x3:={
951 x1:={ '12AB'O },
952 x2:=temp2
953};
954if (x1==x2) {setverdict(pass);}
955 else {setverdict(fail);}
956if (not(x1==x3)) {setverdict(pass);}
957 else {setverdict(fail);}
958if (x2!=x3) {setverdict(pass);}
959 else {setverdict(fail);}
960if (not(x1!=x2)) {setverdict(pass);}
961 else {setverdict(fail);}
962}
963
964testcase setCompSet() runs on setOper_mycomp{
965var setOper_tset temp1:={ x1:=2, x2:=omit };
966var setOper_myset5 x1,x2,x3
967x1:={ //set from set
968 x1:={ x1:=1, x2:=1.2 },
969 x2:=temp1
970};
971x2:={
972 x1:={ x1:=1, x2:=1.2 },
973 x2:=temp1
974};
975x3:={
976 x1:={ x1:=4, x2:=1.2 },
977 x2:=temp1
978};
979if (x1==x2) {setverdict(pass);}
980 else {setverdict(fail);}
981if (not(x2==x3)) {setverdict(pass);}
982 else {setverdict(fail);}
983if (x1!=x3) {setverdict(pass);}
984 else {setverdict(fail);}
985if (not(x1!=x2)) {setverdict(pass);}
986 else {setverdict(fail);}
987}
988
989testcase setCompSetof() runs on setOper_mycomp{
990var setOper_tsetof temp2:={"a","7"};
991var setOper_myset6 x1,x2,x3;
992x1:={ //set from set of
993 x1:={ "1", "a" },
994 x2:=temp2
995};
996x2:={
997 x1:={ "1", "a" },
998 x2:=temp2
999};
1000x3:={
1001 x1:={ "1", "a", "k" },
1002 x2:=temp2
1003};
1004if (x1==x2) {setverdict(pass);}
1005 else {setverdict(fail);}
1006if (not(x2==x3)) {setverdict(pass);}
1007 else {setverdict(fail);}
1008if (x1!=x3) {setverdict(pass);}
1009 else {setverdict(fail);}
1010if (not(x1!=x2)) {setverdict(pass);}
1011 else {setverdict(fail);}
1012}
1013
1014testcase setCompUnion() runs on setOper_mycomp{
1015var setOper_tunion temp5 := {x2:=1.3}
1016var setOper_myset7 x1,x2,x3;
1017x1:={ //set from union
1018 x1:={ x1 :=3 },
1019 x2:=temp5 //{ x2:=1.3 }
1020};
1021x2:={
1022 x1:={ x1 :=3 },
1023 x2:=temp5 //{ x2:=1.3 }
1024};
1025x3:={
1026 x1:={ x2 :=3.9 },
1027 x2:=temp5 //{ x2:=1.3 }
1028};
1029if (x1==x2) {setverdict(pass);}
1030 else {setverdict(fail);}
1031if (not(x1==x3)) {setverdict(pass);}
1032 else {setverdict(fail);}
1033if (x2!=x3) {setverdict(pass);}
1034 else {setverdict(fail);}
1035if (not(x1!=x2)) {setverdict(pass);}
1036 else {setverdict(fail);}
1037}
1038
1039type set myset1 {
1040 integer f1 (0..255),
1041 charstring f2 length(0..255)
1042}
1043type myset1 myset2 ({f1 := 0, f2 := ""})
1044type myset1 myset3
1045type myset1 myset4 ({f1 := c_mysetlen1, f2 := "hello"}, {f1 := c_mysetlen2, f2 := "world"})
1046
1047const integer c_mysetlen1 := 255
1048const integer c_mysetlen2 := c_mysetlen1
1049const myset4 c_myset1 := {f1 := 255, f2 := "world"}
1050
1051template myset4 t_myset1 := {f1 := 255, f2 := "hello"}
1052// The following line shouldn't work. Delete it later.
1053template myset4 t_myset2 modifies t_myset1 := {f1 := 1, f2 := ""}
1054
1055function f_set1() return myset2 { return {f1 := 0, f2 := ""} }
1056
1057function f_set2() return boolean {
1058 var integer v_i1 := 100
1059 var charstring v_s1 := "abc"
1060 var myset4 v_myset1 := valueof(t_myset1)
1061 // It doesn't work yet: `var myset4 v_myset2 := {f1 := v_i1, f2 := v_s1}'. Replace
1062 // the test later.
1063 var myset4 v_myset2 := valueof(modifies t_myset1 := {f2 := ""})
1064 var myset4 v_myarr1[3] := {c_myset1, {f1 := 255, f2 := "he" & "llo"}, valueof(t_myset1)}
1065 if (v_myset1 != v_myarr1[2]) { return false }
1066 else {
1067 log(v_myset1)
1068 log(v_myarr1)
1069 if (v_myset1.f1 == v_myarr1[0].f1 and v_myset2.f1 == v_myarr1[1].f1 and 255 == v_myarr1[2].f1 and
1070 v_myset1.f2 != v_myarr1[0].f2 and v_myset2.f2 != v_myarr1[1].f2 and "hello" == v_myarr1[2].f2) {
1071 return true
1072 }
1073 return false
1074 }
1075}
1076
1077testcase setSubtypes() runs on setOper_mycomp {
1078 var template myset1 vt_myset1 := { f1 := 0, f2 := "" }
1079 var myset1 v_myset1 := { f1 := valueof(vt_myset1.f1), f2 := valueof(vt_myset1.f2) }
1080
1081 if (f_set1() == v_myset1 and valueof(vt_myset1) == f_set1()) { setverdict(pass) }
1082 else { setverdict(fail) }
1083 if (f_set2()) { setverdict(pass) }
1084 else { setverdict(fail) }
1085}
1086
1087testcase setIsvalue() runs on setOper_mycomp{
1088 var typedefset_empty v1;
1089 var setOper_trecord vs2_def;
1090 var setOper_trecord v2;
1091 v2.x1 := 42;
1092
1093 if ( isvalue(v1) ) { setverdict(fail); } else { setverdict(pass); };
1094 if ( isvalue(vs2_def) ) { setverdict(fail); } else { setverdict(pass); };
1095 if ( isvalue(v2) ) { setverdict(fail); } else { setverdict(pass); };
1096
1097 var setOper_trecord vs2_part := { -, 1.0 };
1098 if ( isvalue(vs2_part) ) { setverdict(fail); } else { setverdict(pass); };
1099 vs2_part.x1 := omit;
1100 if ( isvalue(vs2_part) ) { setverdict(pass); } else { setverdict(fail); };
1101
1102 var setOper_trecord vs2_om := { omit, - };
1103 if ( isvalue(vs2_om) ) { setverdict(fail); } else { setverdict(pass); };
1104 vs2_om.x2 := 33.0;
1105 if ( isvalue(vs2_om) ) { setverdict(pass); } else { setverdict(fail); };
1106}
1107
1108testcase setIsbound() runs on setOper_mycomp{
1109 var typedefset_empty v1;
1110 var setOper_trecord vs2_def;
1111 var setOper_trecord v2;
1112 v2.x1 := 42;
1113
1114 if ( isbound(v1) ) { setverdict(fail); } else { setverdict(pass); };
1115 if ( isbound(vs2_def) ) { setverdict(fail); } else { setverdict(pass); };
1116 if ( isbound(vs2_def.x1) ) { setverdict(fail); } else { setverdict(pass); };
1117 if ( isbound(vs2_def.x2) ) { setverdict(fail); } else { setverdict(pass); };
1118 if ( isbound(v2) ) { setverdict(pass); } else { setverdict(fail); };
1119
1120 var setOper_trecord vs2_part := { -, 1.0 };
1121 if ( isbound(vs2_part) ) { setverdict(pass); } else { setverdict(fail); };
1122 vs2_part.x1 := omit;
1123 if ( isbound(vs2_part) ) { setverdict(pass); } else { setverdict(fail); };
1124
1125 var setOper_trecord vs2_om := { omit, - };
1126 if ( isbound(vs2_om) ) { setverdict(pass); } else { setverdict(fail); };
1127 vs2_om.x2 := 33.0;
1128 if ( isbound(vs2_om) ) { setverdict(pass); } else { setverdict(fail); };
1129}
1130
1131control {
1132 const setOper_trecord cl_temp1:={ x1:=omit, x2:=3.4 }; //constant in control part
1133 const setOper_trecof cl_temp2:={ 'AF12'O };
1134 const setOper_tset cl_temp3:={ x1:=234, x2:=1.9};
1135 const setOper_tsetof cl_temp4:={"f","8"};
1136 const setOper_tunion cl_temp5:={ x2:=1.3 };
1137 const typedefsetComp_myset cl_const14 := {
1138 x1 := { x1:=omit, x2:=3.4 },
1139 x2 := { 'AF12'O },
1140 x3 := { x1:=234, x2:=1.9},
1141 x4 := {"f","8"},
1142 x5 := { x2:=1.3 },
1143 x6 := {1,2,3}
1144 }
1145 var setOper_trecord vl_temp1; //variable in control part
1146 var setOper_trecof vl_temp2;
1147 var setOper_tset vl_temp3;
1148 var setOper_tsetof vl_temp4;
1149 var setOper_tunion vl_temp5;
1150 var typedefsetComp_myset vl_const14;
1151
1152 execute(setAssign());
1153 execute(setAssignOpt());
1154 execute(setAssignRec());
1155 execute(setAssignRecof());
1156 execute(setAssignSet());
1157 execute(setAssignSetof());
1158 execute(setAssignUnion());
1159 execute(setAssignElem());
1160 execute(setAssignElemOpt());
1161 execute(setAssignElemRec());
1162 execute(setAssignElemRecof());
1163 execute(setAssignElemSet());
1164 execute(setAssignElemSetof());
1165 execute(setAssignElemUnion());
1166// execute(setSizeof());
1167 execute(setConst());
1168 execute(setConstOpt());
1169 execute(setConstRec());
1170 execute(setConstRecof());
1171 execute(setConstSet());
1172 execute(setConstSetof());
1173 execute(setConstUnion());
1174 execute(setComp());
1175 execute(setCompOpt());
1176 execute(setCompRec());
1177 execute(setCompRecof());
1178 execute(setCompSet());
1179 execute(setCompSetof());
1180 execute(setCompUnion());
1181 execute(setSubtypes());
1182 execute(setIsvalue());
1183 execute(setIsbound());
1184}
1185}
This page took 0.074041 seconds and 5 git commands to generate.