b14884baa06be97b990c09926a9f56e58dbf49b9
[deliverable/titan.core.git] / regression_test / predefFunction / replacer_OK.ttcn
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 replacer_OK {
9
10 type component PDTestComponent {};
11
12 /* replace on BITSTRING values. Examples from C.34 of ETSI ES 201 873-1
13 V3.3.1 (2008-02). */
14
15 testcase replace_bitstr() runs on PDTestComponent {
16 var integer a := 0
17 var integer b := 1
18 var bitstring bs_1 := replace('00000110'B, 1, 3, '111'B) // returns '01110110'B
19 var bitstring bs_2 := replace('00000110'B, b + a, b + b + b, '111'B)// returns '01110110'B
20 if (bs_1 == '01110110'B) { setverdict(pass) }
21 else { setverdict(fail) }
22 if (bs_1 == bs_2) { setverdict(pass) }
23 else { setverdict(fail) }
24 }
25
26 /* replace on HEXSTRING values. */
27
28 testcase replace_hexstr() runs on PDTestComponent {
29 var integer a := 0
30 var integer b := 1
31 var hexstring hs_1 := replace('ABCDEF'H, 0, 2, '123'H) // returns '123CDEF'H
32 var hexstring hs_2 := replace('ABCDEF'H, a, b + 1, '123'H)// returns '123CDEF'H
33 if (hs_1 == '123CDEF'H) { setverdict(pass) }
34 else { setverdict(fail) }
35 if (hs_1 == hs_2) { setverdict(pass) }
36 else { setverdict(fail) }
37 }
38
39 /* replace on OCTETSTRING values. */
40
41 testcase replace_octetstr() runs on PDTestComponent {
42 var integer a := 0
43 var integer b := 1
44 var octetstring c := 'FF96'O
45 var octetstring os_0 := '01AB23CD'O
46 var octetstring os_1 := replace('01AB23CD'O, 2, 1, 'FF96'O) // returns '01ABFF96CD'O
47 var octetstring os_2 := replace('01AB23CD'O, a + 2, b, 'FF96'O)// returns '01ABFF96CD'O
48 var octetstring os_3 := replace(os_0, 2, b, c) // returns '01ABFF96CD'O
49 if (os_1 == '01ABFF96CD'O) { setverdict(pass) }
50 else { setverdict(fail) }
51 if (os_2 == '01ABFF96CD'O) { setverdict(pass) }
52 else { setverdict(fail) }
53 if (os_1 == os_2) { setverdict(pass) }
54 else { setverdict(fail) }
55 if (os_2 == os_3) { setverdict(pass) }
56 else { setverdict(fail) }
57 }
58
59 /* replace on CHARSTRING values. */
60
61 testcase replace_charstr() runs on PDTestComponent {
62 var integer a := 0
63 var integer b := 1
64 var charstring c := "x"
65 var charstring cs_0 := "My name is JJ"
66 var charstring cs_1 := replace("My name is JJ", 11, 1, "xx") // returns "My name is xxJ"
67 var charstring cs_2 := replace("My name is JJ", 11, b - 1, "xx")// returns "My name is xxJJ"
68 var charstring cs_3 := replace("My name is JJ", 2, 2, "x") // returns "Myxame is JJ"
69 var charstring cs_4 := replace("My name is JJ", b + 1, b + 1, c)// returns "Myxame is JJ"
70 var charstring cs_5 := replace("My name is JJ", 13, 0, "xx") // returns "My name is JJxx"
71 var charstring cs_6 := replace(cs_0, 13, a, "xx") // returns "My name is JJxx"
72 /*
73 var charstring cs_7 := replace("My name is JJ", 12, 2, "xx") // produces compile error
74 var charstring cs_8 := replace("My name is JJ", 13, 2, "xx") // produces compile error)
75 */
76 if (cs_1 == "My name is xxJ") { setverdict(pass) }
77 else { setverdict(fail) }
78 if (cs_2 == "My name is xxJJ") { setverdict(pass) }
79 else { setverdict(fail) }
80 if (cs_3 == "Myxame is JJ") { setverdict(pass) }
81 else { setverdict(fail) }
82 if (cs_4 == "Myxame is JJ") { setverdict(pass) }
83 else { setverdict(fail) }
84 if (cs_3 == cs_4) { setverdict(pass) }
85 else { setverdict(fail) }
86 if (cs_5 == "My name is JJxx") { setverdict(pass) }
87 else { setverdict(fail) }
88 if (cs_6 == "My name is JJxx") { setverdict(pass) }
89 else { setverdict(fail) }
90 if (cs_5 == cs_6) { setverdict(pass) }
91 else { setverdict(fail) }
92 }
93
94 /* replace on UNIVERSAL_CHARSTRING values. */
95
96 testcase replace_ucharstr() runs on PDTestComponent {
97 var integer a := 0
98 var integer b := 1
99 var universal charstring c := char(0, 0, 0, 120) & ""
100 var universal charstring us_0 := char(0, 0, 0, 77) & "y name is JJ"
101 var universal charstring us_1 := replace(char(0, 0, 0, 77) & "y name is JJ", 11, 1, char(0, 0, 0, 120) & "x") // returns "My name is xxJ"
102 var universal charstring us_2 := replace(char(0, 0, 0, 77) & "y name is JJ", 11, b - 1, char(0, 0, 0, 120) & "x")// returns "My name is xxJJ"
103 var universal charstring us_3 := replace(char(0, 0, 0, 77) & "y name is JJ", 2, 2, char(0, 0, 0, 120) & "") // returns "Myxame is JJ"
104 var universal charstring us_4 := replace(char(0, 0, 0, 77) & "y name is JJ", b + 1, b + 1, c) // returns "Myxame is JJ"
105 var universal charstring us_5 := replace(char(0, 0, 0, 77) & "y name is JJ", 13, 0, char(0, 0, 0, 120) & "x") // returns "My name is JJxx"
106 var universal charstring us_6 := replace(us_0, 13, a, char(0, 0, 0, 120) & "x") // returns "My name is JJxx"
107 if (us_1 == char(0, 0, 0, 77) & "y name is xxJ") { setverdict(pass) }
108 else { setverdict(fail) }
109 if (us_2 == char(0, 0, 0, 77) & "y name is xxJJ") { setverdict(pass) }
110 else { setverdict(fail) }
111 if (us_3 == char(0, 0, 0, 77) & "yxame is JJ") { setverdict(pass) }
112 else { setverdict(fail) }
113 if (us_4 == char(0, 0, 0, 77) & "yxame is JJ") { setverdict(pass) }
114 else { setverdict(fail) }
115 if (us_3 == us_4) { setverdict(pass) }
116 else { setverdict(fail) }
117 if (us_5 == char(0, 0, 0, 77) & "y name is JJxx") { setverdict(pass) }
118 else { setverdict(fail) }
119 if (us_6 == char(0, 0, 0, 77) & "y name is JJxx") { setverdict(pass) }
120 else { setverdict(fail) }
121 if (us_5 == us_6) { setverdict(pass) }
122 else { setverdict(fail) }
123 }
124
125 control {
126 execute (replace_bitstr());
127 execute (replace_hexstr());
128 execute (replace_octetstr());
129 execute (replace_charstr());
130 execute (replace_ucharstr());
131 }
132
133 }
This page took 0.034228 seconds and 5 git commands to generate.