Sync with 5.4.0
[deliverable/titan.core.git] / regression_test / ucharstrOper / UTF16Testcases.ttcn
CommitLineData
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// This module tests the following functions for UTF-16:
9// oct2unichar
10// unichar2oct
11// get_stringencoding
12module UTF16Testcases {
13
14import from Common all;
15
16
17//============== Testcases ===========================
18
19// === get_stringencoding test ======
20testcase tc_get_stringencoding_UTF16() runs on MTC {
21 f_check_string_encoding('FEFF01'O, "UTF-16BE" );
22 //f_check_string_encoding('FFFE0000'O, "UTF-16LE" );
23 f_check_string_encoding('FEFF0000'O, "UTF-16BE" );
24}
25
26//testcase tc_get_stringencoding_UTF16_buggy() runs on MTC {
27// f_check_string_encoding('FFFE0000'O, "UTF-16LE" );
28//}
29
30// === tc_oct2unichar =====
31
32testcase tc_oct2unichar_UTF16_negative_01() runs on MTC {
33
34 f_oct2unichar_negativetest(
35 inputOs := 'FEFF01'O,
36 encType := "UTF-16BE",
37 expectedErrorMsg := "Wrong UTF-16 string. The number of bytes \(3\) in octetstring shall be non negative and divisible by 2"
38 );
39}
40
41
42//too large 2
43testcase tc_oct2unichar_UTF16_negative_D800() runs on MTC {
44 f_oct2unichar_negativetest(
45 inputOs := 'FEFFD800'O,
46 encType := "UTF-16BE",
47 expectedErrorMsg := "Wrong UTF-16 string. The decoding algorythm does not expect 0x00 or EOL"
48 );
49}
50
51testcase tc_oct2unichar_UTF16_negative_D80000() runs on MTC {
52 f_oct2unichar_negativetest(
53 inputOs := 'FEFFD80000'O,
54 encType := "UTF-16BE",
55 expectedErrorMsg := "Wrong UTF-16 string. The number of bytes \(5\) in octetstring shall be non negative and divisible by 2"
56 );
57}
58
59testcase tc_oct2unichar_UTF16_negative_D8000000() runs on MTC {
60 f_oct2unichar_negativetest(
61 inputOs := 'FEFFD8000000'O,
62 encType := "UTF-16BE",
63 expectedErrorMsg := "Wrong UTF-16 string. The decoding algorythm does not expect 0x00 or EOL"
64 );
65}
66
67testcase tc_oct2unichar_UTF16_negative_toobig() runs on MTC {
68 f_oct2unichar_negativetest(
69 inputOs := 'FEFFD800FFFF'O,
70 encType := "UTF-16BE",
71 expectedErrorMsg := "Wrong UTF-16 string. The word \(0xFFFF\) shall be between 0xDC00 and 0xDFFF"
72 );
73}
74//0000..D7FF UTF-16BE converting octetstring to unicode and converting back
75testcase tc_oct2unichar_UTF16_BMP() runs on MTC {
76
77 var integer L := 0;
78 var integer N := oct2int('D7FF'O)
79 for(var integer i:=L;i<=N;i:=i+55) {
80
81 f_oct2unichar_positivetest(
82 inputOs := c_BOM_UTF16BE & int2oct(i,2),
83 encType := "UTF-16",
84 expectedUCS := int2unichar(i),
85 expectedEncType := "UTF-16BE"
86 )
87
88 }
89}
90//0000..D7FF UTF-16BE converting octetstring to unicode and converting back
91testcase tc_oct2unichar_UTF16BE_BMP() runs on MTC {
92
93 var integer L := 0;
94 var integer N := oct2int('D7FF'O)
95 for(var integer i:=L;i<=N;i:=i+129) {
96
97 f_oct2unichar_positivetest(
98 inputOs := c_BOM_UTF16BE & int2oct(i,2),
99 encType := "UTF-16BE",
100 expectedUCS := int2unichar(i),
101 expectedEncType := "UTF-16BE"
102 )
103
104 }
105}
106
107
108//0000..D7FF UTF-16BE converting octetstring to unicode and converting back
109testcase tc_oct2unichar_UTF16LE_BMP() runs on MTC {
110 var integer L := 0;
111 var integer N := oct2int('D7FF'O)
112 var octetstring o := ''O;
113
114 for(var integer i:=L;i<=N;i:=i+129) {
115 o:=int2oct(i,2);
116 if(f_changeOrder(o)==false) {setverdict(fail); break}
117
118 f_oct2unichar_positivetest(
119 inputOs := c_BOM_UTF16LE & o,
120 encType := "UTF-16LE",
121 expectedUCS := int2unichar(i),
122 expectedEncType := "UTF-16LE"
123 )
124
125 }
126
127}
128
129testcase tc_oct2unichar_UTF16_Z() runs on MTC {
130 var octetstring o := '007A'O;
131 var universal charstring u:= char(0,0,0,122);
132 f_oct2unichar_positivetest(
133 inputOs := o,
134 encType := "UTF-16",
135 expectedUCS := u,
136 expectedEncType := "UTF-16BE",
137 expectedOs :=c_BOM_UTF16BE & o
138 );
139
140}
141
142testcase tc_oct2unichar_UTF16BE_Z() runs on MTC {
143 var octetstring o := c_BOM_UTF16BE & '007A'O;
144 var universal charstring u:= char(0,0,0,122);
145 f_oct2unichar_positivetest(
146 inputOs := o,
147 encType := "UTF-16",
148 expectedUCS := u,
149 expectedEncType := "UTF-16BE",
150 expectedOs :=o
151 );
152
153}
154
155testcase tc_oct2unichar_UTF16LE_Z() runs on MTC {
156 var octetstring o := c_BOM_UTF16LE & '7A00'O;
157 var universal charstring u:= char(0,0,0,122);
158 f_oct2unichar_positivetest(
159 inputOs := o,
160 encType := "UTF-16LE",
161 expectedUCS := u,
162 expectedEncType := "UTF-16LE",
163 expectedOs :=o
164 );
165
166}
167
168testcase tc_oct2unichar_UTF16_water() runs on MTC {
169 var octetstring o := '6C34'O;
170 var universal charstring u:= char(0,0,108,52);
171 f_oct2unichar_positivetest(
172 inputOs := o,
173 encType := "UTF-16",
174 expectedUCS := u,
175 expectedEncType := "UTF-16BE",
176 expectedOs :=c_BOM_UTF16BE & o
177 );
178
179}
180
181testcase tc_oct2unichar_UTF16_linearb() runs on MTC {
182 var octetstring o := 'D800DC00'O;
183 var universal charstring u:= char(0,1,0,0);
184 f_oct2unichar_positivetest(
185 inputOs := o,
186 encType := "UTF-16",
187 expectedUCS := u,
188 expectedEncType := "UTF-16BE",
189 expectedOs :=c_BOM_UTF16BE & o
190 );
191}
192
193// unichar2oct test
194
195testcase tc_unichar2oct_positive1() runs on MTC {
196 var integer i:= 1;
197 var universal charstring u :=int2unichar(i);
198 f_unichar2oct_positivetest(u,"UTF-16", c_BOM_UTF16BE & int2oct(i,2))
199 f_unichar2oct_positivetest(u,"UTF-16BE", c_BOM_UTF16BE & int2oct(i,2));
200 var octetstring o:= int2oct(i,2);
201 f_changeOrder(o);
202 f_unichar2oct_positivetest(u,"UTF-16LE", c_BOM_UTF16LE & o);
203}
204
205testcase tc_unichar2oct_positive2() runs on MTC {
206 var integer i:= 1;
207 var universal charstring u :=int2unichar(i);
208 f_unichar2oct_positivetest(u,"UTF-16", c_BOM_UTF16BE & int2oct(i,2))
209 f_unichar2oct_positivetest(u,"UTF-16BE", c_BOM_UTF16BE & int2oct(i,2));
210 var octetstring o:= int2oct(i,2);
211 f_changeOrder(o);
212 f_unichar2oct_positivetest(u,"UTF-16LE", c_BOM_UTF16LE & o);
213}
214
215// check if an expression can be passed
216testcase tc_unichar2oct_0to80() runs on MTC {
217 var universal charstring u;
218 var integer L := oct2int('0000'O);
219 var integer N := oct2int('0080'O);
220 for( var integer i:=L;i<=N; i:=i+8) {
221 u:=int2unichar(i);
222 log("i:",i,"\tu:",u);
223 log("UTF-8 : ",unichar2oct(int2unichar(i),"UTF-8"));
224 log("UTF-16 : ",unichar2oct(int2unichar(i),"UTF-16"));
225 log("UTF-16BE: ",unichar2oct(int2unichar(i),"UTF-16BE"));
226 log("UTF-16LE: ",unichar2oct(int2unichar(i),"UTF-16LE"));
227 log("UTF-32 : ",unichar2oct(int2unichar(i),"UTF-32"));
228 log("UTF-32BE: ",unichar2oct(int2unichar(i),"UTF-32BE"));
229 log("UTF-32LE: ",unichar2oct(int2unichar(i),"UTF-32LE"));
230 }
231 setverdict(pass);
232}
233
234//check if the conversion failed or not
235testcase tc_unichar2octAndReverse_0toD7FF() runs on MTC {
236 var universal charstring u;
237 var integer L := oct2int('0000'O);
238 var integer N := oct2int('D7FF'O);
239 for( var integer i:=L;i<=N; i:=i+1025) {
240 u:=int2unichar(i);
241 log("===== i:",i,"\tu:",u,"=====");
242 f_unichar2octAndReverse(u, "UTF-8");
243 f_unichar2octAndReverse(u, "UTF-16");
244 f_unichar2octAndReverse(u, "UTF-16BE");
245 f_unichar2octAndReverse(u, "UTF-16LE"); //Dynamic test case error: The detected coding type(UTF-32LE) does not match the expected one(UTF-16LE)
246 f_unichar2octAndReverse(u, "UTF-32");
247 f_unichar2octAndReverse(u, "UTF-32BE");
248 f_unichar2octAndReverse(u, "UTF-32LE");
249 }
250 setverdict(pass);
251}
252
253
254testcase tc_unichar2octAndReverse_E000toFFFF () runs on MTC {
255 var universal charstring u;
256 var integer L := oct2int('E000'O);
257 var integer N := oct2int('FFFF'O);
258 for( var integer i:=L;i<=N; i:=i+1025) {
259 u:=int2unichar(i);
260 log("===== i:",i,"\tu:",u,"=====");
261 f_unichar2octAndReverse(u, "UTF-8");
262 f_unichar2octAndReverse(u, "UTF-16");
263 f_unichar2octAndReverse(u, "UTF-16BE");
264 //f_unichar2octAndReverse(u, "UTF-16LE"); Dynamic test case error: The detected coding type(UTF-32LE) does not match the expected one(UTF-16LE)
265 f_unichar2octAndReverse(u, "UTF-32");
266 f_unichar2octAndReverse(u, "UTF-32BE");
267 f_unichar2octAndReverse(u, "UTF-32LE");
268 }
269 setverdict(pass);
270}
271
272testcase tc_unichar2octAndReverse_10000to10FFFF() runs on MTC {
273 var universal charstring u;
274 var integer L := oct2int('010000'O);
275 var integer N := oct2int('10FFFF'O);
276 for( var integer i:=L;i<=N; i:=i+256*256+1) {
277 u:=int2unichar(i);
278 log("===== i:",i,"\tu:",u,"=====");
279 f_unichar2octAndReverse(u, "UTF-8");
280 f_unichar2octAndReverse(u, "UTF-16");
281 f_unichar2octAndReverse(u, "UTF-16BE");
282 f_unichar2octAndReverse(u, "UTF-16LE");
283 f_unichar2octAndReverse(u, "UTF-32");
284 f_unichar2octAndReverse(u, "UTF-32BE");
285 f_unichar2octAndReverse(u, "UTF-32LE");
286 }
287 setverdict(pass);
288}
289//external function f_enc(in integer i, out octetstring o)
290// with { extension "prototype(fast)"; extension "encode(XER)"}
291
292
293// expected result is checked
294testcase tc_unichar2oct_utf16_0toD7FF() runs on MTC {
295 var universal charstring u;
296 var integer L := oct2int('0000'O);
297 var integer N := oct2int('D7FF'O);
298 for( var integer i:=L;i<=N; i:=i+255) {
299 u:=int2unichar(i);
300 log("i:",i,"\tu:",u);
301
302 f_unichar2oct_positivetest(u,"UTF-16", c_BOM_UTF16BE & int2oct(i,2))
303 f_unichar2oct_positivetest(u,"UTF-16BE", c_BOM_UTF16BE & int2oct(i,2));
304 var octetstring o:= int2oct(i,2);
305 f_changeOrder(o);
306 f_unichar2oct_positivetest(u,"UTF-16LE", c_BOM_UTF16LE & o);
307 }
308 setverdict(pass);
309}
310
311
312testcase tc_unichar2oct_utf16_asciistring() runs on MTC {
313 //var universal charstring us1 :="Árvíztűrő tükörfúrógép"
314 var universal charstring us1 := c_arvizturo;
315 //var charstring cs1 := "Árvíztűrő tükörfúrógép";
316 var universal charstring us2 :="Steve Jobs likes the Apple"
317
318 f_unichar2oct_positivetest(
319 u := us1,
320 encodingType:="UTF-16",
321 expectedResult := f_ucharstring2utf16BE(us1)
322 )
323
324 f_unichar2oct_positivetest(
325 u := us2,
326 encodingType:="UTF-16",
327 expectedResult := f_ucharstring2utf16BE(us2)
328 )
329
330}
331
332testcase tc_unichar2oct_utf16BE_asciistring() runs on MTC {
333 //var universal charstring us1 :="Árvíztűrő tükörfúrógép"
334 var universal charstring us1 := c_arvizturo;
335 //var charstring cs1 := "Árvíztűrő tükörfúrógép";
336 var universal charstring us2 :="Steve Jobs likes the Apple"
337
338
339 f_unichar2oct_positivetest(
340 u := us1,
341 encodingType:="UTF-16BE",
342 expectedResult := f_ucharstring2utf16BE(us1)
343 )
344
345 f_unichar2oct_positivetest(
346 u := us2,
347 encodingType:="UTF-16BE",
348 expectedResult := f_ucharstring2utf16BE(us2)
349 )
350
351}
352
353testcase tc_unichar2oct_utf16LE_asciistring() runs on MTC {
354
355 //var universal charstring us1 :="Árvíztűrő tükörfúrógép"
356 var universal charstring us1 := c_arvizturo;
357 //var charstring cs1 := "Árvíztűrő tükörfúrógép";
358 var universal charstring us2 :="Steve Jobs likes the Apple"
359 //2
360 var octetstring os_expected := f_ucharstring2utf16BE(us1);
361
362 if( not f_changeOrder(os_expected) ) { setverdict(fail, "Odd length is not expected") }
363 f_unichar2oct_positivetest(
364 u := us1,
365 encodingType:="UTF-16LE",
366 expectedResult := os_expected
367 )
368
369 os_expected := f_ucharstring2utf16BE(us2);
370 if( not f_changeOrder(os_expected) ) { setverdict(fail, "Odd length is not expected") }
371 f_unichar2oct_positivetest(
372 u := us2,
373 encodingType:="UTF-16LE",
374 expectedResult := os_expected
375 )
376
377}
378
379testcase tc_unichar2oct_utf16_asciistring1() runs on MTC {
380 var universal charstring us1 :="Árvíztűrő tükörfúrógép"
381 f_unichar2oct_positivetest(
382 u := us1,
383 encodingType:="UTF-16",
384 expectedResult := f_ucharstring2utf16BE(us1)
385 )
386}
387
388testcase tc_unichar2oct_utf16BE_asciistring1() runs on MTC {
389 var universal charstring us1 :="Árvíztűrő tükörfúrógép";
390
391 f_unichar2oct_positivetest(
392 u := us1,
393 encodingType:="UTF-16BE",
394 expectedResult := f_ucharstring2utf16BE(us1)
395 )
396}
397
398testcase tc_unichar2oct_utf16LE_asciistring1() runs on MTC {
399 var universal charstring us1 :="Árvíztűrő tükörfúrógép"
400
401 var octetstring os_expected := f_ucharstring2utf16BE(us1);
402
403 if( not f_changeOrder(os_expected) ) { setverdict(fail, "Odd length is not expected") }
404 f_unichar2oct_positivetest(
405 u := us1,
406 encodingType:="UTF-16LE",
407 expectedResult := os_expected
408 )
409
410}
411
412testcase tc_unichar2oct_utf16_upperplanes() runs on MTC {
413 var RoUCS us := {
414 char(0,1,0,0), char(0,1,0,175), char(0,1,255,255),
415 char(0,2,0,0), char(0,2,0,175), char(0,2,255,255),
416 char(0,3,0,0), char(0,3,0,175), char(0,3,255,255),
417 char(0,15,0,0), char(0,15,0,175), char(0,15,255,255),
418 char(0,16,0,0), char(0,16,0,175), char(0,16,255,255)
419 };
420 var RoOS os := {
421 c_BOM_UTF16BE &'D800DC00'O, c_BOM_UTF16BE &'D800DCAF'O, c_BOM_UTF16BE &'D83FDFFF'O,
422 c_BOM_UTF16BE &'D840DC00'O, c_BOM_UTF16BE &'D840DCAF'O, c_BOM_UTF16BE &'D87FDFFF'O,
423 c_BOM_UTF16BE &'D880DC00'O, c_BOM_UTF16BE &'D880DCAF'O, c_BOM_UTF16BE &'D8BFDFFF'O,
424 c_BOM_UTF16BE &'DB80DC00'O, c_BOM_UTF16BE &'DB80DCAF'O, c_BOM_UTF16BE &'DBBFDFFF'O,
425 c_BOM_UTF16BE &'DBC0DC00'O, c_BOM_UTF16BE &'DBC0DCAF'O, c_BOM_UTF16BE &'DBFFDFFF'O
426 }
427 var integer len:=lengthof(us);
428
429 for(var integer i:=0;i<len;i:=i+1) {
430
431 f_unichar2oct_positivetest(
432 u := us[i],
433 encodingType:="UTF-16",
434 expectedResult := os[i]
435 )
436 }
437}
438
439testcase tc_unichar2oct_utf16BE_upperplanes() runs on MTC {
440 var RoUCS us := {
441 char(0,1,0,0), char(0,1,0,175), char(0,1,255,255),
442 char(0,2,0,0), char(0,2,0,175), char(0,2,255,255),
443 char(0,3,0,0), char(0,3,0,175), char(0,3,255,255),
444 char(0,15,0,0), char(0,15,0,175), char(0,15,255,255),
445 char(0,16,0,0), char(0,16,0,175), char(0,16,255,255)
446 };
447 var RoOS os := {
448 c_BOM_UTF16BE &'D800DC00'O, c_BOM_UTF16BE &'D800DCAF'O, c_BOM_UTF16BE &'D83FDFFF'O,
449 c_BOM_UTF16BE &'D840DC00'O, c_BOM_UTF16BE &'D840DCAF'O, c_BOM_UTF16BE &'D87FDFFF'O,
450 c_BOM_UTF16BE &'D880DC00'O, c_BOM_UTF16BE &'D880DCAF'O, c_BOM_UTF16BE &'D8BFDFFF'O,
451 c_BOM_UTF16BE &'DB80DC00'O, c_BOM_UTF16BE &'DB80DCAF'O, c_BOM_UTF16BE &'DBBFDFFF'O,
452 c_BOM_UTF16BE &'DBC0DC00'O, c_BOM_UTF16BE &'DBC0DCAF'O, c_BOM_UTF16BE &'DBFFDFFF'O
453 }
454 var integer len:=lengthof(us);
455
456 for(var integer i:=0;i<len;i:=i+1) {
457
458 f_unichar2oct_positivetest(
459 u := us[i],
460 encodingType:="UTF-16BE",
461 expectedResult := os[i]
462 )
463
464 }
465}
466
467testcase tc_unichar2oct_utf16LE_upperplanes() runs on MTC {
468 var RoUCS us := {
469 char(0,1,0,0), char(0,1,0,175), char(0,1,255,255),
470 char(0,2,0,0), char(0,2,0,175), char(0,2,255,255),
471 char(0,3,0,0), char(0,3,0,175), char(0,3,255,255),
472 char(0,15,0,0), char(0,15,0,175), char(0,15,255,255),
473 char(0,16,0,0), char(0,16,0,175), char(0,16,255,255)
474 };
475 var RoOS os := {
476 c_BOM_UTF16BE &'D800DC00'O, c_BOM_UTF16BE &'D800DCAF'O, c_BOM_UTF16BE &'D83FDFFF'O,
477 c_BOM_UTF16BE &'D840DC00'O, c_BOM_UTF16BE &'D840DCAF'O, c_BOM_UTF16BE &'D87FDFFF'O,
478 c_BOM_UTF16BE &'D880DC00'O, c_BOM_UTF16BE &'D880DCAF'O, c_BOM_UTF16BE &'D8BFDFFF'O,
479 c_BOM_UTF16BE &'DB80DC00'O, c_BOM_UTF16BE &'DB80DCAF'O, c_BOM_UTF16BE &'DBBFDFFF'O,
480 c_BOM_UTF16BE &'DBC0DC00'O, c_BOM_UTF16BE &'DBC0DCAF'O, c_BOM_UTF16BE &'DBFFDFFF'O
481 }
482 var integer len:=lengthof(us);
483
484 for(var integer i:=0;i<len;i:=i+1) {
485 f_changeOrder(os[i]);
486 f_unichar2oct_positivetest(
487 u := us[i],
488 encodingType:="UTF-16LE",
489 expectedResult := os[i]
490 )
491
492 }
493}
494
495testcase tc_unichar2oct_utf16_upperplane_longer() runs on MTC {
496 var RoUCS us := {
497 char(0,1,0,0) & char(0,1,0,175) & char(0,1,255,255),
498 char(0,2,0,0) & char(0,2,0,175) & char(0,2,255,255),
499 char(0,3,0,0) & char(0,3,0,175) & char(0,3,255,255),
500 char(0,15,0,0)& char(0,15,0,175)& char(0,15,255,255),
501 char(0,16,0,0)& char(0,16,0,175)& char(0,16,255,255),
502 char(0,16,0,0) & char(0,0,0,1) & " "
503 };
504 var RoOS os := {
505 c_BOM_UTF16BE &'D800DC00'O &'D800DCAF'O &'D83FDFFF'O,
506 c_BOM_UTF16BE &'D840DC00'O &'D840DCAF'O &'D87FDFFF'O,
507 c_BOM_UTF16BE &'D880DC00'O &'D880DCAF'O &'D8BFDFFF'O,
508 c_BOM_UTF16BE &'DB80DC00'O &'DB80DCAF'O &'DBBFDFFF'O,
509 c_BOM_UTF16BE &'DBC0DC00'O &'DBC0DCAF'O &'DBFFDFFF'O,
510 c_BOM_UTF16BE &'DBC0DC00'O &'0001'O &'0020'O
511 }
512 var integer len:=lengthof(us);
513
514 for(var integer i:=0;i<len;i:=i+1) {
515
516 f_unichar2oct_positivetest(
517 u := us[i],
518 encodingType:="UTF-16",
519 expectedResult := os[i]
520 )
521 }
522}
523
524testcase tc_unichar2oct_utf16BE_upperplane_longer() runs on MTC {
525 var RoUCS us := {
526 char(0,1,0,0) & char(0,1,0,175) & char(0,1,255,255),
527 char(0,2,0,0) & char(0,2,0,175) & char(0,2,255,255),
528 char(0,3,0,0) & char(0,3,0,175) & char(0,3,255,255),
529 char(0,15,0,0)& char(0,15,0,175)& char(0,15,255,255),
530 char(0,16,0,0)& char(0,16,0,175)& char(0,16,255,255),
531 char(0,16,0,0) & char(0,0,0,1) & " "
532 };
533 var RoOS os := {
534 c_BOM_UTF16BE &'D800DC00'O &'D800DCAF'O &'D83FDFFF'O,
535 c_BOM_UTF16BE &'D840DC00'O &'D840DCAF'O &'D87FDFFF'O,
536 c_BOM_UTF16BE &'D880DC00'O &'D880DCAF'O &'D8BFDFFF'O,
537 c_BOM_UTF16BE &'DB80DC00'O &'DB80DCAF'O &'DBBFDFFF'O,
538 c_BOM_UTF16BE &'DBC0DC00'O &'DBC0DCAF'O &'DBFFDFFF'O,
539 c_BOM_UTF16BE &'DBC0DC00'O &'0001'O &'0020'O
540 }
541 var integer len:=lengthof(us);
542
543 for(var integer i:=0;i<len;i:=i+1) {
544
545 f_unichar2oct_positivetest(
546 u := us[i],
547 encodingType:="UTF-16BE",
548 expectedResult := os[i]
549 )
550 }
551}
552
553testcase tc_unichar2oct_utf16LE_upperplane_longer() runs on MTC {
554 var RoUCS us := {
555 char(0,1,0,0) & char(0,1,0,175) & char(0,1,255,255),
556 char(0,2,0,0) & char(0,2,0,175) & char(0,2,255,255),
557 char(0,3,0,0) & char(0,3,0,175) & char(0,3,255,255),
558 char(0,15,0,0)& char(0,15,0,175)& char(0,15,255,255),
559 char(0,16,0,0)& char(0,16,0,175)& char(0,16,255,255),
560 char(0,16,0,0) & char(0,0,0,1) & " "
561 };
562 var RoOS os := {
563 c_BOM_UTF16BE &'D800DC00'O &'D800DCAF'O &'D83FDFFF'O,
564 c_BOM_UTF16BE &'D840DC00'O &'D840DCAF'O &'D87FDFFF'O,
565 c_BOM_UTF16BE &'D880DC00'O &'D880DCAF'O &'D8BFDFFF'O,
566 c_BOM_UTF16BE &'DB80DC00'O &'DB80DCAF'O &'DBBFDFFF'O,
567 c_BOM_UTF16BE &'DBC0DC00'O &'DBC0DCAF'O &'DBFFDFFF'O,
568 c_BOM_UTF16BE &'DBC0DC00'O &'0001'O &'0020'O
569 }
570 var integer len:=lengthof(us);
571
572 for(var integer i:=0;i<len;i:=i+1) {
573 f_changeOrder(os[i]);
574 f_unichar2oct_positivetest(
575 u := us[i],
576 encodingType:="UTF-16LE",
577 expectedResult := os[i]
578 )
579 }
580}
581
582testcase tc_unichar2oct_utf16_toobigplanes() runs on MTC {
583 var RoUCS us := {
584 char(0,17,0,0), char(0,17,0,175), char(0,17,255,255),
585 char(0,18,0,0), char(0,18,0,175), char(0,18,255,255),
586 char(0,19,0,0), char(0,19,0,175), char(0,19,255,255),
587 char(0,20,0,0), char(0,20,0,175), char(0,20,255,255),
588 char(127,255,0,0), char(127,255,255,175), char(127,255,255,255)
589 };
590
591 var integer len:=lengthof(us);
592
593 for(var integer i:=0;i<len;i:=i+1) {
594
595 f_unichar2oct_negativetest(
596 u := us[i],
597 encodingType:="UTF-16",
598 expectedError:=""
599 )
600 }
601}
602
603testcase tc_unichar2oct_utf16BE_toobigplanes() runs on MTC {
604 var RoUCS us := {
605 char(0,17,0,0), char(0,17,0,175), char(0,17,255,255),
606 char(0,18,0,0), char(0,18,0,175), char(0,18,255,255),
607 char(0,19,0,0), char(0,19,0,175), char(0,19,255,255),
608 char(0,20,0,0), char(0,20,0,175), char(0,20,255,255),
609 char(127,255,0,0), char(127,255,255,175), char(127,255,255,255)
610 };
611
612 var integer len:=lengthof(us);
613
614 for(var integer i:=0;i<len;i:=i+1) {
615
616 f_unichar2oct_negativetest(
617 u := us[i],
618 encodingType:="UTF-16BE",
619 expectedError:=""
620 )
621 }
622}
623
624testcase tc_unichar2oct_utf16LE_toobigplanes() runs on MTC {
625 var RoUCS us := {
626 char(0,17,0,0), char(0,17,0,175), char(0,17,255,255),
627 char(0,18,0,0), char(0,18,0,175), char(0,18,255,255),
628 char(0,19,0,0), char(0,19,0,175), char(0,19,255,255),
629 char(0,20,0,0), char(0,20,0,175), char(0,20,255,255),
630 char(127,255,0,0), char(127,255,255,175), char(127,255,255,255)
631 };
632
633 var integer len:=lengthof(us);
634
635 for(var integer i:=0;i<len;i:=i+1) {
636
637 f_unichar2oct_negativetest(
638 u := us[i],
639 encodingType:="UTF-16LE",
640 expectedError:=""
641 )
642 }
643}
644testcase tc_remove_bom_utf16() runs on MTC {
645 var octetstring o1:= 'EFBBBF7F'O;
646 var octetstring o2:= remove_bom(o1);
647 if( o2 == '7F'O) {
648 setverdict(pass);
649 } else {
650 setverdict(fail);
651 }
652}
653
654control{
655
656 execute(tc_get_stringencoding_UTF16());
657 //execute(tc_get_stringencoding_UTF16_buggy());
658 execute(tc_oct2unichar_UTF16_negative_01());
659 execute(tc_oct2unichar_UTF16_negative_D800());
660 execute(tc_oct2unichar_UTF16_negative_D80000());
661 execute(tc_oct2unichar_UTF16_negative_D8000000());
662 execute(tc_oct2unichar_UTF16_negative_toobig())
663 execute(tc_oct2unichar_UTF16_BMP());
664 execute(tc_oct2unichar_UTF16BE_BMP());
665 execute(tc_oct2unichar_UTF16LE_BMP());
666 execute(tc_oct2unichar_UTF16_Z());
667 execute(tc_oct2unichar_UTF16BE_Z());
668 execute(tc_oct2unichar_UTF16LE_Z());
669 execute(tc_oct2unichar_UTF16_water());
670 execute(tc_oct2unichar_UTF16_linearb());
671
672 execute(tc_unichar2oct_positive1());
673 execute(tc_unichar2oct_positive2());
674 execute(tc_unichar2oct_0to80());
675
676 execute(tc_unichar2octAndReverse_0toD7FF());
677 execute(tc_unichar2octAndReverse_E000toFFFF());
678 execute(tc_unichar2octAndReverse_10000to10FFFF());
679 execute(tc_unichar2oct_utf16_0toD7FF());
680 execute(tc_unichar2oct_utf16_asciistring());
681 execute(tc_unichar2oct_utf16BE_asciistring());
682 execute(tc_unichar2oct_utf16LE_asciistring());
683 execute(tc_unichar2oct_utf16_asciistring1());
684 execute(tc_unichar2oct_utf16BE_asciistring1());
685 execute(tc_unichar2oct_utf16LE_asciistring1());
686 execute(tc_unichar2oct_utf16_upperplanes());
687 execute(tc_unichar2oct_utf16BE_upperplanes());
688 execute(tc_unichar2oct_utf16LE_upperplanes());
689 execute(tc_remove_bom_utf16());
690}
691}
This page took 0.088363 seconds and 5 git commands to generate.