summaryrefslogtreecommitdiffstats
path: root/searchlib/src/tests/query/querybuilder_test.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'searchlib/src/tests/query/querybuilder_test.cpp')
-rw-r--r--searchlib/src/tests/query/querybuilder_test.cpp32
1 files changed, 29 insertions, 3 deletions
diff --git a/searchlib/src/tests/query/querybuilder_test.cpp b/searchlib/src/tests/query/querybuilder_test.cpp
index 2ea566027c4..5b410879fa0 100644
--- a/searchlib/src/tests/query/querybuilder_test.cpp
+++ b/searchlib/src/tests/query/querybuilder_test.cpp
@@ -7,6 +7,8 @@
#include <vespa/searchlib/query/tree/querybuilder.h>
#include <vespa/searchlib/query/tree/simplequery.h>
#include <vespa/searchlib/query/tree/stackdumpcreator.h>
+#include <vespa/searchlib/query/query_term_decoder.h>
+#include <vespa/searchlib/query/query_term_simple.h>
#include <vespa/vespalib/testkit/test_kit.h>
#include <vespa/log/log.h>
@@ -115,7 +117,7 @@ Node::UP createQueryTree() {
builder.add_true_node();
builder.add_false_node();
}
- builder.addFuzzyTerm(str[5], view[5], id[5], weight[5]);
+ builder.addFuzzyTerm(str[5], view[5], id[5], weight[5], 3, 1);
}
Node::UP node = builder.build();
ASSERT_TRUE(node.get());
@@ -311,6 +313,8 @@ void checkQueryTreeTypes(Node *node) {
auto* fuzzy_term = as_node<FuzzyTerm>(and_node->getChildren()[12]);
EXPECT_TRUE(checkTerm(fuzzy_term, str[5], view[5], id[5], weight[5]));
+ EXPECT_EQUAL(3u, fuzzy_term->getMaxEditDistance());
+ EXPECT_EQUAL(1u, fuzzy_term->getPrefixLength());
}
struct AbstractTypes {
@@ -434,8 +438,9 @@ struct MyNearestNeighborTerm : NearestNeighborTerm {
struct MyTrue : TrueQueryNode {};
struct MyFalse : FalseQueryNode {};
struct MyFuzzyTerm : FuzzyTerm {
- MyFuzzyTerm(const Type &t, const string &f, int32_t i, Weight w)
- : FuzzyTerm(t, f, i, w) {
+ MyFuzzyTerm(const Type &t, const string &f, int32_t i, Weight w,
+ uint32_t m, uint32_t p)
+ : FuzzyTerm(t, f, i, w, m, p) {
}
};
@@ -578,6 +583,7 @@ TEST("require that Query Tree Creator Can Replicate Queries") {
TEST("require that Query Tree Creator Can Create Queries From Stack") {
Node::UP node = createQueryTree<MyQueryNodeTypes>();
string stackDump = StackDumpCreator::create(*node);
+
SimpleQueryStackDumpIterator iterator(stackDump);
Node::UP new_node = QueryTreeCreator<SimpleQueryNodeTypes>::create(iterator);
@@ -618,6 +624,26 @@ TEST("require that All Range Syntaxes Work") {
EXPECT_TRUE(range2 == range_term->getTerm());
}
+TEST("require that fuzzy node can be created") {
+ QueryBuilder<SimpleQueryNodeTypes> builder;
+ builder.addFuzzyTerm("term", "view", 0, Weight(0), 3, 1);
+ Node::UP node = builder.build();
+
+ string stackDump = StackDumpCreator::create(*node);
+ {
+ SimpleQueryStackDumpIterator iterator(stackDump);
+ Node::UP new_node = QueryTreeCreator<SimpleQueryNodeTypes>::create(iterator);
+ FuzzyTerm *fuzzy_node = as_node<FuzzyTerm>(new_node.get());
+ EXPECT_EQUAL(3u, fuzzy_node->getMaxEditDistance());
+ EXPECT_EQUAL(1u, fuzzy_node->getPrefixLength());
+ }
+ {
+ search::QueryTermSimple::UP queryTermSimple = search::QueryTermDecoder::decodeTerm(stackDump);
+ EXPECT_EQUAL(3u, queryTermSimple->getFuzzyMaxEditDistance());
+ EXPECT_EQUAL(1u, queryTermSimple->getFuzzyPrefixLength());
+ }
+}
+
TEST("require that empty intermediate node can be added") {
QueryBuilder<SimpleQueryNodeTypes> builder;
builder.addAnd(0);