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 rotter_SW { //^In TTCN-3 module `rotter_SW'://
10 type component PDTestComponent {};
13 /*--- ROTATE ON BITSTRING --------------------------------------------------*/
15 const bitstring rotconb := '0000000000'B
16 const bitstring rotconb1 := '1000110001'B
17 const bitstring rotconb2 := rotconb1 @> 2 // '0110001100'B
18 const bitstring rotconb3 := rotconb1 <@ 2 // '0011000110'B
19 const bitstring rotconb4 := rotconb1 <@ 5 // '1000110001'B
20 const bitstring rotconb5 := rotconb1 @> 5 // '1000110001'B
21 const bitstring rotconb6 := rotconb1 <@ 0 // '1000110001'B
22 const bitstring rotconb7 := rotconb1 @> 0 // '1000110001'B
23 const bitstring rotconb8 := rotconb1 <@ 11 // '0001100011'B
24 const bitstring rotconb9 := rotconb1 @> 11 // '1100011000'B
25 const bitstring rotconb10 := ''B
26 const bitstring rotconb11 := ''B @> 2
27 const bitstring rotconb12 := ''B <@ 2
28 const bitstring rotconb13 := ''B @> 0
29 const bitstring rotconb14 := ''B <@ 0
30 const bitstring rotconb15 := rotconb1 @> -2 // '0011000110'B
31 const bitstring rotconb16 := rotconb1 <@ -2 // '0110001100'B
33 testcase rotate_bitstr() runs on PDTestComponent{ //In testcase definition//
35 if (rotconb1 == rotconb1 <@ lengthof(rotconb1))
37 else {setverdict(fail);} //^In else statement// \
38 //^warning\: Control never reaches this code because of previous effective condition\(s\)//
39 if (rotconb1 == rotconb1 @> lengthof(rotconb1))
41 else {setverdict(fail);} //^In else statement// \
42 //^warning\: Control never reaches this code because of previous effective condition\(s\)//
43 if (rotconb1 == rotconb2 <@ 2)
45 else {setverdict(fail);} //^In else statement// \
46 //^warning\: Control never reaches this code because of previous effective condition\(s\)//
47 if (rotconb1 == rotconb3 @> 2)
49 else {setverdict(fail);} //^In else statement// \
50 //^warning\: Control never reaches this code because of previous effective condition\(s\)//
51 if (rotconb1 == rotconb4 @> 5)
53 else {setverdict(fail);} //^In else statement// \
54 //^warning\: Control never reaches this code because of previous effective condition\(s\)//
55 if (rotconb1 == rotconb5 <@ 5)
57 else {setverdict(fail);} //^In else statement// \
58 //^warning\: Control never reaches this code because of previous effective condition\(s\)//
59 if (rotconb1 == rotconb6)
61 else {setverdict(fail);} //^In else statement// \
62 //^warning\: Control never reaches this code because of previous effective condition\(s\)//
63 if (rotconb1 == rotconb7)
65 else {setverdict(fail);} //^In else statement// \
66 //^warning\: Control never reaches this code because of previous effective condition\(s\)//
67 if (rotconb8 == '0001100011'B)
69 else {setverdict(fail);} //^In else statement// \
70 //^warning\: Control never reaches this code because of previous effective condition\(s\)//
71 if (rotconb9 == '1100011000'B)
73 else {setverdict(fail);} //^In else statement// \
74 //^warning\: Control never reaches this code because of previous effective condition\(s\)//
75 if ((rotconb10 == rotconb11)
76 and (rotconb10 == rotconb12))
78 else {setverdict(fail);} //^In else statement// \
79 //^warning\: Control never reaches this code because of previous effective condition\(s\)//
80 if ((rotconb10 == rotconb13)
81 and (rotconb10 == rotconb14))
83 else {setverdict(fail);} //^In else statement// \
84 //^warning\: Control never reaches this code because of previous effective condition\(s\)//
85 if (rotconb15 == rotconb3)
87 else {setverdict(fail);} //^In else statement// \
88 //^warning\: Control never reaches this code because of previous effective condition\(s\)//
89 if (rotconb16 == rotconb2)
91 else {setverdict(fail);} //^In else statement// \
92 //^warning\: Control never reaches this code because of previous effective condition\(s\)//
95 /*--- ROTATE ON HEXSTRING --------------------------------------------------*/
97 const hexstring rotconh := '0000000000'H
98 const hexstring rotconh1 := '1000110001'H
99 const hexstring rotconh2 := rotconh1 @> 2 // '0110001100'H
100 const hexstring rotconh3 := rotconh1 <@ 2 // '0011000110'H
101 const hexstring rotconh4 := rotconh1 <@ 5 // '1000110001'H
102 const hexstring rotconh5 := rotconh1 @> 5 // '1000110001'H
103 const hexstring rotconh6 := rotconh1 <@ 0 // '1000110001'H
104 const hexstring rotconh7 := rotconh1 @> 0 // '1000110001'H
105 const hexstring rotconh8 := rotconh1 <@ 11 // '0001100011'H
106 const hexstring rotconh9 := rotconh1 @> 11 // '1100011000'H
107 const hexstring rotconh10 := ''H
108 const hexstring rotconh11 := ''H @> 2
109 const hexstring rotconh12 := ''H <@ 2
110 const hexstring rotconh13 := ''H @> 0
111 const hexstring rotconh14 := ''H <@ 0
112 const hexstring rotconh15 := rotconh1 @> -2 // '0011000110'H
113 const hexstring rotconh16 := rotconh1 <@ -2 // '0110001100'H
115 testcase rotate_hexstr() runs on PDTestComponent{ //In testcase definition//
116 if (rotconh1 == rotconh1 <@ lengthof(rotconh1))
118 else {setverdict(fail);} //^In else statement// \
119 //^warning\: Control never reaches this code because of previous effective condition\(s\)//
120 if (rotconh1 == rotconh1 @> lengthof(rotconh1))
122 else {setverdict(fail);} //^In else statement// \
123 //^warning\: Control never reaches this code because of previous effective condition\(s\)//
124 if (rotconh1 == rotconh2 <@ 2)
126 else {setverdict(fail);} //^In else statement// \
127 //^warning\: Control never reaches this code because of previous effective condition\(s\)//
128 if (rotconh1 == rotconh3 @> 2)
130 else {setverdict(fail);} //^In else statement// \
131 //^warning\: Control never reaches this code because of previous effective condition\(s\)//
132 if (rotconh1 == rotconh4 @> 5)
134 else {setverdict(fail);} //^In else statement// \
135 //^warning\: Control never reaches this code because of previous effective condition\(s\)//
136 if (rotconh1 == rotconh5 <@ 5)
138 else {setverdict(fail);} //^In else statement// \
139 //^warning\: Control never reaches this code because of previous effective condition\(s\)//
140 if (rotconh1 == rotconh6)
142 else {setverdict(fail);} //^In else statement// \
143 //^warning\: Control never reaches this code because of previous effective condition\(s\)//
144 if (rotconh1 == rotconh7)
146 else {setverdict(fail);} //^In else statement// \
147 //^warning\: Control never reaches this code because of previous effective condition\(s\)//
148 if (rotconh8 == '0001100011'H)
150 else {setverdict(fail);} //^In else statement// \
151 //^warning\: Control never reaches this code because of previous effective condition\(s\)//
152 if (rotconh9 == '1100011000'H)
154 else {setverdict(fail);} //^In else statement// \
155 //^warning\: Control never reaches this code because of previous effective condition\(s\)//
156 if ((rotconh10 == rotconh11)
157 and (rotconh10 == rotconh12))
159 else {setverdict(fail);} //^In else statement// \
160 //^warning\: Control never reaches this code because of previous effective condition\(s\)//
161 if ((rotconh10 == rotconh13)
162 and (rotconh10 == rotconh14))
164 else {setverdict(fail);} //^In else statement// \
165 //^warning\: Control never reaches this code because of previous effective condition\(s\)//
166 if (rotconh15 == rotconh3)
168 else {setverdict(fail);} //^In else statement// \
169 //^warning\: Control never reaches this code because of previous effective condition\(s\)//
170 if (rotconh16 == rotconh2)
172 else {setverdict(fail);} //^In else statement// \
173 //^warning\: Control never reaches this code because of previous effective condition\(s\)//
176 /*--- ROTATE ON OCTETSTRING --------------------------------------------------*/
178 const octetstring rotcono1 := 'AA00AA00AA'O
179 const octetstring rotcono2 := rotcono1 @> 1 // 'AAAA00AA00'O
180 const octetstring rotcono3 := rotcono1 <@ 1 // '00AA00AAAA'O
181 const octetstring rotcono4 := rotcono1 <@ 5 // 'AA00AA00AA'O
182 const octetstring rotcono5 := rotcono1 @> 5 // 'AA00AA00AA'O
183 const octetstring rotcono6 := rotcono1 <@ 0 // 'AA00AA00AA'O
184 const octetstring rotcono7 := rotcono1 @> 0 // 'AA00AA00AA'O
185 const octetstring rotcono8 := rotcono1 <@ 11 // '00AA00AAAA'O
186 const octetstring rotcono9 := rotcono1 @> 11 // 'AAAA00AA00'O
187 const octetstring rotcono10 := ''O
188 const octetstring rotcono11 := ''O @> 2
189 const octetstring rotcono12 := ''O <@ 2
190 const octetstring rotcono13 := ''O @> 0
191 const octetstring rotcono14 := ''O <@ 0
192 const octetstring rotcono15 := rotcono1 @> -1 // '00AA00AAAA'O
193 const octetstring rotcono16 := rotcono1 <@ -1 // 'AAAA00AA00'O
195 testcase rotate_octetstr() runs on PDTestComponent{ //In testcase definition//
197 if (rotcono1 == rotcono1 <@ lengthof(rotcono1))
199 else {setverdict(fail);} //^In else statement// \
200 //^warning\: Control never reaches this code because of previous effective condition\(s\)//
201 if (rotcono1 == rotcono1 @> lengthof(rotcono1))
203 else {setverdict(fail);} //^In else statement// \
204 //^warning\: Control never reaches this code because of previous effective condition\(s\)//
205 if (rotcono1 == rotcono2 <@ 1)
207 else {setverdict(fail);} //^In else statement// \
208 //^warning\: Control never reaches this code because of previous effective condition\(s\)//
209 if (rotcono1 == rotcono3 @> 1)
211 else {setverdict(fail);} //^In else statement// \
212 //^warning\: Control never reaches this code because of previous effective condition\(s\)//
213 if (rotcono1 == rotcono4 @> 5)
215 else {setverdict(fail);} //^In else statement// \
216 //^warning\: Control never reaches this code because of previous effective condition\(s\)//
217 if (rotcono1 == rotcono5 <@ 5)
219 else {setverdict(fail);} //^In else statement// \
220 //^warning\: Control never reaches this code because of previous effective condition\(s\)//
221 if (rotcono1 == rotcono6)
223 else {setverdict(fail);} //^In else statement// \
224 //^warning\: Control never reaches this code because of previous effective condition\(s\)//
225 if (rotcono1 == rotcono7)
227 else {setverdict(fail);} //^In else statement// \
228 //^warning\: Control never reaches this code because of previous effective condition\(s\)//
229 if (rotcono8 == '00AA00AAAA'O)
231 else {setverdict(fail);} //^In else statement// \
232 //^warning\: Control never reaches this code because of previous effective condition\(s\)//
233 if (rotcono9 == 'AAAA00AA00'O)
235 else {setverdict(fail);} //^In else statement// \
236 //^warning\: Control never reaches this code because of previous effective condition\(s\)//
237 if ((rotcono10 == rotcono11)
238 and (rotcono10 == rotcono12))
240 else {setverdict(fail);} //^In else statement// \
241 //^warning\: Control never reaches this code because of previous effective condition\(s\)//
242 if ((rotcono10 == rotcono13)
243 and (rotcono10 == rotcono14))
245 else {setverdict(fail);} //^In else statement// \
246 //^warning\: Control never reaches this code because of previous effective condition\(s\)//
247 if (rotcono15 == rotcono3)
249 else {setverdict(fail);} //^In else statement// \
250 //^warning\: Control never reaches this code because of previous effective condition\(s\)//
251 if (rotcono16 == rotcono2)
253 else {setverdict(fail);} //^In else statement// \
254 //^warning\: Control never reaches this code because of previous effective condition\(s\)//
257 /*--- ROTATE ON CHARSTRING --------------------------------------------------*/
259 const charstring rotconc := "0000000000"
260 const charstring rotconc1 := "1000110001"
261 const charstring rotconc2 := rotconc1 @> 2 // "0110001100"
262 const charstring rotconc3 := rotconc1 <@ 2 // "0011000110"
263 const charstring rotconc4 := rotconc1 <@ 5 // "1000110001"
264 const charstring rotconc5 := rotconc1 @> 5 // "1000110001"
265 const charstring rotconc6 := rotconc1 <@ 0 // "1000110001"
266 const charstring rotconc7 := rotconc1 @> 0 // "1000110001"
267 const charstring rotconc8 := rotconc1 <@ 11 // "0001100011"
268 const charstring rotconc9 := rotconc1 @> 11 // "1100011000"
269 const charstring rotconc10 := ""
270 const charstring rotconc11 := "" @> 2
271 const charstring rotconc12 := "" <@ 2
272 const charstring rotconc13 := "" @> 0
273 const charstring rotconc14 := "" <@ 0
274 const charstring rotconc15 := rotconc1 @> -2 // "0011000110"
275 const charstring rotconc16 := rotconc1 <@ -2 // "0110001100"
277 testcase rotate_char() runs on PDTestComponent{ //In testcase definition//
279 if (rotconc1 == rotconc1 <@ lengthof(rotconc1))
281 else {setverdict(fail);} //^In else statement// \
282 //^warning\: Control never reaches this code because of previous effective condition\(s\)//
283 if (rotconc1 == rotconc1 @> lengthof(rotconc1))
285 else {setverdict(fail);} //^In else statement// \
286 //^warning\: Control never reaches this code because of previous effective condition\(s\)//
287 if (rotconc1 == rotconc2 <@ 2)
289 else {setverdict(fail);} //^In else statement// \
290 //^warning\: Control never reaches this code because of previous effective condition\(s\)//
291 if (rotconc1 == rotconc3 @> 2)
293 else {setverdict(fail);} //^In else statement// \
294 //^warning\: Control never reaches this code because of previous effective condition\(s\)//
295 if (rotconc1 == rotconc4 @> 5)
297 else {setverdict(fail);} //^In else statement// \
298 //^warning\: Control never reaches this code because of previous effective condition\(s\)//
299 if (rotconc1 == rotconc5 <@ 5)
301 else {setverdict(fail);} //^In else statement// \
302 //^warning\: Control never reaches this code because of previous effective condition\(s\)//
303 if (rotconc1 == rotconc6)
305 else {setverdict(fail);} //^In else statement// \
306 //^warning\: Control never reaches this code because of previous effective condition\(s\)//
307 if (rotconc1 == rotconc7)
309 else {setverdict(fail);} //^In else statement// \
310 //^warning\: Control never reaches this code because of previous effective condition\(s\)//
311 if (rotconc8 == "0001100011")
313 else {setverdict(fail);} //^In else statement// \
314 //^warning\: Control never reaches this code because of previous effective condition\(s\)//
315 if (rotconc9 == "1100011000")
317 else {setverdict(fail);} //^In else statement// \
318 //^warning\: Control never reaches this code because of previous effective condition\(s\)//
319 if ((rotconc10 == rotconc11)
320 and (rotconc10 == rotconc12))
322 else {setverdict(fail);} //^In else statement// \
323 //^warning\: Control never reaches this code because of previous effective condition\(s\)//
324 if ((rotconc10 == rotconc13)
325 and (rotconc10 == rotconc14))
327 else {setverdict(fail);} //^In else statement// \
328 //^warning\: Control never reaches this code because of previous effective condition\(s\)//
329 if (rotconc15 == rotconc3)
331 else {setverdict(fail);} //^In else statement// \
332 //^warning\: Control never reaches this code because of previous effective condition\(s\)//
333 if (rotconc16 == rotconc2)
335 else {setverdict(fail);} //^In else statement// \
336 //^warning\: Control never reaches this code because of previous effective condition\(s\)//
340 /*--- ROTATE ON UNIVERSAL CHARSTRING --------------------------------------------------*/
342 const universal charstring rotconuc := "0000000000"
343 const universal charstring rotconuc1 := char(0,0,0,65) & "000" & char(0,0,0,65) & char(0,0,0,65) & "000" & char(0,0,0,65) //A000AA000A
344 const universal charstring rotconuc2 := rotconuc1 @> 2 // "0AA000AA00"
345 const universal charstring rotconuc3 := rotconuc1 <@ 2 // "00AA000AA0"
346 const universal charstring rotconuc4 := rotconuc1 <@ 5 // "A000AA000A"
347 const universal charstring rotconuc5 := rotconuc1 @> 5 // "A000AA000A"
348 const universal charstring rotconuc6 := rotconuc1 <@ 0 // "A000AA000A"
349 const universal charstring rotconuc7 := rotconuc1 @> 0 // "A000AA000A"
350 const universal charstring rotconuc8 := rotconuc1 <@ 11 // "000AA000AA"
351 const universal charstring rotconuc9 := rotconuc1 @> 11 // "AA000AA000"
352 const universal charstring rotconuc10 := ""
353 const universal charstring rotconuc11 := "" @> 2
354 const universal charstring rotconuc12 := "" <@ 2
355 const universal charstring rotconuc13 := "" @> 0
356 const universal charstring rotconuc14 := "" <@ 0
357 const universal charstring rotconuc15 := rotconuc1 @> -2 // "00AA000AA0"
358 const universal charstring rotconuc16 := rotconuc1 <@ -2 // "0AA000AA00"
360 testcase rotate_uchar() runs on PDTestComponent{ //In testcase definition//
362 if (rotconuc1 == rotconuc1 <@ lengthof(rotconc1))
364 else {setverdict(fail);} //^In else statement// \
365 //^warning\: Control never reaches this code because of previous effective condition\(s\)//
366 if (rotconuc1 == rotconuc1 @> lengthof(rotconc1))
368 else {setverdict(fail);} //^In else statement// \
369 //^warning\: Control never reaches this code because of previous effective condition\(s\)//
370 if (rotconuc1 == rotconuc2 <@ 2)
372 else {setverdict(fail);} //^In else statement// \
373 //^warning\: Control never reaches this code because of previous effective condition\(s\)//
374 if (rotconuc1 == rotconuc3 @> 2)
376 else {setverdict(fail);} //^In else statement// \
377 //^warning\: Control never reaches this code because of previous effective condition\(s\)//
378 if (rotconuc1 == rotconuc4 @> 5)
380 else {setverdict(fail);} //^In else statement// \
381 //^warning\: Control never reaches this code because of previous effective condition\(s\)//
382 if (rotconuc1 == rotconuc5 <@ 5)
384 else {setverdict(fail);} //^In else statement// \
385 //^warning\: Control never reaches this code because of previous effective condition\(s\)//
386 if (rotconuc1 == rotconuc6)
388 else {setverdict(fail);} //^In else statement// \
389 //^warning\: Control never reaches this code because of previous effective condition\(s\)//
390 if (rotconuc1 == rotconuc7)
392 else {setverdict(fail);} //^In else statement// \
393 //^warning\: Control never reaches this code because of previous effective condition\(s\)//
394 if (rotconuc8 == "000AA000AA")
396 else {setverdict(fail);} //^In else statement// \
397 //^warning\: Control never reaches this code because of previous effective condition\(s\)//
398 if (rotconuc9 == "AA000AA000")
400 else {setverdict(fail);} //^In else statement// \
401 //^warning\: Control never reaches this code because of previous effective condition\(s\)//
402 if ((rotconuc10 == rotconuc11)
403 and (rotconuc10 == rotconuc12))
405 else {setverdict(fail);} //^In else statement// \
406 //^warning\: Control never reaches this code because of previous effective condition\(s\)//
407 if ((rotconuc10 == rotconuc13)
408 and (rotconuc10 == rotconuc14))
410 else {setverdict(fail);} //^In else statement// \
411 //^warning\: Control never reaches this code because of previous effective condition\(s\)//
412 if (rotconuc15 == rotconuc3)
414 else {setverdict(fail);} //^In else statement// \
415 //^warning\: Control never reaches this code because of previous effective condition\(s\)//
416 if (rotconuc16 == rotconuc2)
418 else {setverdict(fail);} //^In else statement// \
419 //^warning\: Control never reaches this code because of previous effective condition\(s\)//
423 execute (rotate_bitstr());
424 execute (rotate_hexstr());
425 execute (rotate_octetstr());
426 execute (rotate_char());
427 execute (rotate_uchar());