1 /******************************************************************************
2 * Copyright (c) 2000-2016 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
11 ******************************************************************************/
20 //=========================================================================
22 //=========================================================================
24 import from types all;
25 import from functions all;
27 //=========================================================================
29 //=========================================================================
33 template integer tspt_i_v := 9;
34 template integer tspt_i_o := omit;
35 template integer tspt_i_a := *;
36 template integer tspt_i_q := ?;
37 template integer tspt_i_vl1 := (1);
38 template integer tspt_i_vl2 := (0,1);
39 template integer tspt_i_vl3 := (0,1,-1);
40 template integer tspt_i_c := complement(0,1,-1);
41 template integer tspt_i_r := (1..4); //range
43 //templates overwritten:
44 template integer tspt_i1 := *; //overwritten by cfg for value 9
45 template integer tspt_i2 := 4; //overwritten by cfg for omit
46 template integer tspt_i3 := 5; //overwritten by cfg for *
47 template integer tspt_i4 := *; //overwritten by cfg for ?
48 template integer tspt_i5 := ?; //overwritten by cfg for value list (0,1,-1)
49 template integer tspt_i6 := *; //overwritten by cfg for 9 ifpresent
50 template integer tspt_i7 := *; //overwritten by cfg for omit
51 template integer tspt_i8 := *; //overwritten by cfg for *
52 template integer tspt_i9 := *; //overwritten by cfg for ?
53 template integer tspt_i10 := *; //overwritten by cfg for value list (0,1,-1)
54 template integer tspt_i11 := *; //overwritten by cfg for complement
57 //=========================================================================
59 //=========================================================================
61 // Insert data type defintions here if applicable!
62 // You can use the data_type skeleton!
64 //=========================================================================
66 //=========================================================================
68 // Insert signature definitions here if applicable!
69 // You can use the signature skeleton!
71 //=========================================================================
73 //=========================================================================
75 // Insert port type defintions here if applicable!
76 // You can use the port_type skeleton!
78 //=========================================================================
80 //=========================================================================
82 // Insert component type defintions here if applicable!
83 // You can use the component_type skeleton!
85 //=========================================================================
87 //=========================================================================
89 // Insert constants here if applicable!
90 // You can use the constant skeleton!
92 //=========================================================================
94 //=========================================================================
96 template REC t_rec(template integer pl_i, template float pl_f, template charstring pl_cs, template bitstring pl_bs) := {
103 template integer t_i_v := 9;
104 template integer t_i_o := omit;
105 template integer t_i_a := *;
106 template integer t_i_q := ?;
107 template integer t_i_vl := (0,1,-1)
108 template integer t_i_c := complement(0,1,-1);
109 //=========================================================================
111 //=========================================================================
113 // Insert functions here if applicable!
114 // You can use the function skeleton!
116 //=========================================================================
118 //=========================================================================
120 //Goal: simple integer template is accepted as modulepar and it can be used
121 testcase tc_integer_NoModulePar() runs on MC {
122 if( log2str(t_i_v) != "9") { setverdict(fail)} else { setverdict(pass) }
123 if( log2str(t_i_o) != "omit") { setverdict(fail)};
124 if( log2str(t_i_a) != "*") { setverdict(fail)};
125 if( log2str(t_i_q) != "?") { setverdict(fail)};
127 if( log2str(t_i_vl) != "(0, 1, -1)") { setverdict(fail) };
128 if( log2str(t_i_c) != "complement (0, 1, -1)") { setverdict(fail) };
131 testcase tc_integer_NoModulePar_Embedded() runs on MC {
132 log(t_rec(t_i_v,omit,omit,omit));
133 if( log2str(t_rec(t_i_v,omit,omit,omit)) != "{ i := 9, f := omit, cs := omit, bs := omit }") { setverdict(fail)} else { setverdict(pass) }
134 log(t_rec(t_i_o,omit,omit,omit));
135 if( log2str(t_rec(t_i_o,omit,omit,omit)) != "{ i := omit, f := omit, cs := omit, bs := omit }" ) { setverdict(fail)};
136 log(t_rec(t_i_a,omit,omit,omit));
137 if( log2str(t_rec(t_i_a,omit,omit,omit)) != "{ i := *, f := omit, cs := omit, bs := omit }" ) { setverdict(fail)};
138 log(t_rec(t_i_q,omit,omit,omit));
139 if( log2str(t_rec(t_i_q,omit,omit,omit)) != "{ i := ?, f := omit, cs := omit, bs := omit }") { setverdict(fail)};
140 log( t_rec(t_i_vl,omit,omit,omit));
141 if( log2str(t_rec(t_i_vl,omit,omit,omit)) != "{ i := (0, 1, -1), f := omit, cs := omit, bs := omit }") { setverdict(fail) };
142 log( t_rec(t_i_c,omit,omit,omit));
143 if( log2str(t_rec(t_i_c,omit,omit,omit)) != "{ i := complement (0, 1, -1), f := omit, cs := omit, bs := omit }") { setverdict(fail) };
146 testcase tc_integer_Embedded() runs on MC {
147 log(t_rec(tspt_i_v,omit,omit,omit));
148 if( log2str(t_rec(tspt_i_v,omit,omit,omit)) != "{ i := 9, f := omit, cs := omit, bs := omit }") { setverdict(fail)} else { setverdict(pass) }
149 log(t_rec(tspt_i_o,omit,omit,omit));
150 if( log2str(t_rec(tspt_i_o,omit,omit,omit)) != "{ i := omit, f := omit, cs := omit, bs := omit }" ) { setverdict(fail)};
151 log(t_rec(tspt_i_a,omit,omit,omit));
152 if( log2str(t_rec(tspt_i_a,omit,omit,omit)) != "{ i := *, f := omit, cs := omit, bs := omit }" ) { setverdict(fail)};
153 log(t_rec(tspt_i_q,omit,omit,omit));
154 if( log2str(t_rec(tspt_i_q,omit,omit,omit)) != "{ i := ?, f := omit, cs := omit, bs := omit }") { setverdict(fail)};
155 log( t_rec(tspt_i_vl1,omit,omit,omit));
156 if( log2str(t_rec(tspt_i_vl1,omit,omit,omit)) != "{ i := 1, f := omit, cs := omit, bs := omit }") { setverdict(fail) };
157 log( t_rec(tspt_i_vl2,omit,omit,omit));
158 if( log2str(t_rec(tspt_i_vl2,omit,omit,omit)) != "{ i := (0, 1), f := omit, cs := omit, bs := omit }") { setverdict(fail) };
159 log( t_rec(tspt_i_vl3,omit,omit,omit));
160 if( log2str(t_rec(tspt_i_vl3,omit,omit,omit)) != "{ i := (0, 1, -1), f := omit, cs := omit, bs := omit }") { setverdict(fail) };
161 log( t_rec(tspt_i_c,omit,omit,omit));
162 if( log2str(t_rec(tspt_i_c,omit,omit,omit)) != "{ i := complement (0, 1, -1), f := omit, cs := omit, bs := omit }") { setverdict(fail) };
165 testcase tc_integer_Embedded_value() runs on MC {
166 template REC vlt:=t_rec(tspt_i_v,omit,omit,omit);
167 var RoREC vl_good_values := {{ 9,omit,omit,omit}};
168 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} };
169 f_checkMatchingValues_rec( vlt, vl_good_values, vl_wrong_values );
172 testcase tc_integer_Embedded_complement() runs on MC {
173 template REC vlt:=t_rec(tspt_i_c,omit,omit,omit);
174 var RoREC vl_good_values := { {2,omit,omit,omit},{3,omit,omit,omit},{4,omit,omit,omit},{-2,omit,omit,omit}};
175 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} };
176 f_checkMatchingValues_rec( vlt, vl_good_values, vl_wrong_values );
179 testcase tc_integer_Embedded_range() runs on MC {
180 template REC vlt:=t_rec(tspt_i_r,omit,omit,omit);
181 var RoREC vl_good_values := {{1,omit,omit,omit},{2,omit,omit,omit},{3,omit,omit,omit},{4,omit,omit,omit}};
182 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} };
183 f_checkMatchingValues_rec( vlt, vl_good_values, vl_wrong_values );
187 testcase tc_integer_value() runs on MC {
189 if( log2str(tspt_i_v) != "9" ) { setverdict(fail) } else { setverdict(pass) }
190 var RoI vl_good_values := {9}
191 var RoI vl_wrong_values := {-1000000, 0, -1,2,20001, 4294967296, 4294967296+1}
192 f_checkMatchingValues_int( tspt_i_v, vl_good_values, vl_wrong_values );
196 testcase tc_integer_omit() runs on MC {
198 if( log2str(tspt_i_o) != "omit" ) { setverdict(fail) } else { setverdict(pass) }
199 var RoI vl_good_values := {}
200 var RoI vl_wrong_values := { -100000, -1, 0,1,9, 4294967296, 4294967296+1}
201 f_checkMatchingValues_int( tspt_i_o, vl_good_values, vl_wrong_values );
205 testcase tc_integer_a() runs on MC {
207 if( log2str(tspt_i_a) != "*" ) { setverdict(fail) } else { setverdict(pass) }
208 var RoI vl_good_values := {-100000, -1, 0,1,9, 4294967296, 4294967296+1}
209 var RoI vl_wrong_values := {}
210 f_checkMatchingValues_int( tspt_i_a, vl_good_values, vl_wrong_values );
213 testcase tc_integer_q() runs on MC {
215 if( log2str(tspt_i_q) != "?" ) { setverdict(fail) } else { setverdict(pass) }
216 var RoI vl_good_values := {-100000, -1, 0,1, 4294967296, 4294967296+1}
217 var RoI vl_wrong_values := {}
218 f_checkMatchingValues_int( tspt_i_q, vl_good_values, vl_wrong_values );
220 //Goal: to test if integer template is modified from cfg file:
222 testcase tc_integer_vl() runs on MC {
224 if( log2str(tspt_i_vl3) != "(0, 1, -1)" ) { setverdict(fail) } else { setverdict(pass) }
225 var RoI vl_good_values := {-1,0,1}
226 var RoI vl_wrong_values := {-1000000,2,9,20001}
227 f_checkMatchingValues_int(tspt_i_vl3, vl_good_values,vl_wrong_values);
230 //goal: to test if template modulepar can be a right value
231 testcase tc_integer_vl_right_value() runs on MC {
232 var template integer vlt := tspt_i_vl3;
234 if( log2str(vlt) != "(0, 1, -1)" ) { setverdict(fail) } else { setverdict(pass) }
235 var RoI vl_good_values := {-1,0,1}
236 var RoI vl_wrong_values := {-1000000,2,20001}
237 f_checkMatchingValues_int(vlt, vl_good_values,vl_wrong_values);
240 //integer modulepar templates modified from cfg file:
243 testcase tc_integer_modified4v() runs on MC {
245 if( log2str(tspt_i1) != "9" ) { setverdict(fail) } else { setverdict(pass) }
246 var RoI vl_good_values := {9}
247 var RoI vl_wrong_values := {-1000000, 0, -1,2,20001, 4294967296, 4294967296+1}
248 f_checkMatchingValues_int( tspt_i1, vl_good_values, vl_wrong_values );
252 testcase tc_integer_modified4o() runs on MC {
254 if( log2str(tspt_i2) != "omit" ) { setverdict(fail) } else { setverdict(pass) }
255 var RoI vl_good_values := {}
256 var RoI vl_wrong_values := { -100000, -1, 0,1,9, 4294967296, 4294967296+1}
257 f_checkMatchingValues_int( tspt_i2, vl_good_values, vl_wrong_values );
261 testcase tc_integer_modified4a() runs on MC {
263 if( log2str(tspt_i3) != "*" ) { setverdict(fail) } else { setverdict(pass) }
264 var RoI vl_good_values := {-100000, -1, 0,1,9, 4294967296, 4294967296+1}
265 var RoI vl_wrong_values := {}
266 f_checkMatchingValues_int( tspt_i3, vl_good_values, vl_wrong_values );
269 testcase tc_integer_modified4q() runs on MC {
271 if( log2str(tspt_i4) != "?" ) { setverdict(fail) } else { setverdict(pass) }
272 var RoI vl_good_values := {-100000, -1, 0,1,9, 4294967296, 4294967296+1}
273 var RoI vl_wrong_values := {}
274 f_checkMatchingValues_int( tspt_i4, vl_good_values, vl_wrong_values );
278 testcase tc_integer_modified4vl() runs on MC {
280 if( log2str(tspt_i5) != "(0, 1, -1)" ) { setverdict(fail) } else { setverdict(pass) }
281 var RoI vl_good_values := {-1,0,1}
282 var RoI vl_wrong_values := {-1000000,2,20001}
283 f_checkMatchingValues_int(tspt_i5, vl_good_values,vl_wrong_values);
287 testcase tc_integer_modified4vifp() runs on MC {
289 if( log2str(tspt_i6) != "9 ifpresent" ) { setverdict(fail) } else { setverdict(pass) }
290 var RoI vl_good_values := {9}
291 var RoI vl_wrong_values := {-1000000, 0, -1,2,20001, 4294967296, 4294967296+1}
292 f_checkMatchingValues_int( tspt_i6, vl_good_values, vl_wrong_values );
295 testcase tc_integer_modified4oifp() runs on MC {
297 if( log2str(tspt_i7) != "omit ifpresent" ) { setverdict(fail) } else { setverdict(pass) }
298 var RoI vl_good_values := {}
299 var RoI vl_wrong_values := { -100000, -1, 0,1,9, 4294967296, 4294967296+1}
300 f_checkMatchingValues_int( tspt_i7, vl_good_values, vl_wrong_values );
304 testcase tc_integer_modified4aifp() runs on MC {
306 if( log2str(tspt_i8) != "* ifpresent" ) { setverdict(fail) } else { setverdict(pass) }
307 var RoI vl_good_values := {-100000, -1, 0,1,9, 4294967296, 4294967296+1}
308 var RoI vl_wrong_values := {}
309 f_checkMatchingValues_int( tspt_i8, vl_good_values, vl_wrong_values );
312 testcase tc_integer_modified4qifp() runs on MC {
314 if( log2str(tspt_i9) != "? ifpresent" ) { setverdict(fail) } else { setverdict(pass) }
315 var RoI vl_good_values := {-100000, -1, 0,1,9, 4294967296, 4294967296+1}
316 var RoI vl_wrong_values := {}
317 f_checkMatchingValues_int( tspt_i9, vl_good_values, vl_wrong_values );
321 testcase tc_integer_modified4vlifp() runs on MC {
323 if( log2str(tspt_i10) != "(0, 1, -1) ifpresent" ) { setverdict(fail) } else { setverdict(pass) }
324 var RoI vl_good_values := {-1,0,1}
325 var RoI vl_wrong_values := {-1000000,2,20001}
326 f_checkMatchingValues_int(tspt_i10, vl_good_values,vl_wrong_values);
330 testcase tc_integer_modified4c() runs on MC {
332 if( log2str(tspt_i11) != "complement (9)" ) { setverdict(fail) } else { setverdict(pass) }
333 var RoI vl_good_values := {-100000, -1, 0,1, 4294967296, 4294967296+1}
334 var RoI vl_wrong_values := {9}
335 f_checkMatchingValues_int( tspt_i11, vl_good_values, vl_wrong_values );
340 //=========================================================================
342 //=========================================================================
344 log("****Integer tests****")
345 execute(tc_integer_NoModulePar());
346 execute(tc_integer_NoModulePar_Embedded()); //with template record containing template argument
347 execute(tc_integer_Embedded());
348 execute(tc_integer_Embedded_value());
349 execute(tc_integer_Embedded_complement());
350 execute(tc_integer_Embedded_range());
351 execute(tc_integer_value());
352 execute(tc_integer_omit());
353 execute(tc_integer_a());
354 execute(tc_integer_q());
355 execute(tc_integer_vl());
356 execute(tc_integer_vl_right_value());
357 //integer templates modified from cfg file"
358 execute(tc_integer_modified4v());
359 execute(tc_integer_modified4o());
360 execute(tc_integer_modified4a());
361 execute(tc_integer_modified4q());
362 execute(tc_integer_modified4vl());
363 execute(tc_integer_modified4vifp());
364 execute(tc_integer_modified4oifp());
365 execute(tc_integer_modified4aifp());
366 execute(tc_integer_modified4qifp());
367 execute(tc_integer_modified4vlifp());
368 execute(tc_integer_modified4c());