Sync with 5.4.0
[deliverable/titan.core.git] / regression_test / all_from / all_from_var.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 all_from_var { // HR17266
9
10 import from types all;
11 import from functions all;
12
13 // Testing 'all from' on variables, constants and template variables
14 testcase tc_checkVar() runs on A {
15 var RoI v_roi1 := { 1, 2, 6, 7, 9 };
16 var template integer v_af := ( 8, all from v_roi1 );
17
18 var RoI vl_goodValues := { 1, 2, 6, 7, 8, 9 };
19 var RoI vl_badValues := { -99, -10, -1, 0, 3, 4, 5, 10, 11, 20, 99, 100, 101, 102, 200, 1000, 100000000000000 };
20 f_checkIntegerTemplate(v_af, vl_goodValues, vl_badValues);
21 }
22
23 testcase tc_checkConst() runs on A {
24 const RoI c_roi1 := { 1, 2, 6, 7, 9 };
25 var template integer v_af := ( 8, all from c_roi1 );
26
27 var RoI vl_goodValues := { 1, 2, 6, 7, 8, 9 };
28 var RoI vl_badValues := { -99, -10, -1, 0, 3, 4, 5, 10, 11, 20, 99, 100, 101, 102, 200, 1000, 100000000000000 };
29 f_checkIntegerTemplate(v_af, vl_goodValues, vl_badValues);
30 }
31
32 testcase tc_checkTempVar() runs on A {
33 var template RoI vt_roi1 := { 1, 2, (6 .. 9) };
34 var template integer v_af := ( 11, all from vt_roi1 );
35
36 var RoI vl_goodValues := { 1, 2, 6, 7, 8, 9 };
37 var RoI vl_badValues := { -99, -10, -1, 0, 3, 4, 5, 10, 20, 99, 100, 101, 102, 200, 1000, 100000000000000 };
38 f_checkIntegerTemplate(v_af, vl_goodValues, vl_badValues);
39 }
40
41 // Testing the complement of an 'all from' (used on variables, constants and template variables)
42 testcase tc_checkVarComplement() runs on A {
43 var RoI v_roi1 := { 1, 2, 6, 7, 9 };
44 var template integer v_af := complement ( 8, all from v_roi1 );
45
46 var RoI vl_badValues := { 1, 2, 6, 7, 8, 9 };
47 var RoI vl_goodValues := { -99, -10, -1, 0, 3, 4, 5, 10, 11, 20, 99, 100, 101, 102, 200, 1000, 100000000000000 };
48 f_checkIntegerTemplate(v_af, vl_goodValues, vl_badValues);
49 }
50
51 testcase tc_checkConstComplement() runs on A {
52 const RoI c_roi1 := { 1, 2, 6, 7, 9 };
53 var template integer v_af := complement ( 8, all from c_roi1 );
54
55 var RoI vl_badValues := { 1, 2, 6, 7, 8, 9 };
56 var RoI vl_goodValues := { -99, -10, -1, 0, 3, 4, 5, 10, 11, 20, 99, 100, 101, 102, 200, 1000, 100000000000000 };
57 f_checkIntegerTemplate(v_af, vl_goodValues, vl_badValues);
58 }
59
60 testcase tc_checkTempVarComplement() runs on A {
61 var template RoI vt_roi1 := { 1, 2, (6 .. 9) };
62 var template integer v_af := complement ( 11, all from vt_roi1 );
63
64 var RoI vl_badValues := { 1, 2, 6, 7, 8, 9 };
65 var RoI vl_goodValues := { -99, -10, -1, 0, 3, 4, 5, 10, 20, 99, 100, 101, 102, 200, 1000, 100000000000000 };
66 f_checkIntegerTemplate(v_af, vl_goodValues, vl_badValues);
67 }
68
69 // Testing the permutation of an 'all from' (used on variables, constants and template variables)
70 testcase tc_checkVarPermutation() runs on A {
71 var RoI v_roi1 := { 1, 2 };
72 var template RoI v_af := { permutation ( 6, all from v_roi1 ), 7 };
73
74 var RoRoI vl_goodValues := { {1, 2, 6, 7}, {1, 6, 2, 7}, {2, 1, 6, 7}, {2, 6, 1, 7}, {6, 1, 2, 7}, {6, 2, 1, 7}};
75 var RoRoI vl_badValues := { {}, {1}, {1, 2, 6}, {1, 2, 7}, {7, 2, 1, 6}, {-5, 1, 2, 6, 7}, {1, 2, 3, 4}, {7, 6}, {19000000000000, 107, 66, 18} }
76 f_checkRoITemplate(v_af, vl_goodValues, vl_badValues);
77 }
78
79 testcase tc_checkConstPermutation() runs on A {
80 const RoI c_roi1 := { 1, 2 };
81 var template RoI v_af := { permutation ( 6, all from c_roi1 ), 7 };
82
83 var RoRoI vl_goodValues := { {1, 2, 6, 7}, {1, 6, 2, 7}, {2, 1, 6, 7}, {2, 6, 1, 7}, {6, 1, 2, 7}, {6, 2, 1, 7}};
84 var RoRoI vl_badValues := { {}, {1}, {1, 2, 6}, {1, 2, 7}, {7, 2, 1, 6}, {-5, 1, 2, 6, 7}, {1, 2, 3, 4}, {7, 6}, {19000000000000, 107, 66, 18} };
85 f_checkRoITemplate(v_af, vl_goodValues, vl_badValues);
86 }
87
88 testcase tc_checkTempVarPermutation() runs on A {
89 var template RoI vt_roi1 := { (1..3), (2..4) };
90 var template RoI v_af := { permutation ( all from vt_roi1 ), 7 };
91
92 var RoRoI vl_goodValues := { {1, 2, 7}, {2, 2, 7}, {3, 2, 7}, {1, 3, 7}, {2, 3, 7}, {3, 3, 7}, {1, 4, 7}, {2, 4, 7}, {3, 4, 7} };
93 var RoRoI vl_badValues := { {}, {1}, {1, 2, 6}, {1, 2, 3, 7}, {7, 2, 1, 6}, {-5, 1, 2, 7}, {1, 2, 3, 4}, {7, 6}, {19000000000000, 107, 66} };
94 f_checkRoITemplate(v_af, vl_goodValues, vl_badValues);
95 }
96
97 // Testing the subset of an 'all from' (used on variables, constants and template variables)
98 testcase tc_checkVarSubset() runs on A {
99 var RoI v_roi1 := { 1, 2, 3 };
100 var template SoI v_af := subset (all from v_roi1);
101
102 var RoSoI vl_goodValues := { {}, {1}, {2}, {3}, {1, 2}, {1, 3}, {2, 3}, {1, 2 ,3} };
103 var RoSoI vl_badValues := { {4}, {-8}, {6300000000000000000}, {1, 2, 6}, {1, 2, 3, 6}, {1, 1, 2, 3}, {0, 2, 3}, {100, 77777777777, 45454213414} };
104 f_checkSoITemplate(v_af, vl_goodValues, vl_badValues);
105 }
106
107 testcase tc_checkConstSubset() runs on A {
108 const RoI c_roi1 := { 1, 2, 3 };
109 var template SoI v_af := subset (all from c_roi1);
110
111 var RoSoI vl_goodValues := { {}, {1}, {2}, {3}, {1, 2}, {1, 3}, {2, 3}, {1, 2 ,3} };
112 var RoSoI vl_badValues := { {4}, {-8}, {6300000000000000000}, {1, 2, 6}, {1, 2, 3, 6}, {1, 1, 2, 3}, {0, 2, 3}, {100, 77777777777, 45454213414} };
113 f_checkSoITemplate(v_af, vl_goodValues, vl_badValues);
114 }
115
116 testcase tc_checkTempVarSubset() runs on A {
117 var template RoI vt_roi1 := { 1, (2..4) };
118 var template SoI v_af := subset (all from vt_roi1);
119
120 var RoSoI vl_goodValues := { {}, {1}, {2}, {3}, {4}, {1, 2}, {1, 3}, {1, 4} };
121 var RoSoI vl_badValues := { {-8}, {6300000000000000000}, {2, 3}, {1, 2 ,3}, {1, 2, 6}, {1, 2, 3, 6}, {1, 1, 4}, {0, 2, 3}, {77777777777, 45454213414} };
122 f_checkSoITemplate(v_af, vl_goodValues, vl_badValues);
123 }
124
125 // Testing the superset of an 'all from' (used on variables, constants and template variables)
126 testcase tc_checkVarSuperset() runs on A {
127 var RoI v_roi1 := { 1, 2, 3 };
128 var template SoI v_af := superset (all from v_roi1);
129
130 var RoSoI vl_goodValues := { {1, 2, 3}, {1, 2, 3, 0}, {1, 2, 3, 10}, {8, 2, 1, 3}, {3, 2, 1, 0}, {1, 1, 2, 3}, {1, 100, 77777777777, 2, 3, 45454213414} };
131 var RoSoI vl_badValues := { {}, {1}, {2}, {3}, {1, 2}, {1, 3}, {2, 3}, {4}, {-8}, {6300000000000000000}, {1, 2, 6}, {0, 2, 3}, {100, 77777777777, 45454213414} };
132 f_checkSoITemplate(v_af, vl_goodValues, vl_badValues);
133 }
134
135 testcase tc_checkConstSuperset() runs on A {
136 const RoI c_roi1 := { 1, 2, 3 };
137 var template SoI v_af := superset (all from c_roi1);
138
139 var RoSoI vl_goodValues := { {1, 2, 3}, {1, 2, 3, 0}, {1, 2, 3, 10}, {8, 2, 1, 3}, {3, 2, 1, 0}, {1, 1, 2, 3}, {1, 100, 77777777777, 2, 3, 45454213414} };
140 var RoSoI vl_badValues := { {}, {1}, {2}, {3}, {1, 2}, {1, 3}, {2, 3}, {4}, {-8}, {6300000000000000000}, {1, 2, 6}, {0, 2, 3}, {100, 77777777777, 45454213414} };
141 f_checkSoITemplate(v_af, vl_goodValues, vl_badValues);
142 }
143
144 testcase tc_checkTempVarSuperset() runs on A {
145 var template RoI vt_roi1 := { 1, (2..4) };
146 var template SoI v_af := superset (all from vt_roi1);
147
148 var RoSoI vl_goodValues := { {1, 2}, {1, 3}, {1, 2, 3}, {1, 3, 0}, {1, 2, 3, 10}, {8, 2, 1}, {3, 2, 1, 0}, {1, 1, 3}, {1, 100, 77777777777, 3, 45454213414} };
149 var RoSoI vl_badValues := { {}, {1}, {2}, {3}, {2, 3}, {4}, {-8}, {6300000000000000000}, {0, 2, 3}, {100, 77777777777, 45454213414}, {7, 6}, {3, 4} };
150 f_checkSoITemplate(v_af, vl_goodValues, vl_badValues);
151 }
152
153 // Testing 'all from' on template variables that reference themselves
154 // (same with permutation, subset and superset)
155 testcase tc_checkTempVarSelf() runs on A {
156 var template RoI v_af := { 1, (2..4) };
157 v_af := { 7, (all from v_af) };
158
159 var RoRoI vl_goodValues := { {7, 1}, {7, 2}, {7, 3}, {7, 4} };
160 var RoRoI vl_badValues := { {}, {7}, {1}, {2}, {3}, {4}, {7, 0}, {7, 5}, {7, 10}, {7, 98765432123456789}, {1, 2, 3} };
161 f_checkRoITemplate(v_af, vl_goodValues, vl_badValues);
162 }
163
164 testcase tc_checkTempVarSelfPermutation() runs on A {
165 var template RoI v_af := { (1..3), (2..4) };
166 v_af := { permutation ( all from v_af ), 7 };
167
168 var RoRoI vl_goodValues := { {1, 2, 7}, {2, 2, 7}, {3, 2, 7}, {1, 3, 7}, {2, 3, 7}, {3, 3, 7}, {1, 4, 7}, {2, 4, 7}, {3, 4, 7} };
169 var RoRoI vl_badValues := { {}, {1}, {1, 2, 6}, {1, 2, 3, 7}, {7, 2, 1, 6}, {-5, 1, 2, 7}, {1, 2, 3, 4}, {7, 6}, {19000000000000, 107, 66} };
170 f_checkRoITemplate(v_af, vl_goodValues, vl_badValues);
171 }
172
173 testcase tc_checkTempVarSelfSubset() runs on A {
174 var template SoI v_af := { 1, (2..4) };
175 v_af := subset (all from v_af);
176
177 var RoSoI vl_goodValues := { {}, {1}, {2}, {3}, {4}, {1, 2}, {1, 3}, {1, 4} };
178 var RoSoI vl_badValues := { {-8}, {6300000000000000000}, {2, 3}, {1, 2 ,3}, {1, 2, 6}, {1, 2, 3, 6}, {1, 1, 4}, {0, 2, 3}, {77777777777, 45454213414} };
179 f_checkSoITemplate(v_af, vl_goodValues, vl_badValues);
180 }
181
182 testcase tc_checkTempVarSelfSuperset() runs on A {
183 var template SoI v_af := { 1, (2..4) };
184 v_af := superset (all from v_af);
185
186 var RoSoI vl_goodValues := { {1, 2}, {1, 3}, {1, 2, 3}, {1, 3, 0}, {1, 2, 3, 10}, {8, 2, 1}, {3, 2, 1, 0}, {1, 1, 3}, {1, 100, 77777777777, 3, 45454213414} };
187 var RoSoI vl_badValues := { {}, {1}, {2}, {3}, {2, 3}, {4}, {-8}, {6300000000000000000}, {0, 2, 3}, {100, 77777777777, 45454213414}, {7, 6}, {3, 4} };
188 f_checkSoITemplate(v_af, vl_goodValues, vl_badValues);
189 }
190
191 // Testing 'all from' and self referencing on function parameters
192 function f_all_from_par(inout template RoI p_af) runs on A {
193 p_af := { 7, (all from p_af) };
194 }
195
196 testcase tc_checkTempParSelf() runs on A {
197 var template RoI v_af := { 1, (2..4) };
198 f_all_from_par(v_af);
199
200 var RoRoI vl_goodValues := { {7, 1}, {7, 2}, {7, 3}, {7, 4} };
201 var RoRoI vl_badValues := { {}, {7}, {1}, {2}, {3}, {4}, {7, 0}, {7, 5}, {7, 10}, {7, 98765432123456789}, {1, 2, 3} };
202 f_checkRoITemplate(v_af, vl_goodValues, vl_badValues);
203 }
204
205 // Testing 'all from' and self referencing on template variables in the parameter lists of
206 // function calls and parametrised templates
207 function f_do_nothing(in template RoI p_temp) runs on A return template RoI {
208 return p_temp;
209 }
210
211 function f_do_nothing2(in template integer p_ti, in template RoI p_temp) runs on A return template RoI {
212 return p_temp;
213 }
214
215 function f_do_nothing_io(inout template RoI p_temp) runs on A return template RoI {
216 return p_temp;
217 }
218
219 testcase tc_checkTempVarFuncSelf() runs on A {
220 var template RoI v_af := { 1, (2..4) };
221 v_af := { 7, ( all from f_do_nothing(v_af) ) };
222
223 var RoRoI vl_goodValues := { {7, 1}, {7, 2}, {7, 3}, {7, 4} };
224 var RoRoI vl_badValues := { {}, {7}, {1}, {2}, {3}, {4}, {7, 0}, {7, 5}, {7, 10}, {7, 98765432123456789}, {1, 2, 3} };
225 f_checkRoITemplate(v_af, vl_goodValues, vl_badValues);
226 }
227
228 testcase tc_checkTempVarFuncSelf2() runs on A {
229 var template RoI v_af := { 1, (2..4) };
230 v_af := { 7, ( all from f_do_nothing_io(v_af) ) };
231
232 var RoRoI vl_goodValues := { {7, 1}, {7, 2}, {7, 3}, {7, 4} };
233 var RoRoI vl_badValues := { {}, {7}, {1}, {2}, {3}, {4}, {7, 0}, {7, 5}, {7, 10}, {7, 98765432123456789}, {1, 2, 3} };
234 f_checkRoITemplate(v_af, vl_goodValues, vl_badValues);
235 }
236
237 testcase tc_checkTempVarFuncSelf3() runs on A {
238 var template RoI v_af := { 1, (2..4) };
239 v_af := { 7, ( all from f_do_nothing2(0, v_af) ) };
240
241 var RoRoI vl_goodValues := { {7, 1}, {7, 2}, {7, 3}, {7, 4} };
242 var RoRoI vl_badValues := { {}, {7}, {1}, {2}, {3}, {4}, {7, 0}, {7, 5}, {7, 10}, {7, 98765432123456789}, {1, 2, 3} };
243 f_checkRoITemplate(v_af, vl_goodValues, vl_badValues);
244 }
245
246 testcase tc_checkTempVarFuncSelf4() runs on A {
247 var template RoI v_af := { 1, (2..4) };
248 v_af := { 7, ( all from f_do_nothing(f_do_nothing2(0, f_do_nothing(f_do_nothing2(7, v_af)))) ) };
249
250 var RoRoI vl_goodValues := { {7, 1}, {7, 2}, {7, 3}, {7, 4} };
251 var RoRoI vl_badValues := { {}, {7}, {1}, {2}, {3}, {4}, {7, 0}, {7, 5}, {7, 10}, {7, 98765432123456789}, {1, 2, 3} };
252 f_checkRoITemplate(v_af, vl_goodValues, vl_badValues);
253 }
254
255 template RoI t_pard(in template RoI t_r) := t_r;
256
257 testcase tc_checkTempVarTempPardSelf() runs on A {
258 var template RoI v_af := { 1, (2..4) };
259 v_af := { 7, ( all from t_pard(v_af) ) };
260
261 var RoRoI vl_goodValues := { {7, 1}, {7, 2}, {7, 3}, {7, 4} };
262 var RoRoI vl_badValues := { {}, {7}, {1}, {2}, {3}, {4}, {7, 0}, {7, 5}, {7, 10}, {7, 98765432123456789}, {1, 2, 3} };
263 f_checkRoITemplate(v_af, vl_goodValues, vl_badValues);
264 }
265
266 testcase tc_checkTempVarComboSelf() runs on A {
267 var template RoI v_af := { 1, (2..4) };
268 v_af := { 7, ( all from f_do_nothing2(5, t_pard(f_do_nothing(v_af))) ) };
269
270 var RoRoI vl_goodValues := { {7, 1}, {7, 2}, {7, 3}, {7, 4} };
271 var RoRoI vl_badValues := { {}, {7}, {1}, {2}, {3}, {4}, {7, 0}, {7, 5}, {7, 10}, {7, 98765432123456789}, {1, 2, 3} };
272 f_checkRoITemplate(v_af, vl_goodValues, vl_badValues);
273 }
274
275 control {
276 execute(tc_checkVar());
277 execute(tc_checkConst());
278 execute(tc_checkTempVar());
279 execute(tc_checkVarComplement());
280 execute(tc_checkConstComplement());
281 execute(tc_checkTempVarComplement());
282 execute(tc_checkVarPermutation());
283 execute(tc_checkConstPermutation());
284 execute(tc_checkTempVarPermutation());
285 execute(tc_checkVarSubset());
286 execute(tc_checkConstSubset());
287 execute(tc_checkTempVarSubset());
288 execute(tc_checkVarSuperset());
289 execute(tc_checkConstSuperset());
290 execute(tc_checkTempVarSuperset());
291 execute(tc_checkTempVarSelf());
292 execute(tc_checkTempVarSelfPermutation());
293 execute(tc_checkTempVarSelfSubset());
294 execute(tc_checkTempVarSuperset());
295 execute(tc_checkTempParSelf());
296 execute(tc_checkTempVarFuncSelf());
297 execute(tc_checkTempVarFuncSelf2());
298 execute(tc_checkTempVarFuncSelf3());
299 execute(tc_checkTempVarFuncSelf4());
300 execute(tc_checkTempVarTempPardSelf());
301 execute(tc_checkTempVarComboSelf());
302 }
303}
This page took 0.056131 seconds and 5 git commands to generate.