1 | /* |
2 | * TEST SUITE FOR MB/WC FUNCTIONS IN C LIBRARY |
3 | * |
4 | * FILE: dat_wcswidth.c |
5 | * |
6 | * WCSWIDTH: int wcswidth (const wchar_t *ws, size_t n); |
7 | */ |
8 | |
9 | TST_WCSWIDTH tst_wcswidth_loc [] = { |
10 | { |
11 | { Twcswidth, TST_LOC_de }, |
12 | { |
13 | { /*input.*/ { { 0x00C1,0x00C2,0x00C3,0x0000 }, 0 }, /* 01 */ |
14 | /*expect*/ { 0,1,0 }, |
15 | }, |
16 | { /*input.*/ { { 0x00C1,0x00C2,0x00C3,0x0000 }, 1 }, /* 02 */ |
17 | /*expect*/ { 0,1,1 }, |
18 | }, |
19 | { /*input.*/ { { 0x00C1,0x00C2,0x00C3,0x0000 }, 2 }, /* 03 */ |
20 | /*expect*/ { 0,1,2 }, |
21 | }, |
22 | { /*input.*/ { { 0x00C1,0x00C2,0x00C3,0x0000 }, 3 }, /* 04 */ |
23 | /*expect*/ { 0,1,3 }, |
24 | }, |
25 | { /*input.*/ { { 0x00C1,0x00C2,0x00C3,0x0000 }, 4 }, /* 05 */ |
26 | /*expect*/ { 0,1,3 }, |
27 | }, |
28 | { /*input.*/ { { 0x0000 }, 1 }, /* 06 */ |
29 | /*expect*/ { 0,1,0 }, |
30 | }, |
31 | { /*input.*/ { { 0x00C1,0x0001,0x0000 }, 2 }, /* 07 */ |
32 | /*expect*/ { 0,1,-1 }, |
33 | }, |
34 | { /*input.*/ { { 0x00C1,0x0001,0x0000 }, 1 }, /* 08 */ |
35 | /*expect*/ { 0,1,1 }, |
36 | }, |
37 | { /*input.*/ { { 0x00C1,0x0001,0x0000 }, 2 }, /* 09 */ |
38 | /*expect*/ { 0,1,-1 }, |
39 | }, |
40 | { /*input.*/ { { 0x00C1,0x0092,0x0000 }, 2 }, /* 10 */ |
41 | /*expect*/ { 0,1,-1 }, |
42 | }, |
43 | { /*input.*/ { { 0x00C1,0x0020,0x0000 }, 2 }, /* 11 */ |
44 | /*expect*/ { 0,1,2 }, |
45 | }, |
46 | { /*input.*/ { { 0x00C1,0x0021,0x0000 }, 2 }, /* 12 */ |
47 | /*expect*/ { 0,1,2 }, |
48 | }, |
49 | { /*input.*/ { { 0x00C1,0x007E,0x0000 }, 2 }, /* 13 */ |
50 | /*expect*/ { 0,1,2 }, |
51 | }, |
52 | { /*input.*/ { { 0x00C1,0x007F,0x0000 }, 2 }, /* 14 */ |
53 | /*expect*/ { 0,1,-1 }, |
54 | }, |
55 | { /*input.*/ { { 0x00C1,0x0080,0x0000 }, 2 }, /* 15 */ |
56 | /*expect*/ { 0,1,-1 }, |
57 | }, |
58 | { /*input.*/ { { 0x00C1,0x00A0,0x0000 }, 2 }, /* 16 */ |
59 | /*expect*/ { 0,1,2 }, |
60 | }, |
61 | { /*input.*/ { { 0x00C1,0x00A1,0x0000 }, 2 }, /* 17 */ |
62 | /*expect*/ { 0,1,2 }, |
63 | }, |
64 | { /*input.*/ { { 0x00C1,0x00FF,0x0000 }, 2 }, /* 18 */ |
65 | /*expect*/ { 0,1,2 }, |
66 | }, |
67 | { /*input.*/ { { 0x00C1,0x3042,0x0000 }, 2 }, /* 19 */ |
68 | /*expect*/ { 0,1,-1 }, |
69 | }, |
70 | { /*input.*/ { { 0x00C1,0x3044,0x0000 }, 2 }, /* 20 */ |
71 | /*expect*/ { 0,1,-1 }, |
72 | }, |
73 | { .is_last = 1 } |
74 | } |
75 | }, |
76 | { |
77 | { Twcswidth, TST_LOC_enUS }, |
78 | { |
79 | { /*input.*/ { { 0x0041,0x0042,0x00C3,0x0000 }, 0 }, /* 01 */ |
80 | /*expect*/ { 0,1,0 }, |
81 | }, |
82 | { /*input.*/ { { 0x0041,0x0042,0x00C3,0x0000 }, 1 }, /* 02 */ |
83 | /*expect*/ { 0,1,1 }, |
84 | }, |
85 | { /*input.*/ { { 0x0041,0x0042,0x00C3,0x0000 }, 2 }, /* 03 */ |
86 | /*expect*/ { 0,1,2 }, |
87 | }, |
88 | { /*input.*/ { { 0x0041,0x0042,0x00C3,0x0000 }, 3 }, /* 04 */ |
89 | /*expect*/ { 0,1,-1 }, |
90 | }, |
91 | { /*input.*/ { { 0x0041,0x0042,0x0043,0x0000 }, 4 }, /* 05 */ |
92 | /*expect*/ { 0,1,3 }, |
93 | }, |
94 | { /*input.*/ { { 0x0000 }, 1 }, /* 06 */ |
95 | /*expect*/ { 0,1,0 }, |
96 | }, |
97 | { /*input.*/ { { 0x0041,0x0001,0x0000 }, 2 }, /* 07 */ |
98 | /*expect*/ { 0,1,-1 }, |
99 | }, |
100 | { /*input.*/ { { 0x0041,0x0001,0x0000 }, 1 }, /* 08 */ |
101 | /*expect*/ { 0,1,1 }, |
102 | }, |
103 | { /*input.*/ { { 0x0041,0x0001,0x0000 }, 2 }, /* 09 */ |
104 | /*expect*/ { 0,1,-1 }, |
105 | }, |
106 | { /*input.*/ { { 0x0041,0x0092,0x0000 }, 2 }, /* 10 */ |
107 | /*expect*/ { 0,1,-1 }, |
108 | }, |
109 | { /*input.*/ { { 0x0041,0x0020,0x0000 }, 2 }, /* 11 */ |
110 | /*expect*/ { 0,1,2 }, |
111 | }, |
112 | { /*input.*/ { { 0x0041,0x0021,0x0000 }, 2 }, /* 12 */ |
113 | /*expect*/ { 0,1,2 }, |
114 | }, |
115 | { /*input.*/ { { 0x0041,0x007E,0x0000 }, 2 }, /* 13 */ |
116 | /*expect*/ { 0,1,2 }, |
117 | }, |
118 | { /*input.*/ { { 0x0041,0x007F,0x0000 }, 2 }, /* 14 */ |
119 | /*expect*/ { 0,1,-1 }, |
120 | }, |
121 | { /*input.*/ { { 0x0041,0x0080,0x0000 }, 2 }, /* 15 */ |
122 | /*expect*/ { 0,1,-1 }, |
123 | }, |
124 | { /*input.*/ { { 0x0041,0x00A0,0x0000 }, 2 }, /* 16 */ |
125 | /*expect*/ { 0,1,-1 }, |
126 | }, |
127 | { /*input.*/ { { 0x0041,0x007E,0x0000 }, 2 }, /* 17 */ |
128 | /*expect*/ { 0,1,2 }, |
129 | }, |
130 | { /*input.*/ { { 0x0041,0x0020,0x0000 }, 2 }, /* 18 */ |
131 | /*expect*/ { 0,1,2 }, |
132 | }, |
133 | { /*input.*/ { { 0x0041,0x3042,0x0000 }, 2 }, /* 19 */ |
134 | /*expect*/ { 0,1,-1 }, |
135 | }, |
136 | { /*input.*/ { { 0x0041,0x3044,0x0000 }, 2 }, /* 20 */ |
137 | /*expect*/ { 0,1,-1 }, |
138 | }, |
139 | { .is_last = 1 } |
140 | } |
141 | }, |
142 | { |
143 | { Twcswidth, TST_LOC_eucJP }, |
144 | { |
145 | { /*input.*/ { { 0x3041,0x3042,0x3043,0x0000 }, 0 }, /* 01 */ |
146 | /*expect*/ { 0,1,0 }, |
147 | }, |
148 | { /*input.*/ { { 0x3041,0x3042,0x3043,0x0000 }, 1 }, /* 02 */ |
149 | /*expect*/ { 0,1,2 }, |
150 | }, |
151 | { /*input.*/ { { 0x3041,0x3042,0x3043,0x0000 }, 2 }, /* 03 */ |
152 | /*expect*/ { 0,1,4 }, |
153 | }, |
154 | { /*input.*/ { { 0x3041,0x3042,0x3043,0x0000 }, 3 }, /* 04 */ |
155 | /*expect*/ { 0,1,6 }, |
156 | }, |
157 | { /*input.*/ { { 0x3041,0x3042,0x3043,0x0000 }, 4 }, /* 05 */ |
158 | /*expect*/ { 0,1,6 }, |
159 | }, |
160 | { /*input.*/ { { 0x0000 }, 1 }, /* 06 */ |
161 | /*expect*/ { 0,1,0 }, |
162 | }, |
163 | { /*input.*/ { { 0x008E,0x0001,0x0000 }, 2 }, /* 07 */ |
164 | /*expect*/ { 0,1,-1 }, |
165 | }, |
166 | { /*input.*/ { { 0x3041,0x008E,0x0000 }, 1 }, /* 08 */ |
167 | /*expect*/ { 0,1,2 }, |
168 | }, |
169 | { /*input.*/ { { 0x3041,0x008E,0x0000 }, 2 }, /* 09 */ |
170 | /*expect*/ { 0,1,-1 }, |
171 | }, |
172 | { /*input.*/ { { 0x3041,0x0001,0x0000 }, 2 }, /* 10 */ |
173 | /*expect*/ { 0,1,-1 }, |
174 | }, |
175 | { /*input.*/ { { 0x3041,0x3000,0x0000 }, 2 }, /* 11 */ |
176 | /*expect*/ { 0,1,4 }, |
177 | }, |
178 | { /*input.*/ { { 0x0041,0x0021,0x0000 }, 2 }, /* 12 */ |
179 | /*expect*/ { 0,1,2 }, |
180 | }, |
181 | { /*input.*/ { { 0x0041,0x007E,0x0000 }, 2 }, /* 13 */ |
182 | /*expect*/ { 0,1,2 }, |
183 | }, |
184 | { /*input.*/ { { 0x0041,0x007F,0x0000 }, 2 }, /* 14 */ |
185 | /*expect*/ { 0,1,-1 }, |
186 | }, |
187 | { /*input.*/ { { 0x0041,0x0080,0x0000 }, 2 }, /* 15 */ |
188 | /*expect*/ { 0,1,-1 }, |
189 | }, |
190 | { /*input.*/ { { 0x0041,0x00A0,0x0000 }, 2 }, /* 16 */ |
191 | /*expect*/ { 0,1,-1 }, |
192 | }, |
193 | #ifdef NO_WAIVER |
194 | /* <NO_WAIVER> */ /* returns 3 */ |
195 | { /*input.*/ { { 0x0041,0x00A1,0x0000 }, 2 }, /* 17 */ |
196 | /*expect*/ { 0,1,-1 }, |
197 | }, |
198 | #else |
199 | /* XXX U00A1 is valid -> /x8f/xa2/xc4 in JIS X 0212 */ |
200 | { /*input.*/ { { 0x0041,0x00A1,0x0000 }, 2 }, /* 17 */ |
201 | /*expect*/ { 0,1,3 }, |
202 | }, |
203 | #endif |
204 | { /*input.*/ { { 0x0041,0xFF71,0x0000 }, 2 }, /* 18 */ |
205 | /*expect*/ { 0,1,2 }, |
206 | }, |
207 | { /*input.*/ { { 0x0041,0x3042,0x0000 }, 2 }, /* 19 */ |
208 | /*expect*/ { 0,1,3 }, |
209 | }, |
210 | { /*input.*/ { { 0x0041,0x3044,0x0000 }, 2 }, /* 20 */ |
211 | /*expect*/ { 0,1,3 }, |
212 | }, |
213 | { .is_last = 1 } |
214 | } |
215 | }, |
216 | { |
217 | { Twcswidth, TST_LOC_end } |
218 | } |
219 | }; |
220 | |