Merge branch 'master' into yaz-744
[yaz-moved-to-github.git] / test / test_libstemmer.c
index e657050..6498ac4 100644 (file)
@@ -1,29 +1,31 @@
 /* This file is part of the YAZ toolkit.
- * Copyright (C) 1995-2011 Index Data
+ * Copyright (C) Index Data
  * See the file LICENSE for details.
  */
 #if HAVE_CONFIG_H
-#include <config.h>
+#include "config.h"
 #endif
 
 #include <stdlib.h>
 #include <stdio.h>
+#include <string.h>
 
-#include <yaz/stemmer.h>
 #include <yaz/test.h>
 
-int test_stemmer_stem(yaz_stemmer_p stemmer, const char* to_stem, const char *expected) 
+#if YAZ_HAVE_ICU
+#include <yaz/stemmer.h>
+
+int test_stemmer_stem(yaz_stemmer_p stemmer, const char* to_stem, const char *expected)
 {
     struct icu_buf_utf16 *src  = icu_buf_utf16_create(0);
     struct icu_buf_utf16 *dst  = icu_buf_utf16_create(0);
     struct icu_buf_utf8  *dst8 = icu_buf_utf8_create(0);
-
-    UErrorCode status; 
+    int rc = 0;
+    UErrorCode status;
     const char *result;
+
     icu_utf16_from_utf8_cstr(src, to_stem, &status);
-    yaz_stemmer_stem(stemmer, dst, src, &status); 
-    /* Assume fail */
-    int rc = 0;
+    yaz_stemmer_stem(stemmer, dst, src, &status);
     if (status == U_ZERO_ERROR) {
         icu_utf16_to_utf8(dst8, dst, &status);
         result = icu_buf_utf8_to_cstr(dst8);
@@ -36,35 +38,37 @@ int test_stemmer_stem(yaz_stemmer_p stemmer, const char* to_stem, const char *ex
 }
 
 
-
 static void tst(void)
 {
     UErrorCode status;
-    //== U_ZERO_ERROR; 
+    //== U_ZERO_ERROR;
     yaz_stemmer_p stemmer = yaz_stemmer_create("en", "porter", &status);
-    YAZ_CHECK(stemmer); 
+    YAZ_CHECK(stemmer);
 
     /* fail  */
-    YAZ_CHECK(test_stemmer_stem(stemmer, "beer", "water") == 0 ); 
+    YAZ_CHECK(test_stemmer_stem(stemmer, "beer", "water") == 0 );
 
     /* Same */
-    YAZ_CHECK(test_stemmer_stem(stemmer, "adadwwr", "adadwwr")); 
+    YAZ_CHECK(test_stemmer_stem(stemmer, "adadwwr", "adadwwr"));
 
     /* Remove S */
-    YAZ_CHECK(test_stemmer_stem(stemmer, "beers", "beer")); 
-    YAZ_CHECK(test_stemmer_stem(stemmer, "persons", "person")); 
+    YAZ_CHECK(test_stemmer_stem(stemmer, "beers", "beer"));
+    YAZ_CHECK(test_stemmer_stem(stemmer, "persons", "person"));
 
     /* Remove s and ing  */
-    YAZ_CHECK(test_stemmer_stem(stemmer, "runs", "run")); 
-    YAZ_CHECK(test_stemmer_stem(stemmer, "running", "run")); 
+    YAZ_CHECK(test_stemmer_stem(stemmer, "runs", "run"));
+    YAZ_CHECK(test_stemmer_stem(stemmer, "running", "run"));
 
     yaz_stemmer_destroy(stemmer);
 }
+#endif
 
 int main (int argc, char **argv)
 {
     YAZ_CHECK_INIT(argc, argv);
+#if YAZ_HAVE_ICU
     tst();
+#endif
     YAZ_CHECK_TERM;
 }