Add test for empty term in RPN to Solr conversion
[yaz-moved-to-github.git] / test / test_rpn2solr.c
index e3c3add..62c2d51 100644 (file)
@@ -1,5 +1,5 @@
 /* This file is part of the YAZ toolkit.
- * Copyright (C) 1995-2013 Index Data
+ * Copyright (C) Index Data
  * See the file LICENSE for details.
  */
 #if HAVE_CONFIG_H
@@ -57,6 +57,7 @@ static void tst1(void)
     YAZ_CHECK(compare(ct, "@or a @and b c", "a OR (b AND c)"));
     YAZ_CHECK(compare(ct, "abc", "abc"));
     YAZ_CHECK(compare(ct, "\"a b c\"", "\"a b c\""));
+    YAZ_CHECK(compare(ct, "\"\"", "\"\""));
     YAZ_CHECK(compare(ct, "@not a b", "a AND NOT b"));
     YAZ_CHECK(compare(ct, "@and @or a b c", "(a OR b) AND c"));
     YAZ_CHECK(compare(ct, "@and a b", "a AND b"));
@@ -64,7 +65,7 @@ static void tst1(void)
     YAZ_CHECK(compare(ct, "@or a @and b c", "a OR (b AND c)"));
     YAZ_CHECK(compare(ct, "@or @and a b @and c d", "(a AND b) OR (c AND d)"));
     YAZ_CHECK(compare(ct, "@or @or a b @or c d", "(a OR b) OR (c OR d)"));
-    YAZ_CHECK(compare(ct, "@or @or @or a b @or c d @or e f", "(a OR b) OR (c OR d)"));
+    YAZ_CHECK(compare(ct, "@or @or @or a b @or c d @or e f", "((a OR b) OR (c OR d)) OR (e OR f)"));
     YAZ_CHECK(compare(ct, "@and @and a b @and c d", "(a AND b) AND (c AND d)"));
     YAZ_CHECK(compare(ct, "@attr 1=field abc", "field:abc"));
     YAZ_CHECK(compare(ct, "@attr 1=field \"a b c\"", "field:\"a b c\""));
@@ -78,8 +79,8 @@ static void tst1(void)
 
     /* Truncation */
     YAZ_CHECK(compare(ct, "@attr 5=1 water", "water*"));
-    YAZ_CHECK(compare(ct, "@attr 5=2 water", 0));
-    YAZ_CHECK(compare(ct, "@attr 5=3 water", 0));
+    YAZ_CHECK(compare(ct, "@attr 5=2 water", "*water"));
+    YAZ_CHECK(compare(ct, "@attr 5=3 water", "*water*"));
     YAZ_CHECK(compare(ct, "@attr 5=100 water", "water"));
     YAZ_CHECK(compare(ct, "@attr 5=101 water", 0));
     YAZ_CHECK(compare(ct, "@attr 5=104 w#ter", "w?ter"));