Fixed compilation of test test_icu_I18N (syntax error).
[pazpar2-moved-to-github.git] / src / test_icu_I18N.c
1 /* $Id: test_icu_I18N.c,v 1.3 2007-05-01 07:58:43 adam Exp $
2    Copyright (c) 2006-2007, Index Data.
3
4 This file is part of Pazpar2.
5
6 Pazpar2 is free software; you can redistribute it and/or modify it under
7 the terms of the GNU General Public License as published by the Free
8 Software Foundation; either version 2, or (at your option) any later
9 version.
10
11 Pazpar2 is distributed in the hope that it will be useful, but WITHOUT ANY
12 WARRANTY; without even the implied warranty of MERCHANTABILITY or
13 FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
14 for more details.
15
16 You should have received a copy of the GNU General Public License
17 along with Pazpar2; see the file LICENSE.  If not, write to the
18 Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
19 02111-1307, USA.
20  */
21
22 #if HAVE_CONFIG_H
23 #include "cconfig.h"
24 #endif
25
26 #define USE_TIMING 0
27 #if USE_TIMING
28 #include <yaz/timing.h>
29 #endif
30
31 #include <yaz/test.h>
32
33
34
35 #ifdef HAVE_ICU
36 #include "icu_I18N.h"
37 #include "string.h"
38
39 void test_icu_I18N_casemap_en(int argc, char **argv)
40 {
41
42     size_t buf_cap = 128;
43     char buf[buf_cap];
44     size_t dest8_len = 0;
45     NMEM nmem = nmem_create();
46     char * dest8 = 0;
47
48     const char * src8 =  "A ReD fOx hunTS sQUirriLs";
49     size_t src8_len = strlen(src8);
50     
51     printf("original string:   '%s' (%d)\n", src8, (int) src8_len);
52
53     //these shall succeed
54     dest8 = icu_casemap(nmem, buf, buf_cap, &dest8_len,
55                         src8, "en", 'l');
56     YAZ_CHECK(dest8_len);
57     printf("icu_casemap 'en:l' '%s' (%d)\n", dest8, (int) dest8_len);
58
59
60     dest8 = icu_casemap(nmem, buf, buf_cap, &dest8_len,
61                         src8, "en", 'u');
62     YAZ_CHECK(dest8_len);
63     printf("icu_casemap 'en:u' '%s' (%d)\n", dest8, (int) dest8_len);
64
65
66     dest8 = icu_casemap(nmem, buf, buf_cap, &dest8_len,
67                         src8, "en", 'f');
68     YAZ_CHECK(dest8_len);
69     printf("icu_casemap 'en:f' '%s' (%d)\n", dest8, (int) dest8_len);
70
71
72     // some calling error needs investigation
73     dest8 = icu_casemap(nmem, buf, buf_cap, &dest8_len,
74                         src8, "en", 't');
75     YAZ_CHECK(0 == dest8_len);
76     printf("icu_casemap 'en:t' '%s' (%d)\n", dest8, (int) dest8_len);
77
78
79     // attention: does not fail even if no locale 'xy_zz' defined
80     // it seems to default to english locale
81     dest8 = icu_casemap(nmem, buf, buf_cap, &dest8_len,
82                         src8, "zz_abc", 'l');
83     YAZ_CHECK(dest8_len);
84     printf("icu_casemap 'zz:l' '%s' (%d)\n", dest8, (int) dest8_len);
85
86
87     // shall fail - no buf buffer defined
88     dest8 = icu_casemap(nmem, 0, buf_cap, &dest8_len,
89                         src8, "en", 'l');
90     YAZ_CHECK(0 == dest8_len);
91     //printf("icu_casemap 'en:l' '%s' (%d)\n", dest8, (int) dest8_len);
92
93     // shall fail - no buf_cap  defined
94     dest8 = icu_casemap(nmem, buf, 0, &dest8_len,
95                         src8, "en", 'l');
96     YAZ_CHECK(0 == dest8_len);
97     //printf("icu_casemap 'en:l' '%s' (%d)\n", dest8, (int) dest8_len);
98
99     // shall fail - no action 'x' defined
100     dest8 = icu_casemap(nmem, buf, buf_cap, &dest8_len,
101                         src8, "en", 'x');
102     YAZ_CHECK(0 == dest8_len);
103     //printf("icu_casemap 'en:x' '%s' (%d)\n", dest8, (int) dest8_len);
104
105
106
107
108
109     nmem_destroy(nmem);
110
111     YAZ_CHECK(0 == 0);
112     //YAZ_CHECK_EQ(0, 1);
113 }
114
115 void test_icu_I18N_casemap_da(int argc, char **argv)
116 {
117
118     size_t buf_cap = 128;
119     char buf[buf_cap];
120     size_t dest8_len = 0;
121     NMEM nmem = nmem_create();
122     char * dest8 = 0;
123
124     const char * src8 =  "åh ÆbLE, øs fLØde i Åen efter bLåBærGRødeN";
125     size_t src8_len = strlen(src8);
126     
127     printf("original string:   '%s' (%d)\n", src8, (int) src8_len);
128
129     //these shall succeed
130     dest8 = icu_casemap(nmem, buf, buf_cap, &dest8_len,
131                         src8, "da", 'l');
132     YAZ_CHECK(dest8_len);
133     printf("icu_casemap 'da:l' '%s' (%d)\n", dest8, (int) dest8_len);
134
135
136     dest8 = icu_casemap(nmem, buf, buf_cap, &dest8_len,
137                         src8, "da", 'u');
138     YAZ_CHECK(dest8_len);
139     printf("icu_casemap 'da:u' '%s' (%d)\n", dest8, (int) dest8_len);
140
141
142     dest8 = icu_casemap(nmem, buf, buf_cap, &dest8_len,
143                         src8, "da", 'f');
144     YAZ_CHECK(dest8_len);
145     printf("icu_casemap 'da:f' '%s' (%d)\n", dest8, (int) dest8_len);
146
147
148     dest8 = icu_casemap(nmem, buf, buf_cap, &dest8_len,
149                         src8, "da", 't');
150     YAZ_CHECK(dest8_len);
151     printf("icu_casemap 'da:t' '%s' (%d)\n", dest8, (int) dest8_len);
152
153     nmem_destroy(nmem);
154
155     YAZ_CHECK(0 == 0);
156     //YAZ_CHECK_EQ(0, 1);
157 }
158
159 void test_icu_I18N_casemap_de(int argc, char **argv)
160 {
161
162     size_t buf_cap = 128;
163     char buf[buf_cap];
164     size_t dest8_len = 0;
165     NMEM nmem = nmem_create();
166     char * dest8 = 0;
167
168     const char * src8 = "zWÖlf ärgerliche Würste rollen ÜBer die StRAße";
169     size_t src8_len = strlen(src8);
170     
171     printf("original string:   '%s' (%d)\n", src8, (int) src8_len);
172
173     //these shall succeed
174     dest8 = icu_casemap(nmem, buf, buf_cap, &dest8_len,
175                         src8, "da", 'l');
176     YAZ_CHECK(dest8_len);
177     printf("icu_casemap 'da:l' '%s' (%d)\n", dest8, (int) dest8_len);
178
179
180     dest8 = icu_casemap(nmem, buf, buf_cap, &dest8_len,
181                         src8, "da", 'u');
182     YAZ_CHECK(dest8_len);
183     printf("icu_casemap 'da:u' '%s' (%d)\n", dest8, (int) dest8_len);
184
185
186     dest8 = icu_casemap(nmem, buf, buf_cap, &dest8_len,
187                         src8, "da", 'f');
188     YAZ_CHECK(dest8_len);
189     printf("icu_casemap 'da:f' '%s' (%d)\n", dest8, (int) dest8_len);
190
191
192     dest8 = icu_casemap(nmem, buf, buf_cap, &dest8_len,
193                         src8, "da", 't');
194     YAZ_CHECK(dest8_len);
195     printf("icu_casemap 'da:t' '%s' (%d)\n", dest8, (int) dest8_len);
196
197     nmem_destroy(nmem);
198
199     YAZ_CHECK(0 == 0);
200     //YAZ_CHECK_EQ(0, 1);
201 }
202
203 void test_icu_I18N_casemap_el(int argc, char **argv)
204 {
205
206
207 #if 0
208
209     size_t buf_cap = 128;
210     char buf[buf_cap];
211     size_t dest8_len = 0;
212     NMEM nmem = nmem_create();
213     char * dest8 = 0;
214
215     const char * src8 = ""
216     size_t src8_len = strlen(src8);
217     
218     printf("original string:   '%s' (%d)\n", src8, (int) src8_len);
219
220     //these shall succeed
221     dest8 = icu_casemap(nmem, buf, buf_cap, &dest8_len,
222                         src8, "el", 'l');
223     YAZ_CHECK(dest8_len);
224     printf("icu_casemap 'el:l' '%s' (%d)\n", dest8, (int) dest8_len);
225
226
227     dest8 = icu_casemap(nmem, buf, buf_cap, &dest8_len,
228                         src8, "el", 'u');
229     YAZ_CHECK(dest8_len);
230     printf("icu_casemap 'el:u' '%s' (%d)\n", dest8, (int) dest8_len);
231
232
233     dest8 = icu_casemap(nmem, buf, buf_cap, &dest8_len,
234                         src8, "el", 'f');
235     YAZ_CHECK(dest8_len);
236     printf("icu_casemap 'el:f' '%s' (%d)\n", dest8, (int) dest8_len);
237
238
239     dest8 = icu_casemap(nmem, buf, buf_cap, &dest8_len,
240                         src8, "el", 't');
241     YAZ_CHECK(dest8_len);
242     printf("icu_casemap 'el:t' '%s' (%d)\n", dest8, (int) dest8_len);
243
244     nmem_destroy(nmem);
245
246     YAZ_CHECK(0 == 0);
247     //YAZ_CHECK_EQ(0, 1);
248 #endif 
249
250 }
251
252
253 #endif    
254
255 int main(int argc, char **argv)
256 {
257
258     YAZ_CHECK_INIT(argc, argv); 
259     YAZ_CHECK_LOG();
260
261 #ifdef HAVE_ICU
262
263     test_icu_I18N_casemap_en(argc, argv);
264     test_icu_I18N_casemap_da(argc, argv); 
265     test_icu_I18N_casemap_de(argc, argv); 
266     test_icu_I18N_casemap_el(argc, argv); 
267  
268 #else
269
270     printf("ICU unit tests omitted.\n"
271            "Please install libicu36-dev and icu-doc or similar\n");
272     YAZ_CHECK(0 == 0);
273
274 #endif    
275    
276     YAZ_CHECK_TERM;
277 }
278
279
280
281
282 /*
283  * Local variables:
284  * c-basic-offset: 4
285  * indent-tabs-mode: nil
286  * End:
287  * vim: shiftwidth=4 tabstop=8 expandtab
288  */