aboutsummaryrefslogtreecommitdiffstats
path: root/searchlib/src/tests
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2017-09-19 21:51:54 +0200
committerGitHub <noreply@github.com>2017-09-19 21:51:54 +0200
commitd650e313d11cfe0f2f4ce07f5fc8cf616a264739 (patch)
treebdece4b85a956fe44701d6339241e15272459508 /searchlib/src/tests
parentc536a7dedb8257d9a56fb350bf24b796e26712e8 (diff)
Revert "Havardpe/reuse termwise vector in second phase"
Diffstat (limited to 'searchlib/src/tests')
-rw-r--r--searchlib/src/tests/features/item_raw_score/item_raw_score_test.cpp10
-rw-r--r--searchlib/src/tests/features/native_dot_product/native_dot_product_test.cpp16
-rw-r--r--searchlib/src/tests/features/raw_score/raw_score_test.cpp10
-rw-r--r--searchlib/src/tests/features/subqueries/subqueries_test.cpp10
-rw-r--r--searchlib/src/tests/fef/featureoverride/featureoverride.cpp3
-rw-r--r--searchlib/src/tests/fef/object_passing/object_passing_test.cpp4
-rw-r--r--searchlib/src/tests/fef/rank_program/rank_program_test.cpp7
-rw-r--r--searchlib/src/tests/fef/termfieldmodel/termfieldmodel_test.cpp35
-rw-r--r--searchlib/src/tests/ranksetup/ranksetup_test.cpp23
9 files changed, 31 insertions, 87 deletions
diff --git a/searchlib/src/tests/features/item_raw_score/item_raw_score_test.cpp b/searchlib/src/tests/features/item_raw_score/item_raw_score_test.cpp
index a954710f153..f407aea811b 100644
--- a/searchlib/src/tests/features/item_raw_score/item_raw_score_test.cpp
+++ b/searchlib/src/tests/features/item_raw_score/item_raw_score_test.cpp
@@ -67,14 +67,13 @@ struct SingleLabel : public Labels {
struct RankFixture : BlueprintFactoryFixture, IndexFixture {
QueryEnvironment queryEnv;
RankSetup rankSetup;
- MatchDataLayout mdl;
- MatchData::UP match_data;
RankProgram::UP rankProgram;
+ MatchDataLayout mdl;
std::vector<TermFieldHandle> fooHandles;
std::vector<TermFieldHandle> barHandles;
RankFixture(size_t fooCnt, size_t barCnt, const Labels &labels)
: queryEnv(&indexEnv), rankSetup(factory, indexEnv),
- mdl(), match_data(), rankProgram(), fooHandles(), barHandles()
+ rankProgram(), mdl(), fooHandles(), barHandles()
{
for (size_t i = 0; i < fooCnt; ++i) {
uint32_t fieldId = indexEnv.getFieldByName("foo")->id();
@@ -96,15 +95,14 @@ struct RankFixture : BlueprintFactoryFixture, IndexFixture {
rankSetup.setFirstPhaseRank(featureName);
rankSetup.setIgnoreDefaultRankFeatures(true);
ASSERT_TRUE(rankSetup.compile());
- match_data = mdl.createMatchData();
rankProgram = rankSetup.create_first_phase_program();
- rankProgram->setup(*match_data, queryEnv);
+ rankProgram->setup(mdl, queryEnv);
}
feature_t getScore(uint32_t docId) {
return Utils::getScoreFeature(*rankProgram, docId);
}
void setScore(TermFieldHandle handle, uint32_t docId, feature_t score) {
- match_data->resolveTermField(handle)->setRawScore(docId, score);
+ rankProgram->match_data().resolveTermField(handle)->setRawScore(docId, score);
}
void setFooScore(uint32_t i, uint32_t docId, feature_t score) {
ASSERT_LESS(i, fooHandles.size());
diff --git a/searchlib/src/tests/features/native_dot_product/native_dot_product_test.cpp b/searchlib/src/tests/features/native_dot_product/native_dot_product_test.cpp
index 1da912ccb3a..5ba7504f7d2 100644
--- a/searchlib/src/tests/features/native_dot_product/native_dot_product_test.cpp
+++ b/searchlib/src/tests/features/native_dot_product/native_dot_product_test.cpp
@@ -72,15 +72,14 @@ std::vector<uint32_t> vec(uint32_t w1, uint32_t w2, uint32_t w3) {
struct RankFixture : BlueprintFactoryFixture, IndexFixture {
QueryEnvironment queryEnv;
RankSetup rankSetup;
- MatchDataLayout mdl;
- MatchData::UP match_data;
RankProgram::UP rankProgram;
+ MatchDataLayout mdl;
std::vector<TermFieldHandle> fooHandles;
std::vector<TermFieldHandle> barHandles;
RankFixture(const std::vector<uint32_t> &fooWeights,
const std::vector<uint32_t> &barWeights)
: queryEnv(&indexEnv), rankSetup(factory, indexEnv),
- mdl(), match_data(), rankProgram(), fooHandles(), barHandles()
+ rankProgram(), mdl(), fooHandles(), barHandles()
{
for (size_t i = 0; i < fooWeights.size(); ++i) {
uint32_t fieldId = indexEnv.getFieldByName("foo")->id();
@@ -101,9 +100,8 @@ struct RankFixture : BlueprintFactoryFixture, IndexFixture {
rankSetup.setFirstPhaseRank(featureName);
rankSetup.setIgnoreDefaultRankFeatures(true);
ASSERT_TRUE(rankSetup.compile());
- match_data = mdl.createMatchData();
rankProgram = rankSetup.create_first_phase_program();
- rankProgram->setup(*match_data, queryEnv);
+ rankProgram->setup(mdl, queryEnv);
}
feature_t getScore(uint32_t docId) {
return Utils::getScoreFeature(*rankProgram, docId);
@@ -112,15 +110,15 @@ struct RankFixture : BlueprintFactoryFixture, IndexFixture {
ASSERT_LESS(i, fooHandles.size());
TermFieldMatchDataPosition pos;
pos.setElementWeight(index_weight);
- match_data->resolveTermField(fooHandles[i])->reset(docId);
- match_data->resolveTermField(fooHandles[i])->appendPosition(pos);
+ rankProgram->match_data().resolveTermField(fooHandles[i])->reset(docId);
+ rankProgram->match_data().resolveTermField(fooHandles[i])->appendPosition(pos);
}
void setBarWeight(uint32_t i, uint32_t docId, int32_t index_weight) {
ASSERT_LESS(i, barHandles.size());
TermFieldMatchDataPosition pos;
pos.setElementWeight(index_weight);
- match_data->resolveTermField(barHandles[i])->reset(docId);
- match_data->resolveTermField(barHandles[i])->appendPosition(pos);
+ rankProgram->match_data().resolveTermField(barHandles[i])->reset(docId);
+ rankProgram->match_data().resolveTermField(barHandles[i])->appendPosition(pos);
}
};
diff --git a/searchlib/src/tests/features/raw_score/raw_score_test.cpp b/searchlib/src/tests/features/raw_score/raw_score_test.cpp
index 4aad6c6896e..52587c0d8f9 100644
--- a/searchlib/src/tests/features/raw_score/raw_score_test.cpp
+++ b/searchlib/src/tests/features/raw_score/raw_score_test.cpp
@@ -45,14 +45,13 @@ struct FeatureDumpFixture : public IDumpFeatureVisitor {
struct RankFixture : BlueprintFactoryFixture, IndexFixture {
QueryEnvironment queryEnv;
RankSetup rankSetup;
- MatchDataLayout mdl;
- MatchData::UP match_data;
RankProgram::UP rankProgram;
+ MatchDataLayout mdl;
std::vector<TermFieldHandle> fooHandles;
std::vector<TermFieldHandle> barHandles;
RankFixture(size_t fooCnt, size_t barCnt)
: queryEnv(&indexEnv), rankSetup(factory, indexEnv),
- mdl(), match_data(), rankProgram(), fooHandles(), barHandles()
+ rankProgram(), mdl(), fooHandles(), barHandles()
{
for (size_t i = 0; i < fooCnt; ++i) {
uint32_t fieldId = indexEnv.getFieldByName("foo")->id();
@@ -71,15 +70,14 @@ struct RankFixture : BlueprintFactoryFixture, IndexFixture {
rankSetup.setFirstPhaseRank(featureName);
rankSetup.setIgnoreDefaultRankFeatures(true);
ASSERT_TRUE(rankSetup.compile());
- match_data = mdl.createMatchData();
rankProgram = rankSetup.create_first_phase_program();
- rankProgram->setup(*match_data, queryEnv);
+ rankProgram->setup(mdl, queryEnv);
}
feature_t getScore(uint32_t docId) {
return Utils::getScoreFeature(*rankProgram, docId);
}
void setScore(TermFieldHandle handle, uint32_t docId, feature_t score) {
- match_data->resolveTermField(handle)->setRawScore(docId, score);
+ rankProgram->match_data().resolveTermField(handle)->setRawScore(docId, score);
}
void setFooScore(uint32_t i, uint32_t docId, feature_t score) {
ASSERT_LESS(i, fooHandles.size());
diff --git a/searchlib/src/tests/features/subqueries/subqueries_test.cpp b/searchlib/src/tests/features/subqueries/subqueries_test.cpp
index d275cf134c6..37e43b4d2b0 100644
--- a/searchlib/src/tests/features/subqueries/subqueries_test.cpp
+++ b/searchlib/src/tests/features/subqueries/subqueries_test.cpp
@@ -43,24 +43,22 @@ struct FeatureDumpFixture : public IDumpFeatureVisitor {
struct RankFixture : BlueprintFactoryFixture, IndexFixture {
QueryEnvironment queryEnv;
RankSetup rankSetup;
- MatchDataLayout mdl;
- MatchData::UP match_data;
RankProgram::UP rankProgram;
+ MatchDataLayout mdl;
std::vector<TermFieldHandle> fooHandles;
std::vector<TermFieldHandle> barHandles;
RankFixture(size_t fooCnt, size_t barCnt,
std::string featureName = "subqueries(foo)")
: queryEnv(&indexEnv), rankSetup(factory, indexEnv),
- mdl(), match_data(), rankProgram(), fooHandles(), barHandles()
+ rankProgram(), mdl(), fooHandles(), barHandles()
{
fooHandles = addFields(fooCnt, indexEnv.getFieldByName("foo")->id());
barHandles = addFields(barCnt, indexEnv.getFieldByName("bar")->id());
rankSetup.setFirstPhaseRank(featureName);
rankSetup.setIgnoreDefaultRankFeatures(true);
ASSERT_TRUE(rankSetup.compile());
- match_data = mdl.createMatchData();
rankProgram = rankSetup.create_first_phase_program();
- rankProgram->setup(*match_data, queryEnv);
+ rankProgram->setup(mdl, queryEnv);
}
std::vector<TermFieldHandle> addFields(size_t count, uint32_t fieldId) {
std::vector<TermFieldHandle> handles;
@@ -77,7 +75,7 @@ struct RankFixture : BlueprintFactoryFixture, IndexFixture {
}
void setSubqueries(TermFieldHandle handle, uint32_t docId,
uint64_t subqueries) {
- match_data->resolveTermField(handle)->setSubqueries(docId, subqueries);
+ rankProgram->match_data().resolveTermField(handle)->setSubqueries(docId, subqueries);
}
void setFooSubqueries(uint32_t i, uint32_t docId, uint64_t subqueries) {
ASSERT_LESS(i, fooHandles.size());
diff --git a/searchlib/src/tests/fef/featureoverride/featureoverride.cpp b/searchlib/src/tests/fef/featureoverride/featureoverride.cpp
index e55bd7081a1..0ff7e0899e9 100644
--- a/searchlib/src/tests/fef/featureoverride/featureoverride.cpp
+++ b/searchlib/src/tests/fef/featureoverride/featureoverride.cpp
@@ -141,8 +141,7 @@ TEST("test overrides")
overrides.add("value(1,2,3).2", "6.0");
overrides.add("bogus(feature)", "10.0");
- MatchData::UP match_data = mdl.createMatchData();
- rankProgram->setup(*match_data, queryEnv, overrides);
+ rankProgram->setup(mdl, queryEnv, overrides);
std::map<vespalib::string, feature_t> res = Utils::getAllFeatures(*rankProgram, 2);
diff --git a/searchlib/src/tests/fef/object_passing/object_passing_test.cpp b/searchlib/src/tests/fef/object_passing/object_passing_test.cpp
index 3ae5932889a..5c0f09a1203 100644
--- a/searchlib/src/tests/fef/object_passing/object_passing_test.cpp
+++ b/searchlib/src/tests/fef/object_passing/object_passing_test.cpp
@@ -7,7 +7,6 @@
#include <vespa/searchlib/fef/test/indexenvironment.h>
#include <vespa/searchlib/fef/test/queryenvironment.h>
#include <vespa/searchlib/fef/test/plugin/unbox.h>
-#include <vespa/searchlib/fef/matchdatalayout.h>
#include <vespa/searchlib/fef/rank_program.h>
#include <vespa/searchlib/fef/verify_feature.h>
#include <vespa/eval/eval/value_type.h>
@@ -88,11 +87,10 @@ struct Fixture {
return vespalib::eval::error_value;
}
MatchDataLayout mdl;
- MatchData::UP md = mdl.createMatchData();
QueryEnvironment queryEnv(&indexEnv);
Properties overrides;
RankProgram program(resolver);
- program.setup(*md, queryEnv, overrides);
+ program.setup(mdl, queryEnv, overrides);
auto result = program.get_seeds();
EXPECT_EQUAL(1u, result.num_features());
EXPECT_TRUE(!result.is_object(0)); // verifies auto-unboxing
diff --git a/searchlib/src/tests/fef/rank_program/rank_program_test.cpp b/searchlib/src/tests/fef/rank_program/rank_program_test.cpp
index 7e28178e5f7..8e23731e961 100644
--- a/searchlib/src/tests/fef/rank_program/rank_program_test.cpp
+++ b/searchlib/src/tests/fef/rank_program/rank_program_test.cpp
@@ -6,7 +6,6 @@
#include <vespa/searchlib/features/rankingexpressionfeature.h>
#include <vespa/searchlib/fef/blueprintfactory.h>
#include <vespa/searchlib/fef/indexproperties.h>
-#include <vespa/searchlib/fef/matchdatalayout.h>
#include <vespa/searchlib/fef/test/indexenvironment.h>
#include <vespa/searchlib/fef/test/queryenvironment.h>
#include <vespa/searchlib/fef/test/plugin/sum.h>
@@ -70,11 +69,10 @@ struct Fixture {
IndexEnvironment indexEnv;
BlueprintResolver::SP resolver;
Properties overrides;
- MatchData::UP match_data;
RankProgram program;
size_t track_cnt;
Fixture() : factory(), indexEnv(), resolver(new BlueprintResolver(factory, indexEnv)),
- overrides(), match_data(), program(resolver), track_cnt(0)
+ overrides(), program(resolver), track_cnt(0)
{
factory.addPrototype(Blueprint::SP(new BoxingBlueprint()));
factory.addPrototype(Blueprint::SP(new DocidBlueprint()));
@@ -109,8 +107,7 @@ struct Fixture {
ASSERT_TRUE(resolver->compile());
MatchDataLayout mdl;
QueryEnvironment queryEnv(&indexEnv);
- match_data = mdl.createMatchData();
- program.setup(*match_data, queryEnv, overrides);
+ program.setup(mdl, queryEnv, overrides);
return *this;
}
double get(uint32_t docid = default_docid) {
diff --git a/searchlib/src/tests/fef/termfieldmodel/termfieldmodel_test.cpp b/searchlib/src/tests/fef/termfieldmodel/termfieldmodel_test.cpp
index 01c72497246..57fb19b7b23 100644
--- a/searchlib/src/tests/fef/termfieldmodel/termfieldmodel_test.cpp
+++ b/searchlib/src/tests/fef/termfieldmodel/termfieldmodel_test.cpp
@@ -207,39 +207,4 @@ TEST("Access subqueries") {
EXPECT_EQUAL(0ULL, state.f3->getSubqueries());
}
-TEST("require that TermFieldMatchData can be tagged as needed or not") {
- TermFieldMatchData tfmd;
- tfmd.setFieldId(123);
- EXPECT_EQUAL(tfmd.getFieldId(),123u);
- EXPECT_TRUE(!tfmd.isNotNeeded());
- tfmd.tagAsNotNeeded();
- EXPECT_EQUAL(tfmd.getFieldId(),123u);
- EXPECT_TRUE(tfmd.isNotNeeded());
- tfmd.tagAsNeeded();
- EXPECT_EQUAL(tfmd.getFieldId(),123u);
- EXPECT_TRUE(!tfmd.isNotNeeded());
-}
-
-TEST("require that MatchData soft_reset retains appropriate state") {
- auto md = MatchData::makeTestInstance(10, 10);
- md->set_termwise_limit(0.5);
- auto *old_term = md->resolveTermField(7);
- old_term->tagAsNotNeeded();
- old_term->populate_fixed()->setElementWeight(21);
- old_term->resetOnlyDocId(42);
- EXPECT_EQUAL(md->get_termwise_limit(), 0.5);
- EXPECT_TRUE(old_term->isNotNeeded());
- EXPECT_EQUAL(old_term->getFieldId(), 7u);
- EXPECT_EQUAL(old_term->getWeight(), 21);
- EXPECT_EQUAL(old_term->getDocId(), 42u);
- md->soft_reset();
- auto *new_term = md->resolveTermField(7);
- EXPECT_EQUAL(new_term, old_term);
- EXPECT_EQUAL(md->get_termwise_limit(), 1.0);
- EXPECT_TRUE(!new_term->isNotNeeded());
- EXPECT_EQUAL(new_term->getFieldId(), 7u);
- EXPECT_EQUAL(new_term->getWeight(), 21);
- EXPECT_EQUAL(new_term->getDocId(), TermFieldMatchData::invalidId());
-}
-
TEST_MAIN() { TEST_RUN_ALL(); }
diff --git a/searchlib/src/tests/ranksetup/ranksetup_test.cpp b/searchlib/src/tests/ranksetup/ranksetup_test.cpp
index 7a26180eed2..c2ef8f3a46b 100644
--- a/searchlib/src/tests/ranksetup/ranksetup_test.cpp
+++ b/searchlib/src/tests/ranksetup/ranksetup_test.cpp
@@ -87,7 +87,6 @@ private:
const RankEnvironment & _rankEnv;
MatchDataLayout _layout;
std::unique_ptr<RankSetup> _rs;
- MatchData::UP _match_data;
RankProgram::UP _firstPhaseProgram;
RankProgram::UP _secondPhaseProgram;
@@ -101,7 +100,7 @@ public:
RankExecutor::RankExecutor(const vespalib::string &initRank, const vespalib::string &finalRank,
const RankEnvironment &rankEnv)
: _initRank(initRank), _finalRank(finalRank), _rankEnv(rankEnv), _layout(),
- _rs(), _match_data(), _firstPhaseProgram(), _secondPhaseProgram()
+ _rs(), _firstPhaseProgram(), _secondPhaseProgram()
{}
RankExecutor::~RankExecutor() {}
@@ -122,13 +121,12 @@ RankExecutor::setup()
if (!_rs->compile()) {
return false;
}
- _match_data = _layout.createMatchData();
_firstPhaseProgram = _rs->create_first_phase_program();
- _firstPhaseProgram->setup(*_match_data, _rankEnv.queryEnvironment());
+ _firstPhaseProgram->setup(_layout, _rankEnv.queryEnvironment());
if (!_finalRank.empty()) {
_secondPhaseProgram = _rs->create_second_phase_program();
- _secondPhaseProgram->setup(*_match_data, _rankEnv.queryEnvironment());
+ _secondPhaseProgram->setup(_layout, _rankEnv.queryEnvironment());
}
return true;
}
@@ -156,7 +154,6 @@ private:
const RankEnvironment & _rankEnv;
RankSetup _setup;
MatchDataLayout _layout;
- MatchData::UP _match_data;
RankProgram::UP _rankProgram;
public:
@@ -172,7 +169,6 @@ FeatureDumper::FeatureDumper(const RankEnvironment & rankEnv)
: _rankEnv(rankEnv),
_setup(_rankEnv.factory(), _rankEnv.indexEnvironment()),
_layout(),
- _match_data(),
_rankProgram()
{}
FeatureDumper::~FeatureDumper() {}
@@ -195,9 +191,8 @@ FeatureDumper::setup()
return false;
}
- _match_data = _layout.createMatchData();
_rankProgram = _setup.create_dump_program();
- _rankProgram->setup(*_match_data, _rankEnv.queryEnvironment());
+ _rankProgram->setup(_layout, _rankEnv.queryEnvironment());
return true;
}
@@ -785,13 +780,12 @@ RankSetupTest::testFeatureNormalization()
{ // RANK context
MatchDataLayout layout;
QueryEnvironment queryEnv;
- MatchData::UP match_data = layout.createMatchData();
RankProgram::UP firstPhaseProgram = rankSetup.create_first_phase_program();
RankProgram::UP secondPhaseProgram = rankSetup.create_second_phase_program();
RankProgram::UP summaryProgram = rankSetup.create_summary_program();
- firstPhaseProgram->setup(*match_data, queryEnv);
- secondPhaseProgram->setup(*match_data, queryEnv);
- summaryProgram->setup(*match_data, queryEnv);
+ firstPhaseProgram->setup(layout, queryEnv);
+ secondPhaseProgram->setup(layout, queryEnv);
+ summaryProgram->setup(layout, queryEnv);
EXPECT_APPROX(2.0, Utils::getScoreFeature(*firstPhaseProgram, 1), 0.001);
EXPECT_APPROX(4.0, Utils::getScoreFeature(*secondPhaseProgram, 1), 0.001);
@@ -837,9 +831,8 @@ RankSetupTest::testFeatureNormalization()
{ // DUMP context
MatchDataLayout layout;
QueryEnvironment queryEnv;
- MatchData::UP match_data = layout.createMatchData();
RankProgram::UP rankProgram = rankSetup.create_dump_program();
- rankProgram->setup(*match_data, queryEnv);
+ rankProgram->setup(layout, queryEnv);
{ // dump seed features
std::map<vespalib::string, feature_t> actual = Utils::getSeedFeatures(*rankProgram, 1);