ICU functional for scan and snippets.
[idzebra-moved-to-github.git] / test / api / t17.c
index 84b1ae3..b945f3d 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: t17.c,v 1.1 2007-10-29 13:43:58 adam Exp $
+/* $Id: t17.c,v 1.9 2007-12-13 11:09:20 adam Exp $
    Copyright (C) 1995-2007
    Index Data ApS
 
@@ -21,19 +21,27 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 */
 
 /** \file
-    \brief tests unicode enabled searching (index_types)
+    \brief tests ICU enabled maps
 */
 #include <yaz/test.h>
 #include "testlib.h"
 
+#define char_ae "\xc3\xa6"
+#define char_AE "\xc3\x86"
+#define char_oslash "\xc3\xb8"
+#define char_Oslash "\xc3\x98"
+
 const char *myrec[] = {
-        "<gils>\n<title>My title</title>\n</gils>\n",
-        "<gils>\n<title>My x title</title>\n</gils>\n",
-        "<gils>\n<title>My title x</title>\n</gils>\n" ,
+        "<gils>\n<title>My computer</title>\n</gils>\n",
+        "<gils>\n<title>My x computer</title>\n</gils>\n",
+        "<gils>\n<title>My computer x</title>\n</gils>\n" ,
+
+        "<gils>\n<title>" char_ae "</title>\n</gils>\n" ,
        0} ;
        
 static void tst(int argc, char **argv)
 {
+#if YAZ_HAVE_ICU
     ZebraService zs = tl_start_up("zebra17.cfg", argc, argv);
     ZebraHandle zh = zebra_open(zs, 0);
 
@@ -42,16 +50,34 @@ static void tst(int argc, char **argv)
     /* simple term */
     YAZ_CHECK(tl_query(zh, "@attr 1=title notfound", 0));
 
-    /* we should get 3 hits. But 0 for now */
-#if 0
+    YAZ_CHECK(tl_query(zh, "@attr 1=title computer", 3));
+    YAZ_CHECK(tl_query(zh, "@attr 1=title .computer.", 3));
+
+    YAZ_CHECK(tl_query(zh, "@attr 1=title x", 2));
+
+    YAZ_CHECK(tl_query(zh, "@attr 1=title my", 3));
 
-    YAZ_CHECK(tl_query(zh, "@attr 1=title title", 3));
-#else
-    YAZ_CHECK(tl_query(zh, "@attr 1=title title", 0));
+    YAZ_CHECK(tl_query(zh, "@attr 1=title mY", 3));
+
+    YAZ_CHECK(tl_query(zh, char_ae, 1));
+#if 0
+    YAZ_CHECK(tl_query(zh, char_AE, 1));
 #endif
 
+    /* phrase search */
+    YAZ_CHECK(tl_query(zh, "@attr 1=title {my computer}", 2));
+    YAZ_CHECK(tl_query(zh, "@attr 1=title @attr 6=1 {my computer}", 2));
+    YAZ_CHECK(tl_query(zh, "@attr 1=title {computer x}", 1));
+
+    /* complete-subfield search */
+    YAZ_CHECK(tl_query(zh, "@attr 1=title @attr 6=2 {my computer}", 1));
+    YAZ_CHECK(tl_query(zh, "@attr 1=title @attr 6=2 {my}", 0));
+
+    /* scan */
+    
     YAZ_CHECK(tl_close_down(zh, zs));
+#endif
 }
 
 TL_MAIN