summaryrefslogtreecommitdiffstats
path: root/vsm/src/tests/searcher
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2019-01-14 11:27:51 +0000
committerHenning Baldersheim <balder@yahoo-inc.com>2019-01-14 13:39:03 +0000
commit87a1a5e68e554245e4fdece8025e401b633b8551 (patch)
tree0727ef9c567bfc65a9e7c501ba9fc6cc69f4be24 /vsm/src/tests/searcher
parent2ec9429eb01e6dfdc801d588904723aa12cdf631 (diff)
Also handle bool queries in streaming search.
Diffstat (limited to 'vsm/src/tests/searcher')
-rw-r--r--vsm/src/tests/searcher/searcher.cpp26
1 files changed, 24 insertions, 2 deletions
diff --git a/vsm/src/tests/searcher/searcher.cpp b/vsm/src/tests/searcher/searcher.cpp
index a83c4e6b348..f5f7508a256 100644
--- a/vsm/src/tests/searcher/searcher.cpp
+++ b/vsm/src/tests/searcher/searcher.cpp
@@ -6,6 +6,7 @@
#include <vespa/vsm/searcher/floatfieldsearcher.h>
#include <vespa/vsm/searcher/futf8strchrfieldsearcher.h>
#include <vespa/vsm/searcher/intfieldsearcher.h>
+#include <vespa/vsm/searcher/boolfieldsearcher.h>
#include <vespa/vsm/searcher/utf8flexiblestringfieldsearcher.h>
#include <vespa/vsm/searcher/utf8exactstringfieldsearcher.h>
#include <vespa/vsm/searcher/utf8substringsearcher.h>
@@ -113,7 +114,7 @@ SnippetModifierSetup::SnippetModifierSetup(const StringList & terms)
{
searcher->prepare(query.qtl, buf);
}
-SnippetModifierSetup::~SnippetModifierSetup() {}
+SnippetModifierSetup::~SnippetModifierSetup() = default;
// helper functions
ArrayFieldValue getFieldValue(const StringList &fv);
@@ -153,6 +154,13 @@ void assertInt(IntFieldSearcher & fs, const std::string &term, int64_t field, bo
assertInt(fs, StringList().add(term), field, BoolList().add(exp));
}
+void assertBool(BoolFieldSearcher & fs, const StringList &query, bool field, const BoolList &exp) {
+ assertNumeric(fs, query, BoolFieldValue(field), exp);
+}
+void assertBool(BoolFieldSearcher & fs, const std::string &term, bool field, bool exp) {
+ assertBool(fs, StringList().add(term), field, BoolList().add(exp));
+}
+
void assertInt(IntFieldSearcher & fs, const StringList &query, const LongList &field, const HitsList &exp) {
assertSearch(fs, query, getFieldValue(field), exp);
}
@@ -595,9 +603,23 @@ TEST("utf8 flexible searcher"){
EXPECT_TRUE(testStringFieldInfo(fs));
}
+TEST("bool search") {
+ BoolFieldSearcher fs(0);
+ TEST_DO(assertBool(fs, "true", true, true));
+ TEST_DO(assertBool(fs, "true", false, false));
+ TEST_DO(assertBool(fs, "1", true, true));
+ TEST_DO(assertBool(fs, "1", false, false));
+ TEST_DO(assertBool(fs, "false", true, false));
+ TEST_DO(assertBool(fs, "false", false, true));
+ TEST_DO(assertBool(fs, "0", true, false));
+ TEST_DO(assertBool(fs, "0", false, true));
+ TEST_DO(assertBool(fs, StringList().add("true").add("false").add("true"), true, BoolList().add(true).add(false).add(true)));
+ TEST_DO(assertBool(fs, StringList().add("true").add("false").add("true"), false, BoolList().add(false).add(true).add(false)));
+}
+
TEST("integer search")
{
- IntFieldSearcher fs;
+ IntFieldSearcher fs(0);
TEST_DO(assertInt(fs, "10", 10, true));
TEST_DO(assertInt(fs, "9", 10, false));
TEST_DO(assertInt(fs, ">9", 10, true));