Commit | Line | Data |
---|---|---|
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 | ******************************************************************************/ | |
8 | /* | |
9 | //AUTHOR: ethbaat | |
10 | //DATE: 2013-12-11 | |
11 | //VERSION: 1.0 | |
12 | */ | |
13 | module integer_test | |
14 | { | |
15 | ||
16 | //========================================================================= | |
17 | // Import Part | |
18 | //========================================================================= | |
19 | ||
20 | import from types all; | |
21 | import from functions all; | |
22 | ||
23 | //========================================================================= | |
24 | // Module Parameters | |
25 | //========================================================================= | |
26 | modulepar { | |
27 | //integer | |
28 | integer tsp_j := 0; | |
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 | |
38 | ||
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 | |
51 | } | |
52 | ||
53 | //========================================================================= | |
54 | // Data Types | |
55 | //========================================================================= | |
56 | ||
57 | // Insert data type defintions here if applicable! | |
58 | // You can use the data_type skeleton! | |
59 | ||
60 | //========================================================================= | |
61 | // Signatures | |
62 | //========================================================================= | |
63 | ||
64 | // Insert signature definitions here if applicable! | |
65 | // You can use the signature skeleton! | |
66 | ||
67 | //========================================================================= | |
68 | //Port Types | |
69 | //========================================================================= | |
70 | ||
71 | // Insert port type defintions here if applicable! | |
72 | // You can use the port_type skeleton! | |
73 | ||
74 | //========================================================================= | |
75 | //Component Types | |
76 | //========================================================================= | |
77 | ||
78 | // Insert component type defintions here if applicable! | |
79 | // You can use the component_type skeleton! | |
80 | ||
81 | //========================================================================= | |
82 | // Constants | |
83 | //========================================================================= | |
84 | ||
85 | // Insert constants here if applicable! | |
86 | // You can use the constant skeleton! | |
87 | ||
88 | //========================================================================= | |
89 | // Templates | |
90 | //========================================================================= | |
91 | ||
92 | template REC t_rec(template integer pl_i, template float pl_f, template charstring pl_cs, template bitstring pl_bs) := { | |
93 | i:= pl_i, | |
94 | f:= pl_f, | |
95 | cs:=pl_cs, | |
96 | bs:=pl_bs | |
97 | } | |
98 | ||
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 | //========================================================================= | |
106 | // Functions | |
107 | //========================================================================= | |
108 | ||
109 | // Insert functions here if applicable! | |
110 | // You can use the function skeleton! | |
111 | ||
112 | //========================================================================= | |
113 | // Testcases | |
114 | //========================================================================= | |
115 | ||
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)}; | |
122 | //log(t_i_vl); | |
123 | if( log2str(t_i_vl) != "(0, 1, -1)") { setverdict(fail) }; | |
124 | if( log2str(t_i_c) != "complement (0, 1, -1)") { setverdict(fail) }; | |
125 | } | |
126 | ||
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) }; | |
140 | } | |
141 | ||
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) }; | |
159 | } | |
160 | ||
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 ); | |
166 | } | |
167 | ||
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 ); | |
173 | } | |
174 | ||
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 ); | |
180 | } | |
181 | ||
182 | //value | |
183 | testcase tc_integer_value() runs on MC { | |
184 | log( tspt_i_v ); | |
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 ); | |
189 | } | |
190 | ||
191 | //omit | |
192 | testcase tc_integer_omit() runs on MC { | |
193 | log( tspt_i_o ); | |
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 ); | |
198 | } | |
199 | ||
200 | //asterix | |
201 | testcase tc_integer_a() runs on MC { | |
202 | log( tspt_i_a ); | |
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 ); | |
207 | } | |
208 | ||
209 | testcase tc_integer_q() runs on MC { | |
210 | log( tspt_i_q ); | |
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 ); | |
215 | } | |
216 | //Goal: to test if integer template is modified from cfg file: | |
217 | //value list | |
218 | testcase tc_integer_vl() runs on MC { | |
219 | log( tspt_i_vl3 ); | |
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); | |
224 | } | |
225 | ||
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; | |
229 | log( 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); | |
234 | } | |
235 | ||
236 | //integer modulepar templates modified from cfg file: | |
237 | ||
238 | // for value | |
239 | testcase tc_integer_modified4v() runs on MC { | |
240 | log( tspt_i1 ); | |
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 ); | |
245 | } | |
246 | ||
247 | //for omit | |
248 | testcase tc_integer_modified4o() runs on MC { | |
249 | log( tspt_i2 ); | |
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 ); | |
254 | } | |
255 | ||
256 | //asterix | |
257 | testcase tc_integer_modified4a() runs on MC { | |
258 | log( tspt_i3 ); | |
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 ); | |
263 | } | |
264 | ||
265 | testcase tc_integer_modified4q() runs on MC { | |
266 | log( tspt_i4 ); | |
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 ); | |
271 | } | |
272 | ||
273 | //value list | |
274 | testcase tc_integer_modified4vl() runs on MC { | |
275 | log( tspt_i5 ); | |
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); | |
280 | } | |
281 | ||
282 | // for value | |
283 | testcase tc_integer_modified4vifp() runs on MC { | |
284 | log( tspt_i6 ); | |
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 ); | |
289 | } | |
290 | //for omit | |
291 | testcase tc_integer_modified4oifp() runs on MC { | |
292 | log( tspt_i7 ); | |
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 ); | |
297 | } | |
298 | ||
299 | //asterix | |
300 | testcase tc_integer_modified4aifp() runs on MC { | |
301 | log( tspt_i8 ); | |
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 ); | |
306 | } | |
307 | ||
308 | testcase tc_integer_modified4qifp() runs on MC { | |
309 | log( tspt_i9 ); | |
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 ); | |
314 | } | |
315 | ||
316 | //value list | |
317 | testcase tc_integer_modified4vlifp() runs on MC { | |
318 | log( tspt_i10 ); | |
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); | |
323 | } | |
324 | ||
325 | //complement | |
326 | testcase tc_integer_modified4c() runs on MC { | |
327 | log( tspt_i11); | |
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 ); | |
332 | } | |
333 | ||
334 | ||
335 | ||
336 | //========================================================================= | |
337 | // Control | |
338 | //========================================================================= | |
339 | control { | |
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()); | |
365 | } | |
366 | ||
367 | } // end of module |