Commit | Line | Data |
---|---|---|
970ed795 EL |
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 TtemplateSet { | |
9 | type component templateSet_mycomp {}; | |
10 | type set templateSet_myset { | |
11 | integer f1, | |
12 | float f2 }; | |
13 | type record templateSet_rec { | |
14 | templateSet_myset x1, | |
15 | templateSet_myset x2, | |
16 | templateSet_myset x3 optional }; | |
17 | template templateSet_rec templateSet_tSpec :={ //specific values | |
18 | x1:={f1:=1,f2:=1.2}, | |
19 | x2:={f1:=2,f2:=1.2}, | |
20 | x3:={f1:=3,f2:=1.2} }; | |
21 | template templateSet_rec templateSet_tList :={ //specific value and value list | |
22 | x1:={f2:=1.2,f1:=1}, | |
23 | x2:=({f1:=2,f2:=1.2},{f1:=3,f2:=1.2},{f1:=6,f2:=1.2}), | |
24 | x3:={f1:=3,f2:=1.2} }; | |
25 | template templateSet_rec templateSet_tComp :={ //specific value and compl. list | |
26 | x1:={f1:=1,f2:=1.2}, | |
27 | x2:=complement ({f1:=2,f2:=1.2},{f1:=3,f2:=1.2},{f1:=6,f2:=1.2}), | |
28 | x3:={f1:=3,f2:=1.2} }; | |
29 | template templateSet_rec templateSet_tOmit :={ //omitting values | |
30 | x1:={f1:=1,f2:=1.2}, | |
31 | x2:={f1:=2,f2:=1.2}, | |
32 | x3:=omit } ; | |
33 | template templateSet_rec templateSet_tAny :={ //specific and any value | |
34 | x1:={f1:=1,f2:=1.2}, | |
35 | x2:={f1:=2,f2:=1.2}, | |
36 | x3:=? } ; | |
37 | template templateSet_rec templateSet_tAnyorNone :={ //specific and AnyorNone value | |
38 | x1:={f1:=1,f2:=1.2}, | |
39 | x2:={f1:=2,f2:=1.2}, | |
40 | x3:=* }; | |
41 | //template templateSet_rec templateSet_tIfpresent :={ //specific value and ifpresent | |
42 | // x1:={f1:=1,f2:=1.2}, | |
43 | // x2:={f1:=2,f2:=1.2}, | |
44 | // x3:={f1:=3,f2:=1.2} ifpresent }; | |
45 | ||
46 | testcase templateSetSpec() runs on templateSet_mycomp { | |
47 | var templateSet_myset temp:={f1:=3,f2:=1.2}; | |
48 | var templateSet_rec x1,x2; //specific value | |
49 | x1:={ x1:={f1:=1,f2:=1.2}, x2:={f1:=2,f2:=1.2}, x3:=temp }; | |
50 | x2:={ x1:={f1:=2,f2:=1.2}, x2:={f1:=2,f2:=1.2}, x3:=temp }; | |
51 | //match | |
52 | if (match(x1,templateSet_tSpec)) {setverdict(pass);} | |
53 | else {setverdict(fail);} | |
54 | //no match | |
55 | if (not(match(x2,templateSet_tSpec))) {setverdict(pass);} | |
56 | else {setverdict(fail);} | |
57 | } | |
58 | ||
59 | testcase templateSetList() runs on templateSet_mycomp { | |
60 | var templateSet_myset temp:={f1:=3,f2:=1.2}; | |
61 | var templateSet_rec x1,x2,x3; //value list | |
62 | x1:={ x1:={f1:=1,f2:=1.2}, x2:={f1:=6,f2:=1.2}, x3:=temp }; | |
63 | x2:={ x1:={f1:=1,f2:=1.2}, x2:={f1:=7,f2:=1.2}, x3:=temp }; | |
64 | x3:={ x1:={f1:=8,f2:=1.2}, x2:={f1:=6,f2:=1.2}, x3:=temp }; | |
65 | //match | |
66 | if (match(x1,templateSet_tList)) {setverdict(pass);} | |
67 | else {setverdict(fail);} | |
68 | //no match: out of list | |
69 | if (not(match(x2,templateSet_tList))) {setverdict(pass);} | |
70 | else {setverdict(fail);} | |
71 | //no match: other field | |
72 | if (not(match(x3,templateSet_tList))) {setverdict(pass);} | |
73 | else {setverdict(fail);} | |
74 | } | |
75 | ||
76 | testcase templateSetComp() runs on templateSet_mycomp { | |
77 | var templateSet_myset temp:={f1:=3,f2:=1.2}; | |
78 | var templateSet_rec x1,x2,x3; //complemented list | |
79 | x1:={ x1:={f1:=1,f2:=1.2}, x2:={f1:=7,f2:=1.2}, x3:=temp }; | |
80 | x2:={ x1:={f1:=1,f2:=1.2}, x2:={f1:=6,f2:=1.2}, x3:=temp }; | |
81 | x3:={ x1:={f1:=2,f2:=1.2}, x2:={f1:=7,f2:=1.2}, x3:=temp }; | |
82 | //match | |
83 | if (match(x1,templateSet_tComp)) {setverdict(pass);} | |
84 | else {setverdict(fail);} | |
85 | //no match: in the list | |
86 | if (not(match(x2,templateSet_tComp))) {setverdict(pass);} | |
87 | else {setverdict(fail);} | |
88 | //no match: other field | |
89 | if (not(match(x3,templateSet_tComp))) {setverdict(pass);} | |
90 | else {setverdict(fail);} | |
91 | } | |
92 | ||
93 | testcase templateSetOmit() runs on templateSet_mycomp { | |
94 | var templateSet_myset temp:={f1:=3,f2:=1.2}; | |
95 | var templateSet_rec x1,x2,x3; //omitting value | |
96 | x1:={ x1:={f1:=1,f2:=1.2}, x2:={f1:=2,f2:=1.2}, x3:=omit }; | |
97 | x2:={ x1:={f1:=1,f2:=1.2}, x2:={f1:=2,f2:=1.2}, x3:=temp }; | |
98 | x3:={ x1:={f1:=2,f2:=1.2}, x2:={f1:=2,f2:=1.2}, x3:=omit }; | |
99 | //match | |
100 | if (match(x1,templateSet_tOmit)) {setverdict(pass);} | |
101 | else {setverdict(fail);} | |
102 | //no match: not omitted | |
103 | if (not(match(x2,templateSet_tOmit))) {setverdict(pass);} | |
104 | else {setverdict(fail);} | |
105 | //no match: other field | |
106 | if (not(match(x3,templateSet_tOmit))) {setverdict(pass);} | |
107 | else {setverdict(fail);} | |
108 | } | |
109 | ||
110 | testcase templateSetAny() runs on templateSet_mycomp { | |
111 | var templateSet_myset temp:={f1:=3,f2:=1.2}; | |
112 | var templateSet_rec x1,x2,x3; //any value | |
113 | x1:={ x1:={f1:=1,f2:=1.2}, x2:={f1:=2,f2:=1.2}, x3:=temp }; | |
114 | x2:={ x1:={f1:=1,f2:=1.2}, x2:={f1:=2,f2:=1.2}, x3:=omit }; | |
115 | x3:={ x1:={f1:=2,f2:=1.2}, x2:={f1:=2,f2:=1.2}, x3:=temp }; | |
116 | //match | |
117 | if (match(x1,templateSet_tAny)) {setverdict(pass);} | |
118 | else {setverdict(fail);} | |
119 | //no match: field omitted | |
120 | if (not(match(x2,templateSet_tAny))) {setverdict(pass);} | |
121 | else {setverdict(fail);} | |
122 | //no match: other field | |
123 | if (not(match(x3,templateSet_tAny))) {setverdict(pass);} | |
124 | else {setverdict(fail);} | |
125 | } | |
126 | ||
127 | testcase templateSetAnyorNone() runs on templateSet_mycomp { | |
128 | var templateSet_myset temp:={f1:=3,f2:=1.2}; | |
129 | var templateSet_rec x1,x2,x3; //AnyorNone value | |
130 | x1:={ x1:={f1:=1,f2:=1.2}, x2:={f1:=2,f2:=1.2}, x3:=omit }; | |
131 | x2:={ x1:={f1:=1,f2:=1.2}, x2:={f1:=2,f2:=1.2}, x3:=temp }; | |
132 | x3:={ x1:={f1:=2,f2:=1.2}, x2:={f1:=2,f2:=1.2}, x3:=omit }; | |
133 | //match: omitted | |
134 | if (match(x1,templateSet_tAnyorNone)) {setverdict(pass);} | |
135 | else {setverdict(fail);} | |
136 | //match: value | |
137 | if (match(x2,templateSet_tAnyorNone)) {setverdict(pass);} | |
138 | else {setverdict(fail);} | |
139 | //no match: other field | |
140 | if (not(match(x3,templateSet_tAnyorNone))) {setverdict(pass);} | |
141 | else {setverdict(fail);} | |
142 | } | |
143 | ||
144 | //testcase templateSetIfpresent() runs on templateInt_mycomp { | |
145 | //var templateSet_myset temp1:={f1:=3,f2:=1.2}; //ifpresent | |
146 | //var templateSet_myset temp2:={f1:=4,f2:=1.2}; | |
147 | //var templateSet_rec x1,x2,x3,x4; | |
148 | //x1:={ x1:={f1:=1,f2:=1.2}, x2:={f1:=2,f2:=1.2}, x3:=temp1 }; | |
149 | //x2:={ x1:={f1:=1,f2:=1.2}, x2:={f1:=2,f2:=1.2}, x3:=omit }; | |
150 | //x3:={ x1:={f1:=1,f2:=1.2}, x2:={f1:=2,f2:=1.2}, x3:=temp2 }; | |
151 | //x4:={ x1:={f1:=2,f2:=1.2}, x2:={f1:=2,f2:=1.2}, x3:=omit }; | |
152 | //match: present and match | |
153 | //if (match(x1,templateSet_tIfpresent)) {setverdict(pass);} | |
154 | // else {setverdict(fail);} | |
155 | //match: not present | |
156 | //if (match(x2,templateSet_tIfpresent)) {setverdict(pass);} | |
157 | // else {setverdict(fail);} | |
158 | //no match: present and not match | |
159 | //if (not(match(x3,templateSet_tIfpresent))) {setverdict(pass);} | |
160 | // else {setverdict(fail);} | |
161 | //no match: other field | |
162 | //if (not(match(x4,templateSet_tIfpresent))) {setverdict(pass);} | |
163 | // else {setverdict(fail);} | |
164 | //} | |
165 | ||
166 | control { | |
167 | execute(templateSetSpec()); | |
168 | execute(templateSetList()); | |
169 | execute(templateSetComp()); | |
170 | execute(templateSetOmit()); | |
171 | execute(templateSetAny()); | |
172 | execute(templateSetAnyorNone()); | |
173 | // execute(templateSetIfpresent()); | |
174 | ||
175 | } | |
176 | } |