Sync with 5.1.0
[deliverable/titan.core.git] / regression_test / ucharstrOper / UTF32Testcases.ttcn
CommitLineData
970ed795
EL
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// This module tests the following functions for UTF-32:
9// oct2unichar
10// unichar2oct
11// get_stringencoding
12module UTF32Testcases {
13
14import from Common all;
15
16//=========================================================================
17// Testcases
18//=========================================================================
19
20// Insert test cases here if applicable!
21// You can use the test_case skeleton!
22
23testcase tc_converter_test_temp() runs on MTC {
24 var octetstring o := '010203040a0b0c0d'O
25
26 f_changeOrderUTF32(o)
27 log(o);
28 if(o=='040302010d0c0b0a'O){
29 setverdict(pass);
30 } else {
31 setverdict(fail);
32 }
33}
34
35
36//==== The next 4 testcase groups uses the Uncode standard 5.0 / Chapter 3/ Table 3-9 ======
37
38//===1===
39testcase tc_oct2unichar_UTF32_1() runs on MTC {
40 var octetstring o := c_BOM_UTF32BE & '0000004D'O
41 var universal charstring u_expected := char(0,0,0,77);
42
43 f_oct2unichar_positivetest(
44 inputOs:=o,
45 encType:="UTF-32",
46 expectedUCS:= u_expected,
47 expectedEncType:="UTF-32BE",
48 expectedOs := o
49 )
50}
51
52testcase tc_oct2unichar_UTF32BE_1() runs on MTC {
53 var octetstring o := c_BOM_UTF32BE & '0000004D'O
54 var universal charstring u_expected := char(0,0,0,77);
55
56
57 f_oct2unichar_positivetest(
58 inputOs:=o,
59 encType:="UTF-32BE",
60 expectedUCS:= u_expected,
61 expectedEncType:="UTF-32BE",
62 expectedOs := o
63 )
64}
65
66testcase tc_oct2unichar_UTF32LE_1() runs on MTC {
67 var octetstring o := c_BOM_UTF32BE & '0000004D'O
68 var universal charstring u_expected := char(0,0,0,77);
69
70 f_changeOrderUTF32(o);
71
72 f_oct2unichar_positivetest(
73 inputOs:=o,
74 encType:="UTF-32LE",
75 expectedUCS:= u_expected,
76 expectedEncType:="UTF-32LE",
77 expectedOs := o
78 )
79}
80
81//===2===
82testcase tc_oct2unichar_UTF32_2() runs on MTC {
83 var octetstring o := c_BOM_UTF32BE & '00000430'O
84 var universal charstring u_expected := char(0,0,4,48);
85
86 f_oct2unichar_positivetest(
87 inputOs:=o,
88 encType:="UTF-32",
89 expectedUCS:= u_expected,
90 expectedEncType:="UTF-32BE",
91 expectedOs := o
92 )
93}
94
95testcase tc_oct2unichar_UTF32BE_2() runs on MTC {
96 var octetstring o := c_BOM_UTF32BE & '00000430'O
97 var universal charstring u_expected := char(0,0,4,48);
98
99
100 f_oct2unichar_positivetest(
101 inputOs:=o,
102 encType:="UTF-32BE",
103 expectedUCS:= u_expected,
104 expectedEncType:="UTF-32BE",
105 expectedOs := o
106 )
107}
108
109
110
111testcase tc_oct2unichar_UTF32LE_2() runs on MTC {
112 var octetstring o := c_BOM_UTF32BE & '00000430'O
113 var universal charstring u_expected := char(0,0,4,48);
114
115 f_changeOrderUTF32(o);
116
117 f_oct2unichar_positivetest(
118 inputOs:=o,
119 encType:="UTF-32LE",
120 expectedUCS:= u_expected,
121 expectedEncType:="UTF-32LE",
122 expectedOs := o
123 )
124}
125
126//===3===
127testcase tc_oct2unichar_UTF32_3() runs on MTC {
128 var octetstring o := c_BOM_UTF32BE & '00004E8C'O
129 var universal charstring u_expected := char(0,0,78,140);
130
131 f_oct2unichar_positivetest(
132 inputOs:=o,
133 encType:="UTF-32",
134 expectedUCS:= u_expected,
135 expectedEncType:="UTF-32BE",
136 expectedOs := o
137 )
138}
139
140testcase tc_oct2unichar_UTF32BE_3() runs on MTC {
141 var octetstring o := c_BOM_UTF32BE & '00004E8C'O
142 var universal charstring u_expected := char(0,0,78,140);
143
144
145 f_oct2unichar_positivetest(
146 inputOs:=o,
147 encType:="UTF-32BE",
148 expectedUCS:= u_expected,
149 expectedEncType:="UTF-32BE",
150 expectedOs := o
151 )
152}
153
154testcase tc_oct2unichar_UTF32LE_3() runs on MTC {
155 var octetstring o := c_BOM_UTF32BE & '00004E8C'O
156 var universal charstring u_expected := char(0,0,78,140);
157
158 f_changeOrderUTF32(o);
159
160 f_oct2unichar_positivetest(
161 inputOs:=o,
162 encType:="UTF-32LE",
163 expectedUCS:= u_expected,
164 expectedEncType:="UTF-32LE",
165 expectedOs := o
166 )
167}
168
169
170//==4==
171testcase tc_oct2unichar_UTF32_4() runs on MTC {
172 var octetstring o := c_BOM_UTF32BE & '00010302'O
173 var universal charstring u_expected := char(0,1,3,2);
174
175 f_oct2unichar_positivetest(
176 inputOs:=o,
177 encType:="UTF-32",
178 expectedUCS:=char(0,1,3,2),
179 expectedEncType:="UTF-32BE",
180 expectedOs := o
181 )
182}
183
184testcase tc_oct2unichar_UTF32BE_4() runs on MTC {
185 var octetstring o := c_BOM_UTF32BE & '00010302'O
186 var universal charstring u_expected := char(0,1,3,2);
187
188
189 f_oct2unichar_positivetest(
190 inputOs:=o,
191 encType:="UTF-32BE",
192 expectedUCS:=char(0,1,3,2),
193 expectedEncType:="UTF-32BE",
194 expectedOs := o
195 )
196}
197
198
199
200testcase tc_oct2unichar_UTF32LE_4() runs on MTC {
201 var octetstring o := c_BOM_UTF32BE & '00010302'O
202
203 var universal charstring u_expected := char(0,1,3,2);
204
205 f_changeOrderUTF32(o);
206
207 f_oct2unichar_positivetest(
208 inputOs:=o,
209 encType:="UTF-32LE",
210 expectedUCS:=char(0,1,3,2),
211 expectedEncType:="UTF-32LE",
212 expectedOs := o
213 )
214}
215
216testcase tc_oct2unichar_UTF32_4_negative() runs on MTC {
217 var octetstring o := c_BOM_UTF32BE & '00010302'O
218 var universal charstring u_expected := char(0,1,3,2);
219
220 f_changeOrderUTF32(o);
221
222 f_oct2unichar_negativetest(
223 inputOs:=o,
224 encType:="UTF-32",
225 expectedErrorMsg:="Any UTF-32 code \(0xFFFE0000\) greater than 0x0010FFFF is ill-formed"
226 )
227}
228
229testcase tc_oct2unichar_UTF32BE_4_negative() runs on MTC {
230 var octetstring o := c_BOM_UTF32BE & '00010302'O
231 var universal charstring u_expected := char(0,1,3,2);
232
233 f_changeOrderUTF32(o);
234
235 f_oct2unichar_negativetest(
236 inputOs:=o,
237 encType:="UTF-32BE",
238 expectedErrorMsg:="Any UTF-32 code \(0xFFFE0000\) greater than 0x0010FFFF is ill-formed"
239 )
240}
241
242testcase tc_oct2unichar_UTF32LE_4_negative() runs on MTC {
243 var octetstring o := c_BOM_UTF32BE & '00010302'O
244 var universal charstring u_expected := char(0,1,3,2);
245
246 f_oct2unichar_negativetest(
247 inputOs:=o,
248 encType:="UTF-32LE",
249 expectedErrorMsg:="Any UTF-32 code \(0xFFFE0000\) greater than 0x0010FFFF is ill-formed"
250 )
251}
252
253
254// ==== General test ===
255
256testcase tc_oct2unichar_UTF32BE_BMP_low() runs on MTC {
257
258 var integer L := 0;
259 var integer N := oct2int('D7FF'O)
260
261 for(var integer i:=L;i<=N;i:=i+2049) {
262
263 for(var integer j:=0;j<4;j:=j+1) {
264 f_oct2unichar_positivetest(
265 inputOs := c_BOM_UTF32BE & int2oct(i+j,4),
266 encType := "UTF-32BE",
267 expectedUCS := int2unichar(i+j),
268 expectedEncType := "UTF-32BE"
269 )
270 }
271
272 }
273}
274
275testcase tc_oct2unichar_UTF32BE_BMP_hi() runs on MTC {
276
277 var integer L := oct2int('E000'O)
278 var integer N := oct2int('FFFF'O)
279
280 for(var integer i:=L;i<=N;i:=i+2049) {
281
282 for(var integer j:=0;j<4;j:=j+1) {
283 log(">>=====i: ",i," j: ",j,"=======")
284 f_oct2unichar_positivetest(
285 inputOs := c_BOM_UTF32BE & int2oct(i+j,4),
286 encType := "UTF-32BE",
287 expectedUCS := int2unichar(i+j),
288 expectedEncType := "UTF-32BE"
289 )
290 }
291
292 }
293}
294
295testcase tc_oct2unichar_UTF32LE_BMP_low() runs on MTC {
296
297 var integer L := 0;
298 var integer N := oct2int('D7FF'O)
299 var octetstring o;
300
301 for(var integer i:=L;i<=N;i:=i+2049) {
302
303 for(var integer j:=0;j<4;j:=j+1) {
304 o:=c_BOM_UTF32BE & int2oct(i+j,4);
305 f_changeOrderUTF32(o);
306 f_oct2unichar_positivetest(
307 inputOs := o,
308 encType := "UTF-32LE",
309 expectedUCS := int2unichar(i+j),
310 expectedEncType := "UTF-32LE"
311 )
312 }
313
314 }
315}
316
317testcase tc_oct2unichar_UTF32LE_BMP_hi() runs on MTC {
318
319 var integer L := oct2int('E000'O)
320 var integer N := oct2int('FFFF'O)
321 var octetstring o;
322
323 for(var integer i:=L;i<=N;i:=i+2049) {
324 for(var integer j:=0;j<4;j:=j+1) {
325 o:=c_BOM_UTF32BE & int2oct(i+j,4);
326 f_changeOrderUTF32(o);
327 f_oct2unichar_positivetest(
328 inputOs := o,
329 encType := "UTF-32LE",
330 expectedUCS := int2unichar(i+j),
331 expectedEncType := "UTF-32LE"
332 )
333 }
334
335 }
336}
337
338//=== higher planes ====
339
340testcase tc_oct2unichar_UTF32() runs on MTC {
341
342 var integer L := oct2int('010000'O);
343 var integer N := oct2int('10FFFF'O)
344
345 for(var integer i:=L;i<=N;i:=i+25007) {
346
347 for(var integer j:=0;j<4;j:=j+1) {
348 log("=====i: ",i," j: ",j,"=======")
349 f_oct2unichar_positivetest(
350 inputOs := c_BOM_UTF32BE & int2oct(i+j,4),
351 encType := "UTF-32",
352 expectedUCS := int2unichar(i+j),
353 expectedEncType := "UTF-32BE"
354 )
355 }
356
357 }
358}
359
360testcase tc_oct2unichar_UTF32BE() runs on MTC {
361
362 var integer L := oct2int('010000'O);
363 var integer N := oct2int('10FFFF'O)
364
365 for(var integer i:=L;i<=N;i:=i+256*64) {
366
367 for(var integer j:=0;j<4;j:=j+1) {
368 f_oct2unichar_positivetest(
369 inputOs := c_BOM_UTF32BE & int2oct(i+j,4),
370 encType := "UTF-32BE",
371 expectedUCS := int2unichar(i+j),
372 expectedEncType := "UTF-32BE"
373 )
374 }
375
376 }
377}
378
379
380testcase tc_oct2unichar_UTF32LE() runs on MTC {
381
382 var integer L := oct2int('010000'O);
383 var integer N := oct2int('10FFFF'O)
384 var octetstring o;
385
386 for(var integer i:=L;i<=N;i:=i+256*64) {
387
388 for(var integer j:=0;j<4;j:=j+1) {
389 o:=c_BOM_UTF32BE & int2oct(i+j,4);
390 f_changeOrderUTF32(o);
391 f_oct2unichar_positivetest(
392 inputOs := o,
393 encType := "UTF-32LE",
394 expectedUCS := int2unichar(i+j),
395 expectedEncType := "UTF-32LE"
396 )
397 }
398
399 }
400}
401
402testcase tc_unichar2oct_utf32_asciistring() runs on MTC {
403 var universal charstring us1 := c_arvizturo; //"Árvíztűrő tükörfúrógép"
404 var universal charstring us2 :="Steve Jobs likes the Apple"
405 //2
406 var octetstring os_expected := f_ucharstring2utf32BE(us1);
407
408 f_unichar2oct_positivetest(
409 u := us1,
410 encodingType:="UTF-32",
411 expectedResult := os_expected
412 )
413
414 os_expected := f_ucharstring2utf32BE(us2);
415
416 f_unichar2oct_positivetest(
417 u := us2,
418 encodingType:="UTF-32",
419 expectedResult := os_expected
420 )
421
422
423
424}
425
426testcase tc_unichar2oct_utf32BE_asciistring() runs on MTC {
427
428 var universal charstring us1 := c_arvizturo; //"Árvíztűrő tükörfúrógép"
429 var universal charstring us2 :="Steve Jobs likes the Apple"
430
431 var octetstring os_expected := f_ucharstring2utf32BE(us1);
432
433 f_unichar2oct_positivetest(
434 u := us1,
435 encodingType:="UTF-32BE",
436 expectedResult := os_expected
437 )
438
439 os_expected := f_ucharstring2utf32BE(us2);
440
441 f_unichar2oct_positivetest(
442 u := us2,
443 encodingType:="UTF-32BE",
444 expectedResult := os_expected
445 )
446
447}
448
449
450testcase tc_unichar2oct_utf32LE_asciistring() runs on MTC {
451
452 var universal charstring us1 := c_arvizturo; //"Árvíztűrő tükörfúrógép"
453 var universal charstring us2 :="Steve Jobs likes the Apple"
454
455 var octetstring os_expected := f_ucharstring2utf32BE(us1);
456 if( not f_changeOrderUTF32(os_expected) ) { setverdict(fail, "Odd length is not expected") }
457 f_unichar2oct_positivetest(
458 u := us1,
459 encodingType:="UTF-32LE",
460 expectedResult := os_expected
461 )
462
463 os_expected := f_ucharstring2utf32BE(us2);
464 if( not f_changeOrderUTF32(os_expected) ) { setverdict(fail, "Odd length is not expected") }
465 f_unichar2oct_positivetest(
466 u := us2,
467 encodingType:="UTF-32LE",
468 expectedResult := os_expected
469 )
470
471}
472
473
474testcase tc_unichar2oct_utf32_upperplane_longer() runs on MTC {
475 var RoUCS us := {
476 char(0,1,0,0) & char(0,1,0,175) & char(0,1,255,255),
477 char(0,2,0,0) & char(0,2,0,175) & char(0,2,255,255),
478 char(0,3,0,0) & char(0,3,0,175) & char(0,3,255,255),
479 char(0,15,0,0)& char(0,15,0,175)& char(0,15,255,255),
480 char(0,16,0,0)& char(0,16,0,175)& char(0,16,255,255),
481 char(0,16,0,0) & char(0,0,0,1) & " "
482 };
483 var octetstring os_expected;
484 var integer len:=lengthof(us);
485
486 for(var integer i:=0;i<len;i:=i+1) {
487 os_expected := f_ucharstring2utf32BE(us[i]);
488 f_unichar2oct_positivetest(
489 u := us[i],
490 encodingType:="UTF-32",
491 expectedResult := os_expected
492 )
493 }
494}
495
496testcase tc_unichar2oct_utf32BE_upperplane_longer() runs on MTC {
497 var RoUCS us := {
498 char(0,1,0,0) & char(0,1,0,175) & char(0,1,255,255),
499 char(0,2,0,0) & char(0,2,0,175) & char(0,2,255,255),
500 char(0,3,0,0) & char(0,3,0,175) & char(0,3,255,255),
501 char(0,15,0,0)& char(0,15,0,175)& char(0,15,255,255),
502 char(0,16,0,0)& char(0,16,0,175)& char(0,16,255,255),
503 char(0,16,0,0) & char(0,0,0,1) & " "
504 };
505 var octetstring os_expected;
506 var integer len:=lengthof(us);
507
508 for(var integer i:=0;i<len;i:=i+1) {
509 os_expected := f_ucharstring2utf32BE(us[i]);
510 f_unichar2oct_positivetest(
511 u := us[i],
512 encodingType:="UTF-32BE",
513 expectedResult := os_expected
514 )
515 }
516}
517
518testcase tc_unichar2oct_utf32LE_upperplane_longer() runs on MTC {
519 var RoUCS us := {
520 char(0,1,0,0) & char(0,1,0,175) & char(0,1,255,255),
521 char(0,2,0,0) & char(0,2,0,175) & char(0,2,255,255),
522 char(0,3,0,0) & char(0,3,0,175) & char(0,3,255,255),
523 char(0,15,0,0)& char(0,15,0,175)& char(0,15,255,255),
524 char(0,16,0,0)& char(0,16,0,175)& char(0,16,255,255),
525 char(0,16,0,0) & char(0,0,0,1) & " "
526 };
527 var octetstring os_expected;
528 var integer len:=lengthof(us);
529
530 for(var integer i:=0;i<len;i:=i+1) {
531 os_expected := f_ucharstring2utf32BE(us[i]);
532 if( not f_changeOrderUTF32(os_expected) ) { setverdict(fail, "Odd length is not expected") }
533 f_unichar2oct_positivetest(
534 u := us[i],
535 encodingType:="UTF-32LE",
536 expectedResult := os_expected
537 )
538 }
539}
540//=========================================================================
541// Control
542//=========================================================================
543
544control{
545 execute(tc_converter_test_temp())
546 execute(tc_oct2unichar_UTF32_1());
547 execute(tc_oct2unichar_UTF32BE_1());
548 execute(tc_oct2unichar_UTF32LE_1());
549 execute(tc_oct2unichar_UTF32_2());
550 execute(tc_oct2unichar_UTF32BE_2());
551 execute(tc_oct2unichar_UTF32LE_2());
552 execute(tc_oct2unichar_UTF32_3());
553 execute(tc_oct2unichar_UTF32BE_3());
554 execute(tc_oct2unichar_UTF32LE_3());
555 execute(tc_oct2unichar_UTF32_4());
556 execute(tc_oct2unichar_UTF32BE_4());
557 execute(tc_oct2unichar_UTF32LE_4());
558 execute(tc_oct2unichar_UTF32_4_negative());
559 execute(tc_oct2unichar_UTF32BE_4_negative());
560 execute(tc_oct2unichar_UTF32LE_4_negative());
561 execute(tc_oct2unichar_UTF32BE_BMP_low());
562 execute(tc_oct2unichar_UTF32BE_BMP_hi());
563 execute(tc_oct2unichar_UTF32LE_BMP_low());
564 execute(tc_oct2unichar_UTF32LE_BMP_hi());
565 execute(tc_oct2unichar_UTF32());
566 execute(tc_oct2unichar_UTF32BE());
567 execute(tc_oct2unichar_UTF32LE());
568 execute(tc_unichar2oct_utf32_asciistring());
569 execute(tc_unichar2oct_utf32BE_asciistring());
570 execute(tc_unichar2oct_utf32LE_asciistring());
571 execute(tc_unichar2oct_utf32_upperplane_longer());
572 execute(tc_unichar2oct_utf32BE_upperplane_longer());
573 execute(tc_unichar2oct_utf32LE_upperplane_longer());
574}
575
576} // end of module
This page took 0.046665 seconds and 5 git commands to generate.