1 /* $Id: test_icu_I18N.c,v 1.2 2007-04-30 13:56:52 marc Exp $
2 Copyright (c) 2006-2007, Index Data.
4 This file is part of Pazpar2.
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
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
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
28 #include <yaz/timing.h>
39 void test_icu_I18N_casemap_en(int argc, char **argv)
45 NMEM nmem = nmem_create();
48 const char * src8 = "A ReD fOx hunTS sQUirriLs";
49 size_t src8_len = strlen(src8);
51 printf("original string: '%s' (%d)\n", src8, (int) src8_len);
54 dest8 = icu_casemap(nmem, buf, buf_cap, &dest8_len,
57 printf("icu_casemap 'en:l' '%s' (%d)\n", dest8, (int) dest8_len);
60 dest8 = icu_casemap(nmem, buf, buf_cap, &dest8_len,
63 printf("icu_casemap 'en:u' '%s' (%d)\n", dest8, (int) dest8_len);
66 dest8 = icu_casemap(nmem, buf, buf_cap, &dest8_len,
69 printf("icu_casemap 'en:f' '%s' (%d)\n", dest8, (int) dest8_len);
72 // some calling error needs investigation
73 dest8 = icu_casemap(nmem, buf, buf_cap, &dest8_len,
75 YAZ_CHECK(0 == dest8_len);
76 printf("icu_casemap 'en:t' '%s' (%d)\n", dest8, (int) dest8_len);
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,
84 printf("icu_casemap 'zz:l' '%s' (%d)\n", dest8, (int) dest8_len);
87 // shall fail - no buf buffer defined
88 dest8 = icu_casemap(nmem, 0, buf_cap, &dest8_len,
90 YAZ_CHECK(0 == dest8_len);
91 //printf("icu_casemap 'en:l' '%s' (%d)\n", dest8, (int) dest8_len);
93 // shall fail - no buf_cap defined
94 dest8 = icu_casemap(nmem, buf, 0, &dest8_len,
96 YAZ_CHECK(0 == dest8_len);
97 //printf("icu_casemap 'en:l' '%s' (%d)\n", dest8, (int) dest8_len);
99 // shall fail - no action 'x' defined
100 dest8 = icu_casemap(nmem, buf, buf_cap, &dest8_len,
102 YAZ_CHECK(0 == dest8_len);
103 //printf("icu_casemap 'en:x' '%s' (%d)\n", dest8, (int) dest8_len);
112 //YAZ_CHECK_EQ(0, 1);
115 void test_icu_I18N_casemap_da(int argc, char **argv)
118 size_t buf_cap = 128;
120 size_t dest8_len = 0;
121 NMEM nmem = nmem_create();
124 const char * src8 = "åh ÆbLE, øs fLØde i Åen efter bLåBærGRødeN";
125 size_t src8_len = strlen(src8);
127 printf("original string: '%s' (%d)\n", src8, (int) src8_len);
129 //these shall succeed
130 dest8 = icu_casemap(nmem, buf, buf_cap, &dest8_len,
132 YAZ_CHECK(dest8_len);
133 printf("icu_casemap 'da:l' '%s' (%d)\n", dest8, (int) dest8_len);
136 dest8 = icu_casemap(nmem, buf, buf_cap, &dest8_len,
138 YAZ_CHECK(dest8_len);
139 printf("icu_casemap 'da:u' '%s' (%d)\n", dest8, (int) dest8_len);
142 dest8 = icu_casemap(nmem, buf, buf_cap, &dest8_len,
144 YAZ_CHECK(dest8_len);
145 printf("icu_casemap 'da:f' '%s' (%d)\n", dest8, (int) dest8_len);
148 dest8 = icu_casemap(nmem, buf, buf_cap, &dest8_len,
150 YAZ_CHECK(dest8_len);
151 printf("icu_casemap 'da:t' '%s' (%d)\n", dest8, (int) dest8_len);
156 //YAZ_CHECK_EQ(0, 1);
159 void test_icu_I18N_casemap_de(int argc, char **argv)
162 size_t buf_cap = 128;
164 size_t dest8_len = 0;
165 NMEM nmem = nmem_create();
168 const char * src8 = "zWÖlf ärgerliche Würste rollen ÜBer die StRAße";
169 size_t src8_len = strlen(src8);
171 printf("original string: '%s' (%d)\n", src8, (int) src8_len);
173 //these shall succeed
174 dest8 = icu_casemap(nmem, buf, buf_cap, &dest8_len,
176 YAZ_CHECK(dest8_len);
177 printf("icu_casemap 'da:l' '%s' (%d)\n", dest8, (int) dest8_len);
180 dest8 = icu_casemap(nmem, buf, buf_cap, &dest8_len,
182 YAZ_CHECK(dest8_len);
183 printf("icu_casemap 'da:u' '%s' (%d)\n", dest8, (int) dest8_len);
186 dest8 = icu_casemap(nmem, buf, buf_cap, &dest8_len,
188 YAZ_CHECK(dest8_len);
189 printf("icu_casemap 'da:f' '%s' (%d)\n", dest8, (int) dest8_len);
192 dest8 = icu_casemap(nmem, buf, buf_cap, &dest8_len,
194 YAZ_CHECK(dest8_len);
195 printf("icu_casemap 'da:t' '%s' (%d)\n", dest8, (int) dest8_len);
200 //YAZ_CHECK_EQ(0, 1);
203 void test_icu_I18N_casemap_el(int argc, char **argv)
209 size_t buf_cap = 128;
211 size_t dest8_len = 0;
212 NMEM nmem = nmem_create();
215 const char * src8 = ""
216 size_t src8_len = strlen(src8);
218 printf("original string: '%s' (%d)\n", src8, (int) src8_len);
220 //these shall succeed
221 dest8 = icu_casemap(nmem, buf, buf_cap, &dest8_len,
223 YAZ_CHECK(dest8_len);
224 printf("icu_casemap 'el:l' '%s' (%d)\n", dest8, (int) dest8_len);
227 dest8 = icu_casemap(nmem, buf, buf_cap, &dest8_len,
229 YAZ_CHECK(dest8_len);
230 printf("icu_casemap 'el:u' '%s' (%d)\n", dest8, (int) dest8_len);
233 dest8 = icu_casemap(nmem, buf, buf_cap, &dest8_len,
235 YAZ_CHECK(dest8_len);
236 printf("icu_casemap 'el:f' '%s' (%d)\n", dest8, (int) dest8_len);
239 dest8 = icu_casemap(nmem, buf, buf_cap, &dest8_len,
241 YAZ_CHECK(dest8_len);
242 printf("icu_casemap 'el:t' '%s' (%d)\n", dest8, (int) dest8_len);
247 //YAZ_CHECK_EQ(0, 1);
255 int main(int argc, char **argv)
258 YAZ_CHECK_INIT(argc, argv);
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);
270 printf("ICU unit tests omitted.\n"
271 "Please install libicu36-dev and icu-doc or similar\n".);
285 * indent-tabs-mode: nil
287 * vim: shiftwidth=4 tabstop=8 expandtab