diff options
author | Håvard Pettersen <havardpe@oath.com> | 2021-11-02 13:39:24 +0000 |
---|---|---|
committer | Håvard Pettersen <havardpe@oath.com> | 2021-11-02 13:39:24 +0000 |
commit | 0885e78faf297b939fa1c5dfa63c7b4afc308850 (patch) | |
tree | 5910bbff30780d9e5ad5f61d8b3216a5848bfd5f /searchlib/src/tests/ranksetup | |
parent | 9ce773196b34da2cfb6242cfcfa442e4071a3a46 (diff) |
added match features to rank setup
Diffstat (limited to 'searchlib/src/tests/ranksetup')
-rw-r--r-- | searchlib/src/tests/ranksetup/ranksetup_test.cpp | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/searchlib/src/tests/ranksetup/ranksetup_test.cpp b/searchlib/src/tests/ranksetup/ranksetup_test.cpp index 51f998d0793..ddd3f946cc5 100644 --- a/searchlib/src/tests/ranksetup/ranksetup_test.cpp +++ b/searchlib/src/tests/ranksetup/ranksetup_test.cpp @@ -503,6 +503,8 @@ void RankSetupTest::testRankSetup() IndexEnvironment env; env.getProperties().add(rank::FirstPhase::NAME, "firstphase"); env.getProperties().add(rank::SecondPhase::NAME, "secondphase"); + env.getProperties().add(match::Feature::NAME, "match_foo"); + env.getProperties().add(match::Feature::NAME, "match_bar"); env.getProperties().add(dump::Feature::NAME, "foo"); env.getProperties().add(dump::Feature::NAME, "bar"); env.getProperties().add(matching::NumThreadsPerSearch::NAME, "3"); @@ -532,9 +534,14 @@ void RankSetupTest::testRankSetup() env.getProperties().add(mutate::on_summary::Operation::NAME, "-=2"); RankSetup rs(_factory, env); + EXPECT_FALSE(rs.has_match_features()); rs.configure(); EXPECT_EQUAL(rs.getFirstPhaseRank(), vespalib::string("firstphase")); EXPECT_EQUAL(rs.getSecondPhaseRank(), vespalib::string("secondphase")); + EXPECT_TRUE(rs.has_match_features()); + ASSERT_TRUE(rs.get_match_features().size() == 2); + EXPECT_EQUAL(rs.get_match_features()[0], vespalib::string("match_foo")); + EXPECT_EQUAL(rs.get_match_features()[1], vespalib::string("match_bar")); ASSERT_TRUE(rs.getDumpFeatures().size() == 2); EXPECT_EQUAL(rs.getDumpFeatures()[0], vespalib::string("foo")); EXPECT_EQUAL(rs.getDumpFeatures()[1], vespalib::string("bar")); @@ -804,6 +811,8 @@ RankSetupTest::testFeatureNormalization() rankSetup.setFirstPhaseRank(" mysum ( value ( 1 ) , value ( 1 ) ) "); rankSetup.setSecondPhaseRank(" mysum ( value ( 2 ) , value ( 2 ) ) "); + rankSetup.add_match_feature(" mysum ( value ( 3 ) , value ( 3 ) ) "); + rankSetup.add_match_feature(" mysum ( \"value( 3 )\" , \"value( 3 )\" ) "); rankSetup.addSummaryFeature(" mysum ( value ( 5 ) , value ( 5 ) ) "); rankSetup.addSummaryFeature(" mysum ( \"value( 5 )\" , \"value( 5 )\" ) "); rankSetup.addDumpFeature(" mysum ( value ( 10 ) , value ( 10 ) ) "); @@ -817,9 +826,11 @@ RankSetupTest::testFeatureNormalization() MatchData::UP match_data = layout.createMatchData(); RankProgram::UP firstPhaseProgram = rankSetup.create_first_phase_program(); RankProgram::UP secondPhaseProgram = rankSetup.create_second_phase_program(); + RankProgram::UP match_program = rankSetup.create_match_program(); RankProgram::UP summaryProgram = rankSetup.create_summary_program(); firstPhaseProgram->setup(*match_data, queryEnv); secondPhaseProgram->setup(*match_data, queryEnv); + match_program->setup(*match_data, queryEnv); summaryProgram->setup(*match_data, queryEnv); EXPECT_APPROX(2.0, Utils::getScoreFeature(*firstPhaseProgram, 1), 0.001); @@ -850,6 +861,17 @@ RankSetupTest::testFeatureNormalization() exp["mysum(value(2),value(2)).out"] = 4.0; TEST_DO(checkFeatures(exp, actual)); } + { // all match features + std::map<vespalib::string, feature_t> actual = Utils::getAllFeatures(*match_program, 1); + std::map<vespalib::string, feature_t> exp; + exp["value(3)"] = 3.0; + exp["value(3).0"] = 3.0; + exp["mysum(value(3),value(3))"] = 6.0; + exp["mysum(value(3),value(3)).out"] = 6.0; + exp["mysum(\"value( 3 )\",\"value( 3 )\")"] = 6.0; + exp["mysum(\"value( 3 )\",\"value( 3 )\").out"] = 6.0; + TEST_DO(checkFeatures(exp, actual)); + } { // all rank features (summary) std::map<vespalib::string, feature_t> actual = Utils::getAllFeatures(*summaryProgram, 1); std::map<vespalib::string, feature_t> exp; |