Mercurial > gnulib
annotate tests/uninorm/test-decomposition.c @ 40057:b06060465f09
maint: Run 'make update-copyright'
author | Paul Eggert <eggert@cs.ucla.edu> |
---|---|
date | Tue, 01 Jan 2019 00:25:11 +0100 |
parents | 10eb9086bea0 |
children |
rev | line source |
---|---|
11180
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
1 /* Test of decomposition of Unicode characters. |
40057
b06060465f09
maint: Run 'make update-copyright'
Paul Eggert <eggert@cs.ucla.edu>
parents:
19484
diff
changeset
|
2 Copyright (C) 2009-2019 Free Software Foundation, Inc. |
11180
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
3 |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
4 This program is free software: you can redistribute it and/or modify |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
5 it under the terms of the GNU General Public License as published by |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
6 the Free Software Foundation; either version 3 of the License, or |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
7 (at your option) any later version. |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
8 |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
9 This program is distributed in the hope that it will be useful, |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
10 but WITHOUT ANY WARRANTY; without even the implied warranty of |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
12 GNU General Public License for more details. |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
13 |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
14 You should have received a copy of the GNU General Public License |
19190 | 15 along with this program. If not, see <https://www.gnu.org/licenses/>. */ |
11180
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
16 |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
17 /* Written by Bruno Haible <bruno@clisp.org>, 2009. */ |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
18 |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
19 #include <config.h> |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
20 |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
21 #include "uninorm.h" |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
22 |
12496
a48d3d749ca5
Refactor common macros used in tests.
Bruno Haible <bruno@clisp.org>
parents:
12421
diff
changeset
|
23 #include "macros.h" |
11180
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
24 |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
25 int |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
26 main () |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
27 { |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
28 ucs4_t decomposed[UC_DECOMPOSITION_MAX_LENGTH]; |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
29 int tag; |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
30 int ret; |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
31 |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
32 /* SPACE */ |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
33 ret = uc_decomposition (0x0020, &tag, decomposed); |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
34 ASSERT (ret == -1); |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
35 |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
36 /* LATIN CAPITAL LETTER A WITH DIAERESIS */ |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
37 ret = uc_decomposition (0x00C4, &tag, decomposed); |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
38 ASSERT (ret == 2); |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
39 ASSERT (tag == UC_DECOMP_CANONICAL); |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
40 ASSERT (decomposed[0] == 0x0041); |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
41 ASSERT (decomposed[1] == 0x0308); |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
42 |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
43 /* LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON */ |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
44 ret = uc_decomposition (0x01DE, &tag, decomposed); |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
45 ASSERT (ret == 2); |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
46 ASSERT (tag == UC_DECOMP_CANONICAL); |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
47 ASSERT (decomposed[0] == 0x00C4); |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
48 ASSERT (decomposed[1] == 0x0304); |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
49 |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
50 /* GREEK DIALYTIKA AND PERISPOMENI */ |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
51 ret = uc_decomposition (0x1FC1, &tag, decomposed); |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
52 ASSERT (ret == 2); |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
53 ASSERT (tag == UC_DECOMP_CANONICAL); |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
54 ASSERT (decomposed[0] == 0x00A8); |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
55 ASSERT (decomposed[1] == 0x0342); |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
56 |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
57 /* SCRIPT SMALL L */ |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
58 ret = uc_decomposition (0x2113, &tag, decomposed); |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
59 ASSERT (ret == 1); |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
60 ASSERT (tag == UC_DECOMP_FONT); |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
61 ASSERT (decomposed[0] == 0x006C); |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
62 |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
63 /* NO-BREAK SPACE */ |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
64 ret = uc_decomposition (0x00A0, &tag, decomposed); |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
65 ASSERT (ret == 1); |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
66 ASSERT (tag == UC_DECOMP_NOBREAK); |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
67 ASSERT (decomposed[0] == 0x0020); |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
68 |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
69 /* ARABIC LETTER VEH INITIAL FORM */ |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
70 ret = uc_decomposition (0xFB6C, &tag, decomposed); |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
71 ASSERT (ret == 1); |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
72 ASSERT (tag == UC_DECOMP_INITIAL); |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
73 ASSERT (decomposed[0] == 0x06A4); |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
74 |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
75 /* ARABIC LETTER VEH MEDIAL FORM */ |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
76 ret = uc_decomposition (0xFB6D, &tag, decomposed); |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
77 ASSERT (ret == 1); |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
78 ASSERT (tag == UC_DECOMP_MEDIAL); |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
79 ASSERT (decomposed[0] == 0x06A4); |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
80 |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
81 /* ARABIC LETTER VEH FINAL FORM */ |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
82 ret = uc_decomposition (0xFB6B, &tag, decomposed); |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
83 ASSERT (ret == 1); |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
84 ASSERT (tag == UC_DECOMP_FINAL); |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
85 ASSERT (decomposed[0] == 0x06A4); |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
86 |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
87 /* ARABIC LETTER VEH ISOLATED FORM */ |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
88 ret = uc_decomposition (0xFB6A, &tag, decomposed); |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
89 ASSERT (ret == 1); |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
90 ASSERT (tag == UC_DECOMP_ISOLATED); |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
91 ASSERT (decomposed[0] == 0x06A4); |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
92 |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
93 /* CIRCLED NUMBER FIFTEEN */ |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
94 ret = uc_decomposition (0x246E, &tag, decomposed); |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
95 ASSERT (ret == 2); |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
96 ASSERT (tag == UC_DECOMP_CIRCLE); |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
97 ASSERT (decomposed[0] == 0x0031); |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
98 ASSERT (decomposed[1] == 0x0035); |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
99 |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
100 /* TRADE MARK SIGN */ |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
101 ret = uc_decomposition (0x2122, &tag, decomposed); |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
102 ASSERT (ret == 2); |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
103 ASSERT (tag == UC_DECOMP_SUPER); |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
104 ASSERT (decomposed[0] == 0x0054); |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
105 ASSERT (decomposed[1] == 0x004D); |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
106 |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
107 /* LATIN SUBSCRIPT SMALL LETTER I */ |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
108 ret = uc_decomposition (0x1D62, &tag, decomposed); |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
109 ASSERT (ret == 1); |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
110 ASSERT (tag == UC_DECOMP_SUB); |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
111 ASSERT (decomposed[0] == 0x0069); |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
112 |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
113 /* PRESENTATION FORM FOR VERTICAL LEFT PARENTHESIS */ |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
114 ret = uc_decomposition (0xFE35, &tag, decomposed); |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
115 ASSERT (ret == 1); |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
116 ASSERT (tag == UC_DECOMP_VERTICAL); |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
117 ASSERT (decomposed[0] == 0x0028); |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
118 |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
119 /* FULLWIDTH LATIN CAPITAL LETTER A */ |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
120 ret = uc_decomposition (0xFF21, &tag, decomposed); |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
121 ASSERT (ret == 1); |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
122 ASSERT (tag == UC_DECOMP_WIDE); |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
123 ASSERT (decomposed[0] == 0x0041); |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
124 |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
125 /* HALFWIDTH IDEOGRAPHIC COMMA */ |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
126 ret = uc_decomposition (0xFF64, &tag, decomposed); |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
127 ASSERT (ret == 1); |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
128 ASSERT (tag == UC_DECOMP_NARROW); |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
129 ASSERT (decomposed[0] == 0x3001); |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
130 |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
131 /* SMALL IDEOGRAPHIC COMMA */ |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
132 ret = uc_decomposition (0xFE51, &tag, decomposed); |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
133 ASSERT (ret == 1); |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
134 ASSERT (tag == UC_DECOMP_SMALL); |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
135 ASSERT (decomposed[0] == 0x3001); |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
136 |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
137 /* SQUARE MHZ */ |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
138 ret = uc_decomposition (0x3392, &tag, decomposed); |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
139 ASSERT (ret == 3); |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
140 ASSERT (tag == UC_DECOMP_SQUARE); |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
141 ASSERT (decomposed[0] == 0x004D); |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
142 ASSERT (decomposed[1] == 0x0048); |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
143 ASSERT (decomposed[2] == 0x007A); |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
144 |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
145 /* VULGAR FRACTION THREE EIGHTHS */ |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
146 ret = uc_decomposition (0x215C, &tag, decomposed); |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
147 ASSERT (ret == 3); |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
148 ASSERT (tag == UC_DECOMP_FRACTION); |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
149 ASSERT (decomposed[0] == 0x0033); |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
150 ASSERT (decomposed[1] == 0x2044); |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
151 ASSERT (decomposed[2] == 0x0038); |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
152 |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
153 /* MICRO SIGN */ |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
154 ret = uc_decomposition (0x00B5, &tag, decomposed); |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
155 ASSERT (ret == 1); |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
156 ASSERT (tag == UC_DECOMP_COMPAT); |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
157 ASSERT (decomposed[0] == 0x03BC); |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
158 |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
159 /* ARABIC LIGATURE SALLALLAHOU ALAYHE WASALLAM */ |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
160 ret = uc_decomposition (0xFDFA, &tag, decomposed); |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
161 ASSERT (ret == 18); |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
162 ASSERT (tag == UC_DECOMP_ISOLATED); |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
163 ASSERT (decomposed[0] == 0x0635); |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
164 ASSERT (decomposed[1] == 0x0644); |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
165 ASSERT (decomposed[2] == 0x0649); |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
166 ASSERT (decomposed[3] == 0x0020); |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
167 ASSERT (decomposed[4] == 0x0627); |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
168 ASSERT (decomposed[5] == 0x0644); |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
169 ASSERT (decomposed[6] == 0x0644); |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
170 ASSERT (decomposed[7] == 0x0647); |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
171 ASSERT (decomposed[8] == 0x0020); |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
172 ASSERT (decomposed[9] == 0x0639); |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
173 ASSERT (decomposed[10] == 0x0644); |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
174 ASSERT (decomposed[11] == 0x064A); |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
175 ASSERT (decomposed[12] == 0x0647); |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
176 ASSERT (decomposed[13] == 0x0020); |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
177 ASSERT (decomposed[14] == 0x0648); |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
178 ASSERT (decomposed[15] == 0x0633); |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
179 ASSERT (decomposed[16] == 0x0644); |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
180 ASSERT (decomposed[17] == 0x0645); |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
181 |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
182 /* HANGUL SYLLABLE GEUL */ |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
183 ret = uc_decomposition (0xAE00, &tag, decomposed); |
11206
c7e84b56dbc3
Implement new clarified decomposition of Hangul syllables.
Bruno Haible <bruno@clisp.org>
parents:
11180
diff
changeset
|
184 /* See the clarification at <http://www.unicode.org/versions/Unicode5.1.0/>, |
c7e84b56dbc3
Implement new clarified decomposition of Hangul syllables.
Bruno Haible <bruno@clisp.org>
parents:
11180
diff
changeset
|
185 section "Clarification of Hangul Jamo Handling". */ |
c7e84b56dbc3
Implement new clarified decomposition of Hangul syllables.
Bruno Haible <bruno@clisp.org>
parents:
11180
diff
changeset
|
186 #if 1 |
c7e84b56dbc3
Implement new clarified decomposition of Hangul syllables.
Bruno Haible <bruno@clisp.org>
parents:
11180
diff
changeset
|
187 ASSERT (ret == 2); |
c7e84b56dbc3
Implement new clarified decomposition of Hangul syllables.
Bruno Haible <bruno@clisp.org>
parents:
11180
diff
changeset
|
188 ASSERT (tag == UC_DECOMP_CANONICAL); |
c7e84b56dbc3
Implement new clarified decomposition of Hangul syllables.
Bruno Haible <bruno@clisp.org>
parents:
11180
diff
changeset
|
189 ASSERT (decomposed[0] == 0xADF8); |
c7e84b56dbc3
Implement new clarified decomposition of Hangul syllables.
Bruno Haible <bruno@clisp.org>
parents:
11180
diff
changeset
|
190 ASSERT (decomposed[1] == 0x11AF); |
c7e84b56dbc3
Implement new clarified decomposition of Hangul syllables.
Bruno Haible <bruno@clisp.org>
parents:
11180
diff
changeset
|
191 #else |
11180
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
192 ASSERT (ret == 3); |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
193 ASSERT (tag == UC_DECOMP_CANONICAL); |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
194 ASSERT (decomposed[0] == 0x1100); |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
195 ASSERT (decomposed[1] == 0x1173); |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
196 ASSERT (decomposed[2] == 0x11AF); |
11206
c7e84b56dbc3
Implement new clarified decomposition of Hangul syllables.
Bruno Haible <bruno@clisp.org>
parents:
11180
diff
changeset
|
197 #endif |
11180
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
198 |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
199 /* HANGUL SYLLABLE GEU */ |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
200 ret = uc_decomposition (0xADF8, &tag, decomposed); |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
201 ASSERT (ret == 2); |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
202 ASSERT (tag == UC_DECOMP_CANONICAL); |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
203 ASSERT (decomposed[0] == 0x1100); |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
204 ASSERT (decomposed[1] == 0x1173); |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
205 |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
206 return 0; |
756c9e858420
Tests for module 'uninorm/decomposition'.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
207 } |