-/* $Id: t17.c,v 1.3 2007-11-08 07:54:17 adam Exp $
+/* $Id: t17.c,v 1.11 2007-12-17 12:23:03 adam Exp $
Copyright (C) 1995-2007
Index Data ApS
#include <yaz/test.h>
#include "testlib.h"
+/* utf-8 sequences for some characters */
+#define char_ae "\xc3\xa6"
+#define char_AE "\xc3\x86"
+
+#define char_oslash "\xc3\xb8"
+#define char_Oslash "\xc3\x98"
+
+#define char_aring "\xc3\xa5"
+#define char_Aring "\xc3\x85"
+
+#define char_comb_ring_above "\xcc\x8a"
+
+#define char_aring1 "a" char_comb_ring_above
+#define char_Aring1 "A" char_comb_ring_above
+
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" ,
+ "<gils>\n<title>B" char_aring "d</title>\n</gils>\n" ,
0} ;
static void tst(int argc, char **argv)
{
-#if HAVE_ICU
+#if YAZ_HAVE_ICU
ZebraService zs = tl_start_up("zebra17.cfg", argc, argv);
ZebraHandle zh = zebra_open(zs, 0);
/* simple term */
YAZ_CHECK(tl_query(zh, "@attr 1=title notfound", 0));
- /* we should get 3 hits. But 0 for now */
-#if 1
- YAZ_CHECK(tl_query(zh, "@attr 1=title title", 3));
-#else
- YAZ_CHECK(tl_query(zh, "@attr 1=title title", 0));
-#endif
-
+ 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 mY", 3));
+
+ YAZ_CHECK(tl_query(zh, char_ae, 1));
+ YAZ_CHECK(tl_query(zh, char_AE, 1));
+
+ YAZ_CHECK(tl_query(zh, "b" char_aring "d", 1));
+ YAZ_CHECK(tl_query(zh, "B" char_Aring "D", 1));
+ YAZ_CHECK(tl_query(zh, "b" char_aring1 "d", 1));
+ YAZ_CHECK(tl_query(zh, "B" char_Aring1 "D", 1));
+
+ /* 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 */
+ { /* word search */
+ const char *ent[] = { char_ae, "B" char_aring "d", "computer",
+ "My", "x", 0 };
+ YAZ_CHECK(tl_scan(zh, "@attr 1=title 0", 1, 10, 1, 5, 1, ent));
+ }
+
+ { /* word search */
+ const char *ent[] = { "My", "x", 0 };
+ YAZ_CHECK(tl_scan(zh, "@attr 1=title cp", 1, 10, 1, 2, 1, ent));
+ }
+
+ { /* phrase search */
+ const char *ent[] = { char_ae, "B" char_aring "d", "My computer" };
+ YAZ_CHECK(tl_scan(zh, "@attr 1=title @attr 6=2 0", 1, 3, 1, 3, 0, ent));
+ }
+
+
YAZ_CHECK(tl_close_down(zh, zs));
#endif
}