Commit | Line | Data |
---|---|---|
970ed795 | 1 | /****************************************************************************** |
d44e3c4f | 2 | * Copyright (c) 2000-2016 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 | |
d44e3c4f | 7 | * |
8 | * Contributors: | |
9 | * Balasko, Jeno | |
10 | * Raduly, Csaba | |
11 | * Szabados, Kristof | |
12 | * Szabo, Janos Zoltan – initial implementation | |
13 | * | |
970ed795 EL |
14 | ******************************************************************************/ |
15 | module TtemplateEnum { | |
16 | type component templateEnum_mycomp {}; | |
17 | type enumerated templateEnum_myenum {xx1,xx2,xx3,xx4,xx5,xx6,xx7}; | |
18 | type record templateEnum_rec { | |
19 | templateEnum_myenum x1, | |
20 | templateEnum_myenum x2, | |
21 | templateEnum_myenum x3 optional }; | |
22 | template templateEnum_rec templateEnum_tSpec :={ //specific values | |
23 | x1:=xx1, | |
24 | x2:=xx2, | |
25 | x3:=xx3 }; | |
26 | template templateEnum_rec templateEnum_tList :={ //specific value and value list | |
27 | x1:=xx1, | |
28 | x2:=(xx2,xx3,xx6), | |
29 | x3:=xx3 }; | |
30 | template templateEnum_rec templateEnum_tComp :={ //specific value and compl. list | |
31 | x1:=xx1, | |
32 | x2:=complement (xx2,xx3,xx6), | |
33 | x3:=xx3 }; | |
34 | template templateEnum_rec templateEnum_tOmit :={ //omitting values | |
35 | x1:=xx1, | |
36 | x2:=xx2, | |
37 | x3:=omit } ; | |
38 | template templateEnum_rec templateEnum_tAny :={ //specific and any value | |
39 | x1:=xx1, | |
40 | x2:=xx2, | |
41 | x3:=? } ; | |
42 | template templateEnum_rec templateEnum_tAnyorNone :={ //specific and AnyorNone value | |
43 | x1:=xx1, | |
44 | x2:=xx2, | |
45 | x3:=* }; | |
46 | template templateEnum_rec templateEnum_tIfpresent :={ //specific value and ifpresent | |
47 | x1:=xx1, | |
48 | x2:=xx2, | |
49 | x3:=xx3 ifpresent }; | |
50 | ||
51 | testcase templateEnumSpec() runs on templateEnum_mycomp { | |
52 | var templateEnum_rec x1,x2; //specific value | |
53 | x1:={ x1:=xx1, x2:=xx2, x3:=xx3 }; | |
54 | x2:={ x1:=xx2, x2:=xx2, x3:=xx3 }; | |
55 | //match | |
56 | if (match(x1,templateEnum_tSpec)) {setverdict(pass);} | |
57 | else {setverdict(fail);} | |
58 | //no match | |
59 | if (not(match(x2,templateEnum_tSpec))) {setverdict(pass);} | |
60 | else {setverdict(fail);} | |
61 | } | |
62 | ||
63 | testcase templateEnumList() runs on templateEnum_mycomp { | |
64 | var templateEnum_rec x1,x2,x3; //value list | |
65 | x1:={ x1:=xx1, x2:=xx6, x3:=xx3 }; | |
66 | x2:={ x1:=xx1, x2:=xx7, x3:=xx3 }; | |
67 | x3:={ x1:=xx2, x2:=xx6, x3:=xx3 }; | |
68 | //match | |
69 | if (match(x1,templateEnum_tList)) {setverdict(pass);} | |
70 | else {setverdict(fail);} | |
71 | //no match: out of list | |
72 | if (not(match(x2,templateEnum_tList))) {setverdict(pass);} | |
73 | else {setverdict(fail);} | |
74 | //no match: other field | |
75 | if (not(match(x3,templateEnum_tList))) {setverdict(pass);} | |
76 | else {setverdict(fail);} | |
77 | } | |
78 | ||
79 | testcase templateEnumComp() runs on templateEnum_mycomp { | |
80 | var templateEnum_rec x1,x2,x3; //complemented list | |
81 | x1:={ x1:=xx1, x2:=xx7, x3:=xx3 }; | |
82 | x2:={ x1:=xx1, x2:=xx6, x3:=xx3 }; | |
83 | x3:={ x1:=xx2, x2:=xx7, x3:=xx3 }; | |
84 | //match | |
85 | if (match(x1,templateEnum_tComp)) {setverdict(pass);} | |
86 | else {setverdict(fail);} | |
87 | //no match: in the list | |
88 | if (not(match(x2,templateEnum_tComp))) {setverdict(pass);} | |
89 | else {setverdict(fail);} | |
90 | //no match: other field | |
91 | if (not(match(x3,templateEnum_tComp))) {setverdict(pass);} | |
92 | else {setverdict(fail);} | |
93 | } | |
94 | ||
95 | testcase templateEnumOmit() runs on templateEnum_mycomp { | |
96 | var templateEnum_rec x1,x2,x3; //omitting value | |
97 | x1:={ x1:=xx1, x2:=xx2, x3:=omit }; | |
98 | x2:={ x1:=xx1, x2:=xx2, x3:=xx3 }; | |
99 | x3:={ x1:=xx2, x2:=xx2, x3:=omit }; | |
100 | //match | |
101 | if (match(x1,templateEnum_tOmit)) {setverdict(pass);} | |
102 | else {setverdict(fail);} | |
103 | //no match: not omitted | |
104 | if (not(match(x2,templateEnum_tOmit))) {setverdict(pass);} | |
105 | else {setverdict(fail);} | |
106 | //no match: other field | |
107 | if (not(match(x3,templateEnum_tOmit))) {setverdict(pass);} | |
108 | else {setverdict(fail);} | |
109 | } | |
110 | ||
111 | testcase templateEnumAny() runs on templateEnum_mycomp { | |
112 | var templateEnum_rec x1,x2,x3; //any value | |
113 | x1:={ x1:=xx1, x2:=xx2, x3:=xx3 }; | |
114 | x2:={ x1:=xx2, x2:=xx2, x3:=xx3 }; | |
115 | x3:={ x1:=xx1, x2:=xx2, x3:=omit }; | |
116 | //match | |
117 | if (match(x1,templateEnum_tAny)) {setverdict(pass);} | |
118 | else {setverdict(fail);} | |
119 | //no match: field omitted | |
120 | if (not(match(x2,templateEnum_tAny))) {setverdict(pass);} | |
121 | else {setverdict(fail);} | |
122 | //no match: other field | |
123 | if (not(match(x3,templateEnum_tAny))) {setverdict(pass);} | |
124 | else {setverdict(fail);} | |
125 | } | |
126 | ||
127 | testcase templateEnumAnyorNone() runs on templateEnum_mycomp { | |
128 | var templateEnum_rec x1,x2,x3; //AnyorNone value | |
129 | x1:={ x1:=xx1, x2:=xx2, x3:=omit }; | |
130 | x2:={ x1:=xx1, x2:=xx2, x3:=xx3 }; | |
131 | x3:={ x1:=xx2, x2:=xx2, x3:=omit }; | |
132 | //match: omitted | |
133 | if (match(x1,templateEnum_tAnyorNone)) {setverdict(pass);} | |
134 | else {setverdict(fail);} | |
135 | //match: value | |
136 | if (match(x2,templateEnum_tAnyorNone)) {setverdict(pass);} | |
137 | else {setverdict(fail);} | |
138 | //no match: other field | |
139 | if (not(match(x3,templateEnum_tAnyorNone))) {setverdict(pass);} | |
140 | else {setverdict(fail);} | |
141 | } | |
142 | ||
143 | testcase templateEnumIfpresent() runs on templateEnum_mycomp { | |
144 | var templateEnum_rec x1,x2,x3,x4; //ifpresent | |
145 | x1:={ x1:=xx1, x2:=xx2, x3:=xx3 }; | |
146 | x2:={ x1:=xx1, x2:=xx2, x3:=omit }; | |
147 | x3:={ x1:=xx2, x2:=xx2, x3:=omit }; | |
148 | x4:={ x1:=xx1, x2:=xx2, x3:=xx4 }; | |
149 | //match: present and match | |
150 | if (match(x1,templateEnum_tIfpresent)) {setverdict(pass);} | |
151 | else {setverdict(fail);} | |
152 | //match: not present | |
153 | if (match(x2,templateEnum_tIfpresent)) {setverdict(pass);} | |
154 | else {setverdict(fail);} | |
155 | //no match: present and not match | |
156 | if (not(match(x3,templateEnum_tIfpresent))) {setverdict(pass);} | |
157 | else {setverdict(fail);} | |
158 | //no match: other field | |
159 | if (not(match(x4,templateEnum_tIfpresent))) {setverdict(pass);} | |
160 | else {setverdict(fail);} | |
161 | } | |
162 | ||
163 | control { | |
164 | execute(templateEnumSpec()); | |
165 | execute(templateEnumList()); | |
166 | execute(templateEnumComp()); | |
167 | execute(templateEnumOmit()); | |
168 | execute(templateEnumAny()); | |
169 | execute(templateEnumAnyorNone()); | |
170 | execute(templateEnumIfpresent()); | |
171 | } | |
172 | } |