1 /******************************************************************************
2 * Copyright (c) 2000-2015 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 ******************************************************************************/
16 //=========================================================================
18 //=========================================================================
20 import from types all;
21 import from functions all;
23 //=========================================================================
25 //=========================================================================
29 template integer tspt_i_v := 9;
30 template integer tspt_i_o := omit;
31 template integer tspt_i_a := *;
32 template integer tspt_i_q := ?;
33 template integer tspt_i_vl1 := (1);
34 template integer tspt_i_vl2 := (0,1);
35 template integer tspt_i_vl3 := (0,1,-1);
36 template integer tspt_i_c := complement(0,1,-1);
37 template integer tspt_i_r := (1..4); //range
39 //templates overwritten:
40 template integer tspt_i1 := *; //overwritten by cfg for value 9
41 template integer tspt_i2 := 4; //overwritten by cfg for omit
42 template integer tspt_i3 := 5; //overwritten by cfg for *
43 template integer tspt_i4 := *; //overwritten by cfg for ?
44 template integer tspt_i5 := ?; //overwritten by cfg for value list (0,1,-1)
45 template integer tspt_i6 := *; //overwritten by cfg for 9 ifpresent
46 template integer tspt_i7 := *; //overwritten by cfg for omit
47 template integer tspt_i8 := *; //overwritten by cfg for *
48 template integer tspt_i9 := *; //overwritten by cfg for ?
49 template integer tspt_i10 := *; //overwritten by cfg for value list (0,1,-1)
50 template integer tspt_i11 := *; //overwritten by cfg for complement
53 //=========================================================================
55 //=========================================================================
57 // Insert data type defintions here if applicable!
58 // You can use the data_type skeleton!
60 //=========================================================================
62 //=========================================================================
64 // Insert signature definitions here if applicable!
65 // You can use the signature skeleton!
67 //=========================================================================
69 //=========================================================================
71 // Insert port type defintions here if applicable!
72 // You can use the port_type skeleton!
74 //=========================================================================
76 //=========================================================================
78 // Insert component type defintions here if applicable!
79 // You can use the component_type skeleton!
81 //=========================================================================
83 //=========================================================================
85 // Insert constants here if applicable!
86 // You can use the constant skeleton!
88 //=========================================================================
90 //=========================================================================
92 template REC t_rec(template integer pl_i, template float pl_f, template charstring pl_cs, template bitstring pl_bs) := {
99 template integer t_i_v := 9;
100 template integer t_i_o := omit;
101 template integer t_i_a := *;
102 template integer t_i_q := ?;
103 template integer t_i_vl := (0,1,-1)
104 template integer t_i_c := complement(0,1,-1);
105 //=========================================================================
107 //=========================================================================
109 // Insert functions here if applicable!
110 // You can use the function skeleton!
112 //=========================================================================
114 //=========================================================================
116 //Goal: simple integer template is accepted as modulepar and it can be used
117 testcase tc_integer_NoModulePar() runs on MC {
118 if( log2str(t_i_v) != "9") { setverdict(fail)} else { setverdict(pass) }
119 if( log2str(t_i_o) != "omit") { setverdict(fail)};
120 if( log2str(t_i_a) != "*") { setverdict(fail)};
121 if( log2str(t_i_q) != "?") { setverdict(fail)};
123 if( log2str(t_i_vl) != "(0, 1, -1)") { setverdict(fail) };
124 if( log2str(t_i_c) != "complement (0, 1, -1)") { setverdict(fail) };
127 testcase tc_integer_NoModulePar_Embedded() runs on MC {
128 log(t_rec(t_i_v,omit,omit,omit));
129 if( log2str(t_rec(t_i_v,omit,omit,omit)) != "{ i := 9, f := omit, cs := omit, bs := omit }") { setverdict(fail)} else { setverdict(pass) }
130 log(t_rec(t_i_o,omit,omit,omit));
131 if( log2str(t_rec(t_i_o,omit,omit,omit)) != "{ i := omit, f := omit, cs := omit, bs := omit }" ) { setverdict(fail)};
132 log(t_rec(t_i_a,omit,omit,omit));
133 if( log2str(t_rec(t_i_a,omit,omit,omit)) != "{ i := *, f := omit, cs := omit, bs := omit }" ) { setverdict(fail)};
134 log(t_rec(t_i_q,omit,omit,omit));
135 if( log2str(t_rec(t_i_q,omit,omit,omit)) != "{ i := ?, f := omit, cs := omit, bs := omit }") { setverdict(fail)};
136 log( t_rec(t_i_vl,omit,omit,omit));
137 if( log2str(t_rec(t_i_vl,omit,omit,omit)) != "{ i := (0, 1, -1), f := omit, cs := omit, bs := omit }") { setverdict(fail) };
138 log( t_rec(t_i_c,omit,omit,omit));
139 if( log2str(t_rec(t_i_c,omit,omit,omit)) != "{ i := complement (0, 1, -1), f := omit, cs := omit, bs := omit }") { setverdict(fail) };
142 testcase tc_integer_Embedded() runs on MC {
143 log(t_rec(tspt_i_v,omit,omit,omit));
144 if( log2str(t_rec(tspt_i_v,omit,omit,omit)) != "{ i := 9, f := omit, cs := omit, bs := omit }") { setverdict(fail)} else { setverdict(pass) }
145 log(t_rec(tspt_i_o,omit,omit,omit));
146 if( log2str(t_rec(tspt_i_o,omit,omit,omit)) != "{ i := omit, f := omit, cs := omit, bs := omit }" ) { setverdict(fail)};
147 log(t_rec(tspt_i_a,omit,omit,omit));
148 if( log2str(t_rec(tspt_i_a,omit,omit,omit)) != "{ i := *, f := omit, cs := omit, bs := omit }" ) { setverdict(fail)};
149 log(t_rec(tspt_i_q,omit,omit,omit));
150 if( log2str(t_rec(tspt_i_q,omit,omit,omit)) != "{ i := ?, f := omit, cs := omit, bs := omit }") { setverdict(fail)};
151 log( t_rec(tspt_i_vl1,omit,omit,omit));
152 if( log2str(t_rec(tspt_i_vl1,omit,omit,omit)) != "{ i := 1, f := omit, cs := omit, bs := omit }") { setverdict(fail) };
153 log( t_rec(tspt_i_vl2,omit,omit,omit));
154 if( log2str(t_rec(tspt_i_vl2,omit,omit,omit)) != "{ i := (0, 1), f := omit, cs := omit, bs := omit }") { setverdict(fail) };
155 log( t_rec(tspt_i_vl3,omit,omit,omit));
156 if( log2str(t_rec(tspt_i_vl3,omit,omit,omit)) != "{ i := (0, 1, -1), f := omit, cs := omit, bs := omit }") { setverdict(fail) };
157 log( t_rec(tspt_i_c,omit,omit,omit));
158 if( log2str(t_rec(tspt_i_c,omit,omit,omit)) != "{ i := complement (0, 1, -1), f := omit, cs := omit, bs := omit }") { setverdict(fail) };
161 testcase tc_integer_Embedded_value() runs on MC {
162 template REC vlt:=t_rec(tspt_i_v,omit,omit,omit);
163 var RoREC vl_good_values := {{ 9,omit,omit,omit}};
164 var RoREC vl_wrong_values := { { 10,omit,omit,omit}, { 9,1.0,omit,omit},{ 9,1.0,"lambada",'01'B}, { 10000,1.0,"lambada",'01'B} };
165 f_checkMatchingValues_rec( vlt, vl_good_values, vl_wrong_values );
168 testcase tc_integer_Embedded_complement() runs on MC {
169 template REC vlt:=t_rec(tspt_i_c,omit,omit,omit);
170 var RoREC vl_good_values := { {2,omit,omit,omit},{3,omit,omit,omit},{4,omit,omit,omit},{-2,omit,omit,omit}};
171 var RoREC vl_wrong_values := { {1,omit,omit,omit},{-1,omit,omit,omit},{0,omit,omit,omit},{ 9,1.0,omit,omit},{ 9,1.0,"lambada",'01'B}, { 10000,1.0,"lambada",'01'B} };
172 f_checkMatchingValues_rec( vlt, vl_good_values, vl_wrong_values );
175 testcase tc_integer_Embedded_range() runs on MC {
176 template REC vlt:=t_rec(tspt_i_r,omit,omit,omit);
177 var RoREC vl_good_values := {{1,omit,omit,omit},{2,omit,omit,omit},{3,omit,omit,omit},{4,omit,omit,omit}};
178 var RoREC vl_wrong_values := { {-1,omit,omit,omit},{5,omit,omit,omit},{9,omit,omit,omit},{ 10,omit,omit,omit}, { 9,1.0,omit,omit},{ 9,1.0,"lambada",'01'B}, { 10000,1.0,"lambada",'01'B} };
179 f_checkMatchingValues_rec( vlt, vl_good_values, vl_wrong_values );
183 testcase tc_integer_value() runs on MC {
185 if( log2str(tspt_i_v) != "9" ) { setverdict(fail) } else { setverdict(pass) }
186 var RoI vl_good_values := {9}
187 var RoI vl_wrong_values := {-1000000, 0, -1,2,20001, 4294967296, 4294967296+1}
188 f_checkMatchingValues_int( tspt_i_v, vl_good_values, vl_wrong_values );
192 testcase tc_integer_omit() runs on MC {
194 if( log2str(tspt_i_o) != "omit" ) { setverdict(fail) } else { setverdict(pass) }
195 var RoI vl_good_values := {}
196 var RoI vl_wrong_values := { -100000, -1, 0,1,9, 4294967296, 4294967296+1}
197 f_checkMatchingValues_int( tspt_i_o, vl_good_values, vl_wrong_values );
201 testcase tc_integer_a() runs on MC {
203 if( log2str(tspt_i_a) != "*" ) { setverdict(fail) } else { setverdict(pass) }
204 var RoI vl_good_values := {-100000, -1, 0,1,9, 4294967296, 4294967296+1}
205 var RoI vl_wrong_values := {}
206 f_checkMatchingValues_int( tspt_i_a, vl_good_values, vl_wrong_values );
209 testcase tc_integer_q() runs on MC {
211 if( log2str(tspt_i_q) != "?" ) { setverdict(fail) } else { setverdict(pass) }
212 var RoI vl_good_values := {-100000, -1, 0,1, 4294967296, 4294967296+1}
213 var RoI vl_wrong_values := {}
214 f_checkMatchingValues_int( tspt_i_q, vl_good_values, vl_wrong_values );
216 //Goal: to test if integer template is modified from cfg file:
218 testcase tc_integer_vl() runs on MC {
220 if( log2str(tspt_i_vl3) != "(0, 1, -1)" ) { setverdict(fail) } else { setverdict(pass) }
221 var RoI vl_good_values := {-1,0,1}
222 var RoI vl_wrong_values := {-1000000,2,9,20001}
223 f_checkMatchingValues_int(tspt_i_vl3, vl_good_values,vl_wrong_values);
226 //goal: to test if template modulepar can be a right value
227 testcase tc_integer_vl_right_value() runs on MC {
228 var template integer vlt := tspt_i_vl3;
230 if( log2str(vlt) != "(0, 1, -1)" ) { setverdict(fail) } else { setverdict(pass) }
231 var RoI vl_good_values := {-1,0,1}
232 var RoI vl_wrong_values := {-1000000,2,20001}
233 f_checkMatchingValues_int(vlt, vl_good_values,vl_wrong_values);
236 //integer modulepar templates modified from cfg file:
239 testcase tc_integer_modified4v() runs on MC {
241 if( log2str(tspt_i1) != "9" ) { setverdict(fail) } else { setverdict(pass) }
242 var RoI vl_good_values := {9}
243 var RoI vl_wrong_values := {-1000000, 0, -1,2,20001, 4294967296, 4294967296+1}
244 f_checkMatchingValues_int( tspt_i1, vl_good_values, vl_wrong_values );
248 testcase tc_integer_modified4o() runs on MC {
250 if( log2str(tspt_i2) != "omit" ) { setverdict(fail) } else { setverdict(pass) }
251 var RoI vl_good_values := {}
252 var RoI vl_wrong_values := { -100000, -1, 0,1,9, 4294967296, 4294967296+1}
253 f_checkMatchingValues_int( tspt_i2, vl_good_values, vl_wrong_values );
257 testcase tc_integer_modified4a() runs on MC {
259 if( log2str(tspt_i3) != "*" ) { setverdict(fail) } else { setverdict(pass) }
260 var RoI vl_good_values := {-100000, -1, 0,1,9, 4294967296, 4294967296+1}
261 var RoI vl_wrong_values := {}
262 f_checkMatchingValues_int( tspt_i3, vl_good_values, vl_wrong_values );
265 testcase tc_integer_modified4q() runs on MC {
267 if( log2str(tspt_i4) != "?" ) { setverdict(fail) } else { setverdict(pass) }
268 var RoI vl_good_values := {-100000, -1, 0,1,9, 4294967296, 4294967296+1}
269 var RoI vl_wrong_values := {}
270 f_checkMatchingValues_int( tspt_i4, vl_good_values, vl_wrong_values );
274 testcase tc_integer_modified4vl() runs on MC {
276 if( log2str(tspt_i5) != "(0, 1, -1)" ) { setverdict(fail) } else { setverdict(pass) }
277 var RoI vl_good_values := {-1,0,1}
278 var RoI vl_wrong_values := {-1000000,2,20001}
279 f_checkMatchingValues_int(tspt_i5, vl_good_values,vl_wrong_values);
283 testcase tc_integer_modified4vifp() runs on MC {
285 if( log2str(tspt_i6) != "9 ifpresent" ) { setverdict(fail) } else { setverdict(pass) }
286 var RoI vl_good_values := {9}
287 var RoI vl_wrong_values := {-1000000, 0, -1,2,20001, 4294967296, 4294967296+1}
288 f_checkMatchingValues_int( tspt_i6, vl_good_values, vl_wrong_values );
291 testcase tc_integer_modified4oifp() runs on MC {
293 if( log2str(tspt_i7) != "omit ifpresent" ) { setverdict(fail) } else { setverdict(pass) }
294 var RoI vl_good_values := {}
295 var RoI vl_wrong_values := { -100000, -1, 0,1,9, 4294967296, 4294967296+1}
296 f_checkMatchingValues_int( tspt_i7, vl_good_values, vl_wrong_values );
300 testcase tc_integer_modified4aifp() runs on MC {
302 if( log2str(tspt_i8) != "* ifpresent" ) { setverdict(fail) } else { setverdict(pass) }
303 var RoI vl_good_values := {-100000, -1, 0,1,9, 4294967296, 4294967296+1}
304 var RoI vl_wrong_values := {}
305 f_checkMatchingValues_int( tspt_i8, vl_good_values, vl_wrong_values );
308 testcase tc_integer_modified4qifp() runs on MC {
310 if( log2str(tspt_i9) != "? ifpresent" ) { setverdict(fail) } else { setverdict(pass) }
311 var RoI vl_good_values := {-100000, -1, 0,1,9, 4294967296, 4294967296+1}
312 var RoI vl_wrong_values := {}
313 f_checkMatchingValues_int( tspt_i9, vl_good_values, vl_wrong_values );
317 testcase tc_integer_modified4vlifp() runs on MC {
319 if( log2str(tspt_i10) != "(0, 1, -1) ifpresent" ) { setverdict(fail) } else { setverdict(pass) }
320 var RoI vl_good_values := {-1,0,1}
321 var RoI vl_wrong_values := {-1000000,2,20001}
322 f_checkMatchingValues_int(tspt_i10, vl_good_values,vl_wrong_values);
326 testcase tc_integer_modified4c() runs on MC {
328 if( log2str(tspt_i11) != "complement (9)" ) { setverdict(fail) } else { setverdict(pass) }
329 var RoI vl_good_values := {-100000, -1, 0,1, 4294967296, 4294967296+1}
330 var RoI vl_wrong_values := {9}
331 f_checkMatchingValues_int( tspt_i11, vl_good_values, vl_wrong_values );
336 //=========================================================================
338 //=========================================================================
340 log("****Integer tests****")
341 execute(tc_integer_NoModulePar());
342 execute(tc_integer_NoModulePar_Embedded()); //with template record containing template argument
343 execute(tc_integer_Embedded());
344 execute(tc_integer_Embedded_value());
345 execute(tc_integer_Embedded_complement());
346 execute(tc_integer_Embedded_range());
347 execute(tc_integer_value());
348 execute(tc_integer_omit());
349 execute(tc_integer_a());
350 execute(tc_integer_q());
351 execute(tc_integer_vl());
352 execute(tc_integer_vl_right_value());
353 //integer templates modified from cfg file"
354 execute(tc_integer_modified4v());
355 execute(tc_integer_modified4o());
356 execute(tc_integer_modified4a());
357 execute(tc_integer_modified4q());
358 execute(tc_integer_modified4vl());
359 execute(tc_integer_modified4vifp());
360 execute(tc_integer_modified4oifp());
361 execute(tc_integer_modified4aifp());
362 execute(tc_integer_modified4qifp());
363 execute(tc_integer_modified4vlifp());
364 execute(tc_integer_modified4c());