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 ******************************************************************************/
10 type component PDTestComponent {};
12 /*--- BIT2HEX --------------------------------------------------*/
14 modulepar hexstring b2hpar := bit2hex(''B)
15 modulepar hexstring b2hpar1 := bit2hex('000000000000'B & ''B & '111111111111'B)
16 modulepar hexstring b2hpar2 := bit2hex(substr('000000000000111111111111'B,0,12) & ''B & substr('000000000000111111111111'B,12,12))
17 modulepar hexstring b2hpar3 := bit2hex(('000000000000'B <@ 13) & ''B & ('111111111111'B @> 13))
18 modulepar hexstring b2hpar4 := bit2hex((not4b '111111111111'B) & '111111111111'B)
19 modulepar hexstring b2hpar5 := bit2hex('000000000000111111111111'B and4b '000000000000111111111111'B)
20 modulepar hexstring b2hpar6 := bit2hex('000000000000000000000000'B or4b '000000000000111111111111'B)
21 modulepar hexstring b2hpar7 := bit2hex('000000000000000000000000'B xor4b '000000000000111111111111'B)
22 modulepar hexstring b2hpar8 := bit2hex('10011'B)
23 modulepar hexstring b2hpar9 := bit2hex('11'B)
25 modulepar hexstring b2hparh := '000FFF'H
27 testcase bit_to_hex() runs on PDTestComponent{
29 if ((b2hpar == bit2hex(''B))
32 else {setverdict(fail);}
34 if ((b2hpar1 == bit2hex('000000000000'B & ''B & '111111111111'B))
35 and (b2hpar1 == b2hparh))
37 else {setverdict(fail);}
39 if ((b2hpar2 == bit2hex(substr('000000000000111111111111'B,0,12) & ''B & substr('000000000000111111111111'B,12,12)))
40 and (b2hpar2 == b2hparh))
42 else {setverdict(fail);}
44 if ((b2hpar3 == bit2hex(('000000000000'B <@ 13) & ''B & ('111111111111'B @> 13)))
45 and (b2hpar3 == b2hparh))
47 else {setverdict(fail);}
49 if ((b2hpar4 == bit2hex((not4b '111111111111'B) & '111111111111'B))
50 and (b2hpar4 == b2hparh))
52 else {setverdict(fail);}
54 if ((b2hpar5 == bit2hex('000000000000111111111111'B and4b '000000000000111111111111'B))
55 and (b2hpar5 == b2hparh))
57 else {setverdict(fail);}
59 if ((b2hpar6 == bit2hex('000000000000000000000000'B or4b '000000000000111111111111'B))
60 and (b2hpar6 == b2hparh))
62 else {setverdict(fail);}
64 if ((b2hpar7 == bit2hex('000000000000000000000000'B xor4b '000000000000111111111111'B))
65 and (b2hpar7 == b2hparh))
67 else {setverdict(fail);}
69 if ((b2hpar8 == bit2hex('10011'B))
70 and (b2hpar8 == '13'H))
72 else {setverdict(fail);}
74 if ((b2hpar9 == bit2hex('11'B))
75 and (b2hpar9 == '3'H))
77 else {setverdict(fail);}
82 /*--- BIT2INT --------------------------------------------------*/
84 modulepar integer b2ipar := bit2int(''B)
85 modulepar integer b2ipar1 := bit2int('111111'B & '111111'B)
86 modulepar integer b2ipar2 := bit2int((not4b '111111'B) & '111111'B)
87 modulepar integer b2ipar3 := bit2int(('111111'B and4b '000000'B) & '111111'B)
88 modulepar integer b2ipar4 := bit2int(('000000'B or4b '000000'B) & '111111'B)
89 modulepar integer b2ipar5 := bit2int(('000011'B xor4b '000011'B) & '111111'B)
90 modulepar integer b2i1_16 := 12345678910111213141516;
92 testcase bit_to_int() runs on PDTestComponent{
93 var integer i1 := 12345678910111213141516;
94 var bitstring bs1 := '00000000000000000010100111010100001010110110010101101000100100110010100010111011111000001100'B;
97 if ((b2ipar == bit2int(''B))
100 else {setverdict(fail);}
102 if ((b2ipar1 == bit2int('111111'B & '111111'B))
103 and (b2ipar1 == 4095))
105 else {setverdict(fail);}
107 b := bit2int((not4b '111111'B) & '111111'B)
111 else {setverdict(fail);}
113 b := bit2int(('111111'B and4b '000000'B) & '111111'B)
117 else {setverdict(fail);}
119 b := bit2int(('000000'B or4b '000000'B) & '111111'B)
123 else {setverdict(fail);}
125 b := bit2int(('000011'B xor4b '000011'B) & '111111'B)
129 else {setverdict(fail);}
131 if (bit2int(bs1) == 12345678910111213141516)
133 else {setverdict(fail);}
134 if (bit2int('00000000000000000010100111010100001010110110010101101000100100110010100010111011111000001100'B) == b2i1_16)
136 else {setverdict(fail);}
137 if (bit2int(bs1) == 12345678910111213141516)
139 else {setverdict(fail);}
140 if (bit2int(int2bit(bit2int('010100111010100001010110110010101101000100100110010100010111011111000001100'B), 75)) == b2i1_16)
142 else {setverdict(fail);}
145 for (j:=0; j<1024; j:=j+1) {
146 if (bit2int(int2bit(j,10)) == j)
148 else {setverdict(fail);}
153 /*--- BIT2OCT --------------------------------------------------*/
155 modulepar octetstring b2opar := bit2oct(''B)
156 modulepar octetstring b2opar1 := bit2oct('000000000000'B & ''B & '111111111111'B)
157 modulepar octetstring b2opar2 := bit2oct(substr('000000000000111111111111'B,0,12) & ''B & substr('000000000000111111111111'B,12,12))
158 modulepar octetstring b2opar3 := bit2oct(('000000000000'B <@ 13) & ''B & ('111111111111'B @> 13))
159 modulepar octetstring b2opar4 := bit2oct((not4b '111111111111'B) & '111111111111'B)
160 modulepar octetstring b2opar5 := bit2oct('000000000000111111111111'B and4b '000000000000111111111111'B)
161 modulepar octetstring b2opar6 := bit2oct('000000000000000000000000'B or4b '000000000000111111111111'B)
162 modulepar octetstring b2opar7 := bit2oct('000000000000000000000000'B xor4b '000000000000111111111111'B)
163 modulepar octetstring b2opar8 := bit2oct('10011'B)
164 modulepar octetstring b2opar9 := bit2oct('11'B)
166 modulepar octetstring b2oparo := '000FFF'O
168 testcase bit_to_oct() runs on PDTestComponent{
170 if ((b2opar == bit2oct(''B))
173 else {setverdict(fail);}
175 if ((b2opar1 == bit2oct('000000000000'B & ''B & '111111111111'B))
176 and (b2opar1 == b2oparo))
178 else {setverdict(fail);}
180 if ((b2opar2 == bit2oct(substr('000000000000111111111111'B,0,12) & ''B & substr('000000000000111111111111'B,12,12)))
181 and (b2opar2 == b2oparo))
183 else {setverdict(fail);}
185 if ((b2opar3 == bit2oct(('000000000000'B <@ 13) & ''B & ('111111111111'B @> 13)))
186 and (b2opar3 == b2oparo))
188 else {setverdict(fail);}
190 if ((b2opar4 == bit2oct((not4b '111111111111'B) & '111111111111'B))
191 and (b2opar4 == b2oparo))
193 else {setverdict(fail);}
195 if ((b2opar5 == bit2oct('000000000000111111111111'B and4b '000000000000111111111111'B))
196 and (b2opar5 == b2oparo))
198 else {setverdict(fail);}
200 if ((b2opar6 == bit2oct('000000000000000000000000'B or4b '000000000000111111111111'B))
201 and (b2opar6 == b2oparo))
203 else {setverdict(fail);}
205 if ((b2opar7 == bit2oct('000000000000000000000000'B xor4b '000000000000111111111111'B))
206 and (b2opar7 == b2oparo))
208 else {setverdict(fail);}
210 if ((b2opar8 == bit2oct('10011'B))
211 and (b2opar8 == '13'O))
213 else {setverdict(fail);}
215 if ((b2opar9 == bit2oct('11'B))
216 and (b2opar9 == '03'O))
218 else {setverdict(fail);}
221 /*--- BIT2STR --------------------------------------------------*/
223 modulepar charstring b2spar := bit2str(''B)
224 modulepar charstring b2spar1 := bit2str('000000'B & ''B & '111111'B)
225 modulepar charstring b2spar2 := bit2str(substr('000000111111'B,0,6) & ''B & substr('000000111111'B,6,6))
226 modulepar charstring b2spar3 := bit2str(('000000'B <@ 3) & ''B & ('111111'B @> 3))
227 modulepar charstring b2spar4 := bit2str((not4b '111111'B) & '111111'B)
228 modulepar charstring b2spar5 := bit2str('000000111111'B and4b '000000111111'B)
229 modulepar charstring b2spar6 := bit2str('000000000000'B or4b '000000111111'B)
230 modulepar charstring b2spar7 := bit2str('000000000000'B xor4b '000000111111'B)
232 modulepar charstring b2spars := "000000111111"
234 testcase bit_to_str() runs on PDTestComponent{
236 if ((b2spar == bit2str(''B))
239 else {setverdict(fail);}
241 if ((b2spar1 == bit2str('000000'B & ''B & '111111'B))
242 and (b2spar1 == b2spars))
244 else {setverdict(fail);}
246 if ((b2spar2 == bit2str(substr('000000111111'B,0,6) & ''B & substr('000000111111'B,6,6)))
247 and (b2spar2 == b2spars))
249 else {setverdict(fail);}
251 if ((b2spar3 == bit2str(('000000'B <@ 3) & ''B & ('111111'B @> 3)))
252 and (b2spar3 == b2spars))
254 else {setverdict(fail);}
256 if ((b2spar4 == bit2str((not4b '111111'B) & '111111'B))
257 and (b2spar4 == b2spars))
259 else {setverdict(fail);}
261 if ((b2spar5 == bit2str('000000111111'B and4b '000000111111'B))
262 and (b2spar5 == b2spars))
264 else {setverdict(fail);}
266 if ((b2spar6 == bit2str('000000000000'B or4b '000000111111'B))
267 and (b2spar6 == b2spars))
269 else {setverdict(fail);}
271 if ((b2spar7 == bit2str('000000000000'B xor4b '000000111111'B))
272 and (b2spar7 == b2spars))
274 else {setverdict(fail);}
278 execute (bit_to_hex());
279 execute (bit_to_int());
280 execute (bit_to_oct());
281 execute (bit_to_str());