aboutsummaryrefslogtreecommitdiffstats
path: root/searchlib/src/tests/query
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@oath.com>2018-06-05 17:58:08 +0200
committerHenning Baldersheim <balder@oath.com>2018-06-05 17:58:08 +0200
commitefe186a79713e14bc351ab774abda541d18328cf (patch)
tree152e8d77e1070a18fa70dee5327a2da67f33ce65 /searchlib/src/tests/query
parentd8a156e1d0aeac5c2d674b3b7b479d43d77ab22a (diff)
Follow up om comments from @geirst
Diffstat (limited to 'searchlib/src/tests/query')
-rw-r--r--searchlib/src/tests/query/query-old.cpp74
1 files changed, 39 insertions, 35 deletions
diff --git a/searchlib/src/tests/query/query-old.cpp b/searchlib/src/tests/query/query-old.cpp
index b475540bfc3..2cab4447935 100644
--- a/searchlib/src/tests/query/query-old.cpp
+++ b/searchlib/src/tests/query/query-old.cpp
@@ -651,7 +651,13 @@ TEST("require that we do not break the stack on bad query") {
EXPECT_FALSE(term.isValid());
}
-TEST("testPhraseEvaluate") {
+namespace {
+ void verifyQueryTermNode(const vespalib::string & index, const QueryNode *node) {
+ EXPECT_TRUE(dynamic_cast<const QueryTerm *>(node) != nullptr);
+ EXPECT_EQUAL(index, node->getIndex());
+ }
+}
+TEST("testSameElementEvaluate") {
QueryBuilder<SimpleQueryNodeTypes> builder;
builder.addSameElement(3, "field");
{
@@ -663,16 +669,14 @@ TEST("testPhraseEvaluate") {
vespalib::string stackDump = StackDumpCreator::create(*node);
QueryNodeResultFactory empty;
Query q(empty, stackDump);
- SameElementQueryNode * p = dynamic_cast<SameElementQueryNode *>(&q.getRoot());
- EXPECT_TRUE(p != nullptr);
- EXPECT_EQUAL("field", p->getIndex());
- EXPECT_EQUAL(3u, p->size());
- EXPECT_TRUE(dynamic_cast<const QueryTerm *>((*p)[0].get()) != nullptr);
- EXPECT_EQUAL("field.f1", (*p)[0]->getIndex());
- EXPECT_TRUE(dynamic_cast<const QueryTerm *>((*p)[1].get()) != nullptr);
- EXPECT_EQUAL("field.f2", (*p)[1]->getIndex());
- EXPECT_TRUE(dynamic_cast<const QueryTerm *>((*p)[2].get()) != nullptr);
- EXPECT_EQUAL("field.f3", (*p)[2]->getIndex());
+ SameElementQueryNode * sameElem = dynamic_cast<SameElementQueryNode *>(&q.getRoot());
+ EXPECT_TRUE(sameElem != nullptr);
+ EXPECT_EQUAL("field", sameElem->getIndex());
+ EXPECT_EQUAL(3u, sameElem->size());
+ verifyQueryTermNode("field.f1", (*sameElem)[0].get());
+ verifyQueryTermNode("field.f2", (*sameElem)[1].get());
+ verifyQueryTermNode("field.f3", (*sameElem)[2].get());
+
QueryTermList terms;
q.getLeafs(terms);
EXPECT_EQUAL(3u, terms.size());
@@ -681,48 +685,48 @@ TEST("testPhraseEvaluate") {
}
// field 0
- terms[0]->add(0, 0, 0, 1);
- terms[0]->add(0, 0, 1, 1);
- terms[0]->add(0, 0, 2, 1);
- terms[0]->add(0, 0, 3, 1);
- terms[0]->add(0, 0, 4, 1);
- terms[0]->add(0, 0, 5, 1);
-
- terms[1]->add(0, 1, 0, 1);
- terms[1]->add(0, 1, 1, 1);
- terms[1]->add(0, 1, 2, 1);
- terms[1]->add(0, 1, 4, 1);
- terms[1]->add(0, 1, 5, 1);
- terms[1]->add(0, 1, 6, 1);
-
- terms[2]->add(0, 2, 0, 1);
- terms[2]->add(0, 2, 2, 1);
- terms[2]->add(0, 2, 4, 1);
- terms[2]->add(0, 2, 5, 1);
- terms[2]->add(0, 2, 6, 1);
+ terms[0]->add(1, 0, 0, 10);
+ terms[0]->add(2, 0, 1, 20);
+ terms[0]->add(3, 0, 2, 30);
+ terms[0]->add(4, 0, 3, 40);
+ terms[0]->add(5, 0, 4, 50);
+ terms[0]->add(6, 0, 5, 60);
+
+ terms[1]->add(7, 1, 0, 70);
+ terms[1]->add(8, 1, 1, 80);
+ terms[1]->add(9, 1, 2, 90);
+ terms[1]->add(10, 1, 4, 100);
+ terms[1]->add(11, 1, 5, 110);
+ terms[1]->add(12, 1, 6, 120);
+
+ terms[2]->add(13, 2, 0, 130);
+ terms[2]->add(14, 2, 2, 140);
+ terms[2]->add(15, 2, 4, 150);
+ terms[2]->add(16, 2, 5, 160);
+ terms[2]->add(17, 2, 6, 170);
HitList hits;
- p->evaluateHits(hits);
+ sameElem->evaluateHits(hits);
EXPECT_EQUAL(4u, hits.size());
EXPECT_EQUAL(0u, hits[0].wordpos());
EXPECT_EQUAL(2u, hits[0].context());
EXPECT_EQUAL(0u, hits[0].elemId());
- EXPECT_EQUAL(1, hits[0].weight());
+ EXPECT_EQUAL(130, hits[0].weight());
EXPECT_EQUAL(0u, hits[1].wordpos());
EXPECT_EQUAL(2u, hits[1].context());
EXPECT_EQUAL(2u, hits[1].elemId());
- EXPECT_EQUAL(1, hits[1].weight());
+ EXPECT_EQUAL(140, hits[1].weight());
EXPECT_EQUAL(0u, hits[2].wordpos());
EXPECT_EQUAL(2u, hits[2].context());
EXPECT_EQUAL(4u, hits[2].elemId());
- EXPECT_EQUAL(1, hits[2].weight());
+ EXPECT_EQUAL(150, hits[2].weight());
EXPECT_EQUAL(0u, hits[3].wordpos());
EXPECT_EQUAL(2u, hits[3].context());
EXPECT_EQUAL(5u, hits[3].elemId());
- EXPECT_EQUAL(1, hits[3].weight());
+ EXPECT_EQUAL(160, hits[3].weight());
}