-/* $Id: test_icu_I18N.c,v 1.1 2007-04-27 14:31:15 marc Exp $
+/* $Id: test_icu_I18N.c,v 1.3 2007-05-01 07:58:43 adam Exp $
Copyright (c) 2006-2007, Index Data.
This file is part of Pazpar2.
#ifdef HAVE_ICU
+#include "icu_I18N.h"
+#include "string.h"
+
+void test_icu_I18N_casemap_en(int argc, char **argv)
+{
+
+ size_t buf_cap = 128;
+ char buf[buf_cap];
+ size_t dest8_len = 0;
+ NMEM nmem = nmem_create();
+ char * dest8 = 0;
+
+ const char * src8 = "A ReD fOx hunTS sQUirriLs";
+ size_t src8_len = strlen(src8);
+
+ printf("original string: '%s' (%d)\n", src8, (int) src8_len);
+
+ //these shall succeed
+ dest8 = icu_casemap(nmem, buf, buf_cap, &dest8_len,
+ src8, "en", 'l');
+ YAZ_CHECK(dest8_len);
+ printf("icu_casemap 'en:l' '%s' (%d)\n", dest8, (int) dest8_len);
+
+
+ dest8 = icu_casemap(nmem, buf, buf_cap, &dest8_len,
+ src8, "en", 'u');
+ YAZ_CHECK(dest8_len);
+ printf("icu_casemap 'en:u' '%s' (%d)\n", dest8, (int) dest8_len);
+
+
+ dest8 = icu_casemap(nmem, buf, buf_cap, &dest8_len,
+ src8, "en", 'f');
+ YAZ_CHECK(dest8_len);
+ printf("icu_casemap 'en:f' '%s' (%d)\n", dest8, (int) dest8_len);
+
+
+ // some calling error needs investigation
+ dest8 = icu_casemap(nmem, buf, buf_cap, &dest8_len,
+ src8, "en", 't');
+ YAZ_CHECK(0 == dest8_len);
+ printf("icu_casemap 'en:t' '%s' (%d)\n", dest8, (int) dest8_len);
+
+
+ // attention: does not fail even if no locale 'xy_zz' defined
+ // it seems to default to english locale
+ dest8 = icu_casemap(nmem, buf, buf_cap, &dest8_len,
+ src8, "zz_abc", 'l');
+ YAZ_CHECK(dest8_len);
+ printf("icu_casemap 'zz:l' '%s' (%d)\n", dest8, (int) dest8_len);
+
+
+ // shall fail - no buf buffer defined
+ dest8 = icu_casemap(nmem, 0, buf_cap, &dest8_len,
+ src8, "en", 'l');
+ YAZ_CHECK(0 == dest8_len);
+ //printf("icu_casemap 'en:l' '%s' (%d)\n", dest8, (int) dest8_len);
+
+ // shall fail - no buf_cap defined
+ dest8 = icu_casemap(nmem, buf, 0, &dest8_len,
+ src8, "en", 'l');
+ YAZ_CHECK(0 == dest8_len);
+ //printf("icu_casemap 'en:l' '%s' (%d)\n", dest8, (int) dest8_len);
+
+ // shall fail - no action 'x' defined
+ dest8 = icu_casemap(nmem, buf, buf_cap, &dest8_len,
+ src8, "en", 'x');
+ YAZ_CHECK(0 == dest8_len);
+ //printf("icu_casemap 'en:x' '%s' (%d)\n", dest8, (int) dest8_len);
+
+
+
+
+
+ nmem_destroy(nmem);
+
+ YAZ_CHECK(0 == 0);
+ //YAZ_CHECK_EQ(0, 1);
+}
+
+void test_icu_I18N_casemap_da(int argc, char **argv)
+{
+
+ size_t buf_cap = 128;
+ char buf[buf_cap];
+ size_t dest8_len = 0;
+ NMEM nmem = nmem_create();
+ char * dest8 = 0;
+
+ const char * src8 = "åh ÆbLE, øs fLØde i Åen efter bLåBærGRødeN";
+ size_t src8_len = strlen(src8);
+
+ printf("original string: '%s' (%d)\n", src8, (int) src8_len);
+
+ //these shall succeed
+ dest8 = icu_casemap(nmem, buf, buf_cap, &dest8_len,
+ src8, "da", 'l');
+ YAZ_CHECK(dest8_len);
+ printf("icu_casemap 'da:l' '%s' (%d)\n", dest8, (int) dest8_len);
+
+
+ dest8 = icu_casemap(nmem, buf, buf_cap, &dest8_len,
+ src8, "da", 'u');
+ YAZ_CHECK(dest8_len);
+ printf("icu_casemap 'da:u' '%s' (%d)\n", dest8, (int) dest8_len);
+
+
+ dest8 = icu_casemap(nmem, buf, buf_cap, &dest8_len,
+ src8, "da", 'f');
+ YAZ_CHECK(dest8_len);
+ printf("icu_casemap 'da:f' '%s' (%d)\n", dest8, (int) dest8_len);
+ dest8 = icu_casemap(nmem, buf, buf_cap, &dest8_len,
+ src8, "da", 't');
+ YAZ_CHECK(dest8_len);
+ printf("icu_casemap 'da:t' '%s' (%d)\n", dest8, (int) dest8_len);
-void test_icu_I18N(int argc, char **argv)
+ nmem_destroy(nmem);
+
+ YAZ_CHECK(0 == 0);
+ //YAZ_CHECK_EQ(0, 1);
+}
+
+void test_icu_I18N_casemap_de(int argc, char **argv)
+{
+
+ size_t buf_cap = 128;
+ char buf[buf_cap];
+ size_t dest8_len = 0;
+ NMEM nmem = nmem_create();
+ char * dest8 = 0;
+
+ const char * src8 = "zWÖlf ärgerliche Würste rollen ÜBer die StRAße";
+ size_t src8_len = strlen(src8);
+
+ printf("original string: '%s' (%d)\n", src8, (int) src8_len);
+
+ //these shall succeed
+ dest8 = icu_casemap(nmem, buf, buf_cap, &dest8_len,
+ src8, "da", 'l');
+ YAZ_CHECK(dest8_len);
+ printf("icu_casemap 'da:l' '%s' (%d)\n", dest8, (int) dest8_len);
+
+
+ dest8 = icu_casemap(nmem, buf, buf_cap, &dest8_len,
+ src8, "da", 'u');
+ YAZ_CHECK(dest8_len);
+ printf("icu_casemap 'da:u' '%s' (%d)\n", dest8, (int) dest8_len);
+
+
+ dest8 = icu_casemap(nmem, buf, buf_cap, &dest8_len,
+ src8, "da", 'f');
+ YAZ_CHECK(dest8_len);
+ printf("icu_casemap 'da:f' '%s' (%d)\n", dest8, (int) dest8_len);
+
+
+ dest8 = icu_casemap(nmem, buf, buf_cap, &dest8_len,
+ src8, "da", 't');
+ YAZ_CHECK(dest8_len);
+ printf("icu_casemap 'da:t' '%s' (%d)\n", dest8, (int) dest8_len);
+
+ nmem_destroy(nmem);
+
+ YAZ_CHECK(0 == 0);
+ //YAZ_CHECK_EQ(0, 1);
+}
+
+void test_icu_I18N_casemap_el(int argc, char **argv)
{
- YAZ_CHECK(0 == 0);
- //YAZ_CHECK_EQ(0, 1);
+
+#if 0
+
+ size_t buf_cap = 128;
+ char buf[buf_cap];
+ size_t dest8_len = 0;
+ NMEM nmem = nmem_create();
+ char * dest8 = 0;
+
+ const char * src8 = ""
+ size_t src8_len = strlen(src8);
+
+ printf("original string: '%s' (%d)\n", src8, (int) src8_len);
+
+ //these shall succeed
+ dest8 = icu_casemap(nmem, buf, buf_cap, &dest8_len,
+ src8, "el", 'l');
+ YAZ_CHECK(dest8_len);
+ printf("icu_casemap 'el:l' '%s' (%d)\n", dest8, (int) dest8_len);
+
+
+ dest8 = icu_casemap(nmem, buf, buf_cap, &dest8_len,
+ src8, "el", 'u');
+ YAZ_CHECK(dest8_len);
+ printf("icu_casemap 'el:u' '%s' (%d)\n", dest8, (int) dest8_len);
+
+
+ dest8 = icu_casemap(nmem, buf, buf_cap, &dest8_len,
+ src8, "el", 'f');
+ YAZ_CHECK(dest8_len);
+ printf("icu_casemap 'el:f' '%s' (%d)\n", dest8, (int) dest8_len);
+
+
+ dest8 = icu_casemap(nmem, buf, buf_cap, &dest8_len,
+ src8, "el", 't');
+ YAZ_CHECK(dest8_len);
+ printf("icu_casemap 'el:t' '%s' (%d)\n", dest8, (int) dest8_len);
+
+ nmem_destroy(nmem);
+
+ YAZ_CHECK(0 == 0);
+ //YAZ_CHECK_EQ(0, 1);
+#endif
+
}
+
#endif
int main(int argc, char **argv)
#ifdef HAVE_ICU
- test_icu_I18N(argc, argv);
+ test_icu_I18N_casemap_en(argc, argv);
+ test_icu_I18N_casemap_da(argc, argv);
+ test_icu_I18N_casemap_de(argc, argv);
+ test_icu_I18N_casemap_el(argc, argv);
#else
+ printf("ICU unit tests omitted.\n"
+ "Please install libicu36-dev and icu-doc or similar\n");
YAZ_CHECK(0 == 0);
#endif