diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2017-09-19 21:51:54 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-09-19 21:51:54 +0200 |
commit | d650e313d11cfe0f2f4ce07f5fc8cf616a264739 (patch) | |
tree | bdece4b85a956fe44701d6339241e15272459508 /searchlib/src/tests | |
parent | c536a7dedb8257d9a56fb350bf24b796e26712e8 (diff) |
Revert "Havardpe/reuse termwise vector in second phase"
Diffstat (limited to 'searchlib/src/tests')
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); |