diff options
Diffstat (limited to 'searchlib/src/tests')
10 files changed, 126 insertions, 170 deletions
diff --git a/searchlib/src/tests/attribute/searchable/attribute_searchable_adapter_test.cpp b/searchlib/src/tests/attribute/searchable/attribute_searchable_adapter_test.cpp index 04b16a73029..29ef4e9e6ef 100644 --- a/searchlib/src/tests/attribute/searchable/attribute_searchable_adapter_test.cpp +++ b/searchlib/src/tests/attribute/searchable/attribute_searchable_adapter_test.cpp @@ -425,11 +425,11 @@ TEST("require that attribute dot product works") { bool fast_search = ((i & 0x1) != 0); bool strict = ((i & 0x2) != 0); MyAttributeManager attribute_manager = make_weighted_string_attribute_manager(fast_search); - SimpleDotProduct node(field, 0, Weight(1)); - node.append(Node::UP(new SimpleStringTerm("foo", "", 0, Weight(1)))); - node.append(Node::UP(new SimpleStringTerm("bar", "", 0, Weight(1)))); - node.append(Node::UP(new SimpleStringTerm("baz", "", 0, Weight(1)))); - node.append(Node::UP(new SimpleStringTerm("fox", "", 0, Weight(1)))); + SimpleDotProduct node(4, field, 0, Weight(1)); + node.addTerm("foo", Weight(1)); + node.addTerm("bar", Weight(1)); + node.addTerm("baz", Weight(1)); + node.addTerm("fox", Weight(1)); Result result = do_search(attribute_manager, node, strict); ASSERT_EQUAL(5u, result.hits.size()); if (fast_search) { @@ -457,11 +457,11 @@ TEST("require that attribute dot product can produce no hits") { bool fast_search = ((i & 0x1) != 0); bool strict = ((i & 0x2) != 0); MyAttributeManager attribute_manager = make_weighted_string_attribute_manager(fast_search); - SimpleDotProduct node(field, 0, Weight(1)); - node.append(Node::UP(new SimpleStringTerm("notfoo", "", 0, Weight(1)))); - node.append(Node::UP(new SimpleStringTerm("notbar", "", 0, Weight(1)))); - node.append(Node::UP(new SimpleStringTerm("notbaz", "", 0, Weight(1)))); - node.append(Node::UP(new SimpleStringTerm("notfox", "", 0, Weight(1)))); + SimpleDotProduct node(4, field, 0, Weight(1)); + node.addTerm("notfoo", Weight(1)); + node.addTerm("notbar", Weight(1)); + node.addTerm("notbaz", Weight(1)); + node.addTerm("notfox", Weight(1)); Result result = do_search(attribute_manager, node, strict); ASSERT_EQUAL(0u, result.hits.size()); EXPECT_EQUAL(0u, result.est_hits); @@ -525,11 +525,11 @@ TEST("require that attribute parallel wand works") { bool fast_search = ((i & 0x1) != 0); bool strict = ((i & 0x2) != 0); MyAttributeManager attribute_manager = make_weighted_string_attribute_manager(fast_search); - SimpleWandTerm node(field, 0, Weight(1), 10, 500, 1.5); - node.append(Node::UP(new SimpleStringTerm("foo", "", 0, Weight(1)))); - node.append(Node::UP(new SimpleStringTerm("bar", "", 0, Weight(1)))); - node.append(Node::UP(new SimpleStringTerm("baz", "", 0, Weight(1)))); - node.append(Node::UP(new SimpleStringTerm("fox", "", 0, Weight(1)))); + SimpleWandTerm node(4, field, 0, Weight(1), 10, 500, 1.5); + node.addTerm("foo", Weight(1)); + node.addTerm("bar", Weight(1)); + node.addTerm("baz", Weight(1)); + node.addTerm("fox", Weight(1)); Result result = do_search(attribute_manager, node, strict); EXPECT_FALSE(result.est_empty); if (fast_search) { @@ -561,11 +561,11 @@ TEST("require that attribute weighted set term works") { bool fast_search = ((i & 0x1) != 0); bool strict = ((i & 0x2) != 0); MyAttributeManager attribute_manager = make_weighted_string_attribute_manager(fast_search); - SimpleWeightedSetTerm node(field, 0, Weight(1)); - node.append(Node::UP(new SimpleStringTerm("foo", "", 0, Weight(10)))); - node.append(Node::UP(new SimpleStringTerm("bar", "", 0, Weight(20)))); - node.append(Node::UP(new SimpleStringTerm("baz", "", 0, Weight(30)))); - node.append(Node::UP(new SimpleStringTerm("fox", "", 0, Weight(40)))); + SimpleWeightedSetTerm node(4, field, 0, Weight(1)); + node.addTerm("foo", Weight(10)); + node.addTerm("bar", Weight(20)); + node.addTerm("baz", Weight(30)); + node.addTerm("fox", Weight(40)); Result result = do_search(attribute_manager, node, strict); EXPECT_FALSE(result.est_empty); ASSERT_EQUAL(5u, result.hits.size()); diff --git a/searchlib/src/tests/attribute/searchable/attribute_weighted_set_blueprint_test.cpp b/searchlib/src/tests/attribute/searchable/attribute_weighted_set_blueprint_test.cpp index fe5014b6607..328cdcf663f 100644 --- a/searchlib/src/tests/attribute/searchable/attribute_weighted_set_blueprint_test.cpp +++ b/searchlib/src/tests/attribute/searchable/attribute_weighted_set_blueprint_test.cpp @@ -89,9 +89,9 @@ struct WS { } Node::UP createNode() const { - SimpleWeightedSetTerm *node = new SimpleWeightedSetTerm("view", 0, Weight(0)); + SimpleWeightedSetTerm *node = new SimpleWeightedSetTerm(tokens.size(), "view", 0, Weight(0)); for (size_t i = 0; i < tokens.size(); ++i) { - node->append(Node::UP(new SimpleStringTerm(tokens[i].first, "view", 0, Weight(tokens[i].second)))); + node->addTerm(tokens[i].first, Weight(tokens[i].second)); } return Node::UP(node); } @@ -138,42 +138,30 @@ struct WS { } // namespace <unnamed> -class Test : public vespalib::TestApp -{ -public: - int Main() override; -}; - -int -Test::Main() -{ - TEST_INIT("attribute_weighted_set_test"); - { - MockAttributeManager manager; - setupAttributeManager(manager); - AttributeBlueprintFactory adapter; - - FakeResult expect = FakeResult() - .doc(3).elem(0).weight(30).pos(0) - .doc(5).elem(0).weight(50).pos(0) - .doc(7).elem(0).weight(70).pos(0); - WS ws = WS(manager).add("7", 70).add("5", 50).add("3", 30); - - EXPECT_TRUE(ws.isGenericSearch(adapter, "integer", true)); - EXPECT_TRUE(!ws.isGenericSearch(adapter, "integer", false)); - EXPECT_TRUE(ws.isGenericSearch(adapter, "string", true)); - EXPECT_TRUE(!ws.isGenericSearch(adapter, "string", false)); - EXPECT_TRUE(ws.isGenericSearch(adapter, "multi", true)); - EXPECT_TRUE(ws.isGenericSearch(adapter, "multi", false)); - - EXPECT_EQUAL(expect, ws.search(adapter, "integer", true)); - EXPECT_EQUAL(expect, ws.search(adapter, "integer", false)); - EXPECT_EQUAL(expect, ws.search(adapter, "string", true)); - EXPECT_EQUAL(expect, ws.search(adapter, "string", false)); - EXPECT_EQUAL(expect, ws.search(adapter, "multi", true)); - EXPECT_EQUAL(expect, ws.search(adapter, "multi", false)); - } - TEST_DONE(); +TEST("attribute_weighted_set_test") { + MockAttributeManager manager; + setupAttributeManager(manager); + AttributeBlueprintFactory adapter; + + FakeResult expect = FakeResult() + .doc(3).elem(0).weight(30).pos(0) + .doc(5).elem(0).weight(50).pos(0) + .doc(7).elem(0).weight(70).pos(0); + WS ws = WS(manager).add("7", 70).add("5", 50).add("3", 30); + + EXPECT_TRUE(ws.isGenericSearch(adapter, "integer", true)); + EXPECT_TRUE(!ws.isGenericSearch(adapter, "integer", false)); + EXPECT_TRUE(ws.isGenericSearch(adapter, "string", true)); + EXPECT_TRUE(!ws.isGenericSearch(adapter, "string", false)); + EXPECT_TRUE(ws.isGenericSearch(adapter, "multi", true)); + EXPECT_TRUE(ws.isGenericSearch(adapter, "multi", false)); + + EXPECT_EQUAL(expect, ws.search(adapter, "integer", true)); + EXPECT_EQUAL(expect, ws.search(adapter, "integer", false)); + EXPECT_EQUAL(expect, ws.search(adapter, "string", true)); + EXPECT_EQUAL(expect, ws.search(adapter, "string", false)); + EXPECT_EQUAL(expect, ws.search(adapter, "multi", true)); + EXPECT_EQUAL(expect, ws.search(adapter, "multi", false)); } -TEST_APPHOOK(Test); +TEST_MAIN() { TEST_RUN_ALL(); } diff --git a/searchlib/src/tests/query/customtypevisitor_test.cpp b/searchlib/src/tests/query/customtypevisitor_test.cpp index 3f7d57b7aa4..d0812a00ebf 100644 --- a/searchlib/src/tests/query/customtypevisitor_test.cpp +++ b/searchlib/src/tests/query/customtypevisitor_test.cpp @@ -15,18 +15,6 @@ using namespace search::query; namespace { -class Test : public vespalib::TestApp { - const char *current_state; - virtual void DumpState(bool) { - fprintf(stderr, "%s: ERROR: in %s\n", GetName(), current_state); - } - - template <class T> void requireThatNodeIsVisited(); - -public: - int Main() override; -}; - template <class Base> struct InitTerm : Base { InitTerm() : Base(typename Base::Type(), "view", 0, Weight(0)) {} @@ -49,9 +37,9 @@ struct MyStringTerm : InitTerm<StringTerm> {}; struct MySubstrTerm : InitTerm<SubstringTerm> {}; struct MySuffixTerm : InitTerm<SuffixTerm> {}; struct MyWeakAnd : WeakAnd { MyWeakAnd() : WeakAnd(1234, "view") {} }; -struct MyWeightedSetTerm : WeightedSetTerm { MyWeightedSetTerm() : WeightedSetTerm("view", 0, Weight(42)) {} }; -struct MyDotProduct : DotProduct { MyDotProduct() : DotProduct("view", 0, Weight(42)) {} }; -struct MyWandTerm : WandTerm { MyWandTerm() : WandTerm("view", 0, Weight(42), 57, 67, 77.7) {} }; +struct MyWeightedSetTerm : WeightedSetTerm { MyWeightedSetTerm() : WeightedSetTerm(0, "view", 0, Weight(42)) {} }; +struct MyDotProduct : DotProduct { MyDotProduct() : DotProduct(0, "view", 0, Weight(42)) {} }; +struct MyWandTerm : WandTerm { MyWandTerm() : WandTerm(0, "view", 0, Weight(42), 57, 67, 77.7) {} }; struct MyPredicateQuery : InitTerm<PredicateQuery> {}; struct MyRegExpTerm : InitTerm<RegExpTerm> {}; struct MyNearestNeighborTerm : NearestNeighborTerm {}; @@ -119,7 +107,7 @@ public: }; template <class T> -void Test::requireThatNodeIsVisited() { +void requireThatNodeIsVisited() { MyCustomVisitor visitor; Node::UP query(new T); visitor.isVisited<T>() = false; @@ -127,37 +115,28 @@ void Test::requireThatNodeIsVisited() { ASSERT_TRUE(visitor.isVisited<T>()); } -#define TEST_CALL(func) \ - current_state = #func; \ - func(); - -int -Test::Main() -{ - TEST_INIT("customtypevisitor_test"); - - TEST_CALL(requireThatNodeIsVisited<MyAnd>); - TEST_CALL(requireThatNodeIsVisited<MyAndNot>); - TEST_CALL(requireThatNodeIsVisited<MyNear>); - TEST_CALL(requireThatNodeIsVisited<MyONear>); - TEST_CALL(requireThatNodeIsVisited<MyOr>); - TEST_CALL(requireThatNodeIsVisited<MyPhrase>); - TEST_CALL(requireThatNodeIsVisited<MySameElement>); - TEST_CALL(requireThatNodeIsVisited<MyRangeTerm>); - TEST_CALL(requireThatNodeIsVisited<MyRank>); - TEST_CALL(requireThatNodeIsVisited<MyNumberTerm>); - TEST_CALL(requireThatNodeIsVisited<MyPrefixTerm>); - TEST_CALL(requireThatNodeIsVisited<MyStringTerm>); - TEST_CALL(requireThatNodeIsVisited<MySubstrTerm>); - TEST_CALL(requireThatNodeIsVisited<MySuffixTerm>); - TEST_CALL(requireThatNodeIsVisited<MyWeightedSetTerm>); - TEST_CALL(requireThatNodeIsVisited<MyDotProduct>); - TEST_CALL(requireThatNodeIsVisited<MyWandTerm>); - TEST_CALL(requireThatNodeIsVisited<MyPredicateQuery>); - TEST_CALL(requireThatNodeIsVisited<MyRegExpTerm>); - - TEST_DONE(); +TEST("customtypevisitor_test") { + + requireThatNodeIsVisited<MyAnd>(); + requireThatNodeIsVisited<MyAndNot>(); + requireThatNodeIsVisited<MyNear>(); + requireThatNodeIsVisited<MyONear>(); + requireThatNodeIsVisited<MyOr>(); + requireThatNodeIsVisited<MyPhrase>(); + requireThatNodeIsVisited<MySameElement>(); + requireThatNodeIsVisited<MyRangeTerm>(); + requireThatNodeIsVisited<MyRank>(); + requireThatNodeIsVisited<MyNumberTerm>(); + requireThatNodeIsVisited<MyPrefixTerm>(); + requireThatNodeIsVisited<MyStringTerm>(); + requireThatNodeIsVisited<MySubstrTerm>(); + requireThatNodeIsVisited<MySuffixTerm>(); + requireThatNodeIsVisited<MyWeightedSetTerm>(); + requireThatNodeIsVisited<MyDotProduct>(); + requireThatNodeIsVisited<MyWandTerm>(); + requireThatNodeIsVisited<MyPredicateQuery>(); + requireThatNodeIsVisited<MyRegExpTerm>(); } } // namespace -TEST_APPHOOK(Test); +TEST_MAIN() { TEST_RUN_ALL(); }
\ No newline at end of file diff --git a/searchlib/src/tests/query/query_visitor_test.cpp b/searchlib/src/tests/query/query_visitor_test.cpp index 946ad17352d..ef255ad6878 100644 --- a/searchlib/src/tests/query/query_visitor_test.cpp +++ b/searchlib/src/tests/query/query_visitor_test.cpp @@ -15,25 +15,6 @@ using namespace search::query; namespace { -class Test : public vespalib::TestApp { - void requireThatAllNodesCanBeVisited(); - - template <class T> void checkVisit(T *node); - -public: - int Main() override; -}; - -int -Test::Main() -{ - TEST_INIT("query_visitor_test"); - - TEST_DO(requireThatAllNodesCanBeVisited()); - - TEST_DONE(); -} - class MyVisitor : public QueryVisitor { public: @@ -69,7 +50,7 @@ public: }; template <class T> -void Test::checkVisit(T *node) { +void checkVisit(T *node) { Node::UP query(node); MyVisitor visitor; visitor.isVisited<T>() = false; @@ -77,7 +58,7 @@ void Test::checkVisit(T *node) { ASSERT_TRUE(visitor.isVisited<T>()); } -void Test::requireThatAllNodesCanBeVisited() { +TEST("requireThatAllNodesCanBeVisited") { checkVisit<And>(new SimpleAnd); checkVisit<AndNot>(new SimpleAndNot); checkVisit<Near>(new SimpleNear(0)); @@ -85,9 +66,9 @@ void Test::requireThatAllNodesCanBeVisited() { checkVisit<Or>(new SimpleOr); checkVisit<Phrase>(new SimplePhrase("field", 0, Weight(42))); checkVisit<SameElement>(new SimpleSameElement("field")); - checkVisit<WeightedSetTerm>(new SimpleWeightedSetTerm("field", 0, Weight(42))); - checkVisit<DotProduct>(new SimpleDotProduct("field", 0, Weight(42))); - checkVisit<WandTerm>(new SimpleWandTerm("field", 0, Weight(42), 57, 67, 77.7)); + checkVisit<WeightedSetTerm>(new SimpleWeightedSetTerm(0, "field", 0, Weight(42))); + checkVisit<DotProduct>(new SimpleDotProduct(0, "field", 0, Weight(42))); + checkVisit<WandTerm>(new SimpleWandTerm(0, "field", 0, Weight(42), 57, 67, 77.7)); checkVisit<Rank>(new SimpleRank); checkVisit<NumberTerm>(new SimpleNumberTerm("0.42", "field", 0, Weight(0))); const Location location(Point{10, 10}, 20, 0); @@ -104,4 +85,4 @@ void Test::requireThatAllNodesCanBeVisited() { } // namespace -TEST_APPHOOK(Test); +TEST_MAIN() { TEST_RUN_ALL(); } diff --git a/searchlib/src/tests/query/querybuilder_test.cpp b/searchlib/src/tests/query/querybuilder_test.cpp index 055d245e420..67b45d43406 100644 --- a/searchlib/src/tests/query/querybuilder_test.cpp +++ b/searchlib/src/tests/query/querybuilder_test.cpp @@ -90,18 +90,17 @@ Node::UP createQueryTree() { builder.addStringTerm(str[4], view[4], id[4], weight[4]); builder.addStringTerm(str[5], view[5], id[5], weight[5]); } - builder.addPredicateQuery(getPredicateQueryTerm(), - view[3], id[3], weight[3]); - builder.addDotProduct(3, view[2], id[2], weight[2]); + builder.addPredicateQuery(getPredicateQueryTerm(), view[3], id[3], weight[3]); { - builder.addStringTerm(str[3], view[3], id[3], weight[3]); - builder.addStringTerm(str[4], view[4], id[4], weight[4]); - builder.addStringTerm(str[5], view[5], id[5], weight[5]); + auto & n = builder.addDotProduct(3, view[2], id[2], weight[2]); + n.addTerm(str[3], weight[3]); + n.addTerm(str[4], weight[4]); + n.addTerm(str[5], weight[5]); } - builder.addWandTerm(2, view[0], id[0], weight[0], 57, 67, 77.7); { - builder.addStringTerm(str[1], view[1], id[1], weight[1]); - builder.addStringTerm(str[2], view[2], id[2], weight[2]); + auto & n = builder.addWandTerm(2, view[0], id[0], weight[0], 57, 67, 77.7); + n.addTerm(str[1], weight[1]); + n.addTerm(str[2], weight[2]); } builder.addRegExpTerm(str[5], view[5], id[5], weight[5]); builder.addSameElement(3, view[4]); @@ -246,23 +245,33 @@ void checkQueryTreeTypes(Node *node) { EXPECT_TRUE(checkTerm(predicateQuery, getPredicateQueryTerm(), view[3], id[3], weight[3])); auto* dotProduct = as_node<DotProduct>(and_node->getChildren()[6]); - EXPECT_EQUAL(3u, dotProduct->getChildren().size()); - string_term = as_node<StringTerm>(dotProduct->getChildren()[0]); - EXPECT_TRUE(checkTerm(string_term, str[3], view[3], id[3], weight[3])); - string_term = as_node<StringTerm>(dotProduct->getChildren()[1]); - EXPECT_TRUE(checkTerm(string_term, str[4], view[4], id[4], weight[4])); - string_term = as_node<StringTerm>(dotProduct->getChildren()[2]); - EXPECT_TRUE(checkTerm(string_term, str[5], view[5], id[5], weight[5])); + EXPECT_EQUAL(3u, dotProduct->getNumTerms()); + + { + const auto &w1 = dotProduct->getAsString(0); + EXPECT_EQUAL(w1.first, str[3]); + EXPECT_TRUE(w1.second == weight[3]); + const auto &w2 = dotProduct->getAsString(1); + EXPECT_EQUAL(w2.first, str[4]); + EXPECT_TRUE(w2.second == weight[4]); + const auto &w3 = dotProduct->getAsString(2); + EXPECT_EQUAL(w3.first, str[5]); + EXPECT_TRUE(w3.second == weight[5]); + } auto* wandTerm = as_node<WandTerm>(and_node->getChildren()[7]); EXPECT_EQUAL(57u, wandTerm->getTargetNumHits()); EXPECT_EQUAL(67, wandTerm->getScoreThreshold()); EXPECT_EQUAL(77.7, wandTerm->getThresholdBoostFactor()); - EXPECT_EQUAL(2u, wandTerm->getChildren().size()); - string_term = as_node<StringTerm>(wandTerm->getChildren()[0]); - EXPECT_TRUE(checkTerm(string_term, str[1], view[1], id[1], weight[1])); - string_term = as_node<StringTerm>(wandTerm->getChildren()[1]); - EXPECT_TRUE(checkTerm(string_term, str[2], view[2], id[2], weight[2])); + EXPECT_EQUAL(2u, wandTerm->getNumTerms()); + { + const auto &w1 = wandTerm->getAsString(0); + EXPECT_EQUAL(w1.first, str[1]); + EXPECT_TRUE(w1.second == weight[1]); + const auto &w2 = wandTerm->getAsString(1); + EXPECT_EQUAL(w2.first, str[2]); + EXPECT_TRUE(w2.second == weight[2]); + } auto* regexp_term = as_node<RegExpTerm>(and_node->getChildren()[8]); EXPECT_TRUE(checkTerm(regexp_term, str[5], view[5], id[5], weight[5])); @@ -336,15 +345,15 @@ struct MyPhrase : Phrase { MyPhrase(const string &f, int32_t i, Weight w) : Phra struct MySameElement : SameElement { MySameElement(const string &f) : SameElement(f) {}}; struct MyWeightedSetTerm : WeightedSetTerm { - MyWeightedSetTerm(const string &f, int32_t i, Weight w) : WeightedSetTerm(f, i, w) {} + MyWeightedSetTerm(uint32_t n, const string &f, int32_t i, Weight w) : WeightedSetTerm(n, f, i, w) {} }; struct MyDotProduct : DotProduct { - MyDotProduct(const string &f, int32_t i, Weight w) : DotProduct(f, i, w) {} + MyDotProduct(uint32_t n, const string &f, int32_t i, Weight w) : DotProduct(n, f, i, w) {} }; struct MyWandTerm : WandTerm { - MyWandTerm(const string &f, int32_t i, Weight w, uint32_t targetNumHits, + MyWandTerm(uint32_t n, const string &f, int32_t i, Weight w, uint32_t targetNumHits, int64_t scoreThreshold, double thresholdBoostFactor) - : WandTerm(f, i, w, targetNumHits, scoreThreshold, thresholdBoostFactor) {} + : WandTerm(n, f, i, w, targetNumHits, scoreThreshold, thresholdBoostFactor) {} }; struct MyRank : Rank {}; struct MyNumberTerm : NumberTerm { @@ -593,7 +602,7 @@ TEST("require that empty intermediate node can be added") { } TEST("control size of SimpleQueryStackDumpIterator") { - EXPECT_EQUAL(144u, sizeof(SimpleQueryStackDumpIterator)); + EXPECT_EQUAL(128u, sizeof(SimpleQueryStackDumpIterator)); } TEST("test query parsing error") { diff --git a/searchlib/src/tests/queryeval/dot_product/dot_product_test.cpp b/searchlib/src/tests/queryeval/dot_product/dot_product_test.cpp index 7414e8b10f2..a05dcc4c6ea 100644 --- a/searchlib/src/tests/queryeval/dot_product/dot_product_test.cpp +++ b/searchlib/src/tests/queryeval/dot_product/dot_product_test.cpp @@ -45,9 +45,9 @@ struct DP { } Node::UP createNode() const { - SimpleDotProduct *node = new SimpleDotProduct("view", 0, Weight(0)); + SimpleDotProduct *node = new SimpleDotProduct(tokens.size(), "view", 0, Weight(0)); for (size_t i = 0; i < tokens.size(); ++i) { - node->append(Node::UP(new SimpleStringTerm(tokens[i].first, "view", 0, Weight(tokens[i].second)))); + node->addTerm(tokens[i].first, Weight(tokens[i].second)); } return Node::UP(node); } diff --git a/searchlib/src/tests/queryeval/fake_searchable/fake_searchable_test.cpp b/searchlib/src/tests/queryeval/fake_searchable/fake_searchable_test.cpp index cbad6de25bb..167fc706f4d 100644 --- a/searchlib/src/tests/queryeval/fake_searchable/fake_searchable_test.cpp +++ b/searchlib/src/tests/queryeval/fake_searchable/fake_searchable_test.cpp @@ -156,9 +156,9 @@ TEST_F(FakeSearchableTest, require_that_weigheted_set_search_works) { source.addResult("fieldfoo", "friend3", FakeResult().doc(5)); - SimpleWeightedSetTerm weightedSet("fieldfoo", 1, w); - weightedSet.append(Node::UP(new SimpleStringTerm("friend1", "fieldfoo", 2, Weight(1)))); - weightedSet.append(Node::UP(new SimpleStringTerm("friend2", "fieldfoo", 3, Weight(2)))); + SimpleWeightedSetTerm weightedSet(2, "fieldfoo", 1, w); + weightedSet.addTerm("friend1", Weight(1)); + weightedSet.addTerm("friend2", Weight(2)); FieldSpecList fields; fields.add(FieldSpec("fieldfoo", 1, 1)); diff --git a/searchlib/src/tests/queryeval/getnodeweight/getnodeweight_test.cpp b/searchlib/src/tests/queryeval/getnodeweight/getnodeweight_test.cpp index 359a7f9c074..24253469dfc 100644 --- a/searchlib/src/tests/queryeval/getnodeweight/getnodeweight_test.cpp +++ b/searchlib/src/tests/queryeval/getnodeweight/getnodeweight_test.cpp @@ -34,9 +34,9 @@ TEST("test variations of getWeight") EXPECT_EQUAL(42, getWeight(SimpleStringTerm("foo", "bar", 1, Weight(42)))); EXPECT_EQUAL(42, getWeight(SimpleSubstringTerm("foo", "bar", 1, Weight(42)))); EXPECT_EQUAL(42, getWeight(SimpleSuffixTerm("foo", "bar", 1, Weight(42)))); - EXPECT_EQUAL(42, getWeight(SimpleWeightedSetTerm("bar", 1, Weight(42)))); - EXPECT_EQUAL(42, getWeight(SimpleDotProduct("bar", 1, Weight(42)))); - EXPECT_EQUAL(42, getWeight(SimpleWandTerm("bar", 1, Weight(42), 57, 67, 77.7))); + EXPECT_EQUAL(42, getWeight(SimpleWeightedSetTerm(0, "bar", 1, Weight(42)))); + EXPECT_EQUAL(42, getWeight(SimpleDotProduct(0, "bar", 1, Weight(42)))); + EXPECT_EQUAL(42, getWeight(SimpleWandTerm(0, "bar", 1, Weight(42), 57, 67, 77.7))); } TEST_MAIN() { TEST_RUN_ALL(); } diff --git a/searchlib/src/tests/queryeval/parallel_weak_and/parallel_weak_and_test.cpp b/searchlib/src/tests/queryeval/parallel_weak_and/parallel_weak_and_test.cpp index f2c02d02080..b820a96fab6 100644 --- a/searchlib/src/tests/queryeval/parallel_weak_and/parallel_weak_and_test.cpp +++ b/searchlib/src/tests/queryeval/parallel_weak_and/parallel_weak_and_test.cpp @@ -158,11 +158,10 @@ struct WandBlueprintSpec Node::UP createNode(uint32_t scoresToTrack = 100, score_t scoreThreshold = 0, double thresholdBoostFactor = 1) const { - SimpleWandTerm *node = new SimpleWandTerm("view", 0, Weight(0), + SimpleWandTerm *node = new SimpleWandTerm(tokens.size(), "view", 0, Weight(0), scoresToTrack, scoreThreshold, thresholdBoostFactor); for (size_t i = 0; i < tokens.size(); ++i) { - node->append(Node::UP(new SimpleStringTerm(tokens[i].first, "view", 0, - Weight(tokens[i].second)))); + node->addTerm(tokens[i].first, Weight(tokens[i].second)); } return Node::UP(node); } diff --git a/searchlib/src/tests/queryeval/weighted_set_term/weighted_set_term_test.cpp b/searchlib/src/tests/queryeval/weighted_set_term/weighted_set_term_test.cpp index 8514a221230..95553f68cbc 100644 --- a/searchlib/src/tests/queryeval/weighted_set_term/weighted_set_term_test.cpp +++ b/searchlib/src/tests/queryeval/weighted_set_term/weighted_set_term_test.cpp @@ -53,9 +53,9 @@ struct WS { } Node::UP createNode() const { - SimpleWeightedSetTerm *node = new SimpleWeightedSetTerm("view", 0, Weight(0)); + SimpleWeightedSetTerm *node = new SimpleWeightedSetTerm(tokens.size(), "view", 0, Weight(0)); for (size_t i = 0; i < tokens.size(); ++i) { - node->append(Node::UP(new SimpleStringTerm(tokens[i].first, "view", 0, Weight(tokens[i].second)))); + node->addTerm(tokens[i].first,Weight(tokens[i].second)); } return Node::UP(node); } |