summaryrefslogtreecommitdiffstats
path: root/searchlib/src/tests
diff options
context:
space:
mode:
authorTor Egge <Tor.Egge@online.no>2024-05-16 13:54:40 +0200
committerTor Egge <Tor.Egge@online.no>2024-05-16 13:54:40 +0200
commit7b386dd241870c6b1317cb85df1b16cc5f386d08 (patch)
tree1c1da155749cded0dca1d0ffa5608bf6802e90e5 /searchlib/src/tests
parentcced1ff316a6960a0a6d091f43b0eafd3ba2a78e (diff)
Add second phase feature.
Diffstat (limited to 'searchlib/src/tests')
-rw-r--r--searchlib/src/tests/features/prod_features_test.cpp27
-rw-r--r--searchlib/src/tests/ranksetup/ranksetup_test.cpp15
2 files changed, 42 insertions, 0 deletions
diff --git a/searchlib/src/tests/features/prod_features_test.cpp b/searchlib/src/tests/features/prod_features_test.cpp
index 22105533895..fb00b4ff5e6 100644
--- a/searchlib/src/tests/features/prod_features_test.cpp
+++ b/searchlib/src/tests/features/prod_features_test.cpp
@@ -33,6 +33,7 @@
#include <vespa/searchlib/features/random_normal_stable_feature.h>
#include <vespa/searchlib/features/randomfeature.h>
#include <vespa/searchlib/features/rankingexpressionfeature.h>
+#include <vespa/searchlib/features/second_phase_feature.h>
#include <vespa/searchlib/features/setup.h>
#include <vespa/searchlib/features/termfeature.h>
#include <vespa/searchlib/features/utils.h>
@@ -614,6 +615,32 @@ TEST_F(ProdFeaturesTest, test_first_phase)
}
}
+TEST_F(ProdFeaturesTest, test_second_phase)
+{
+ { // Test blueprint.
+ SecondPhaseBlueprint pt;
+
+ EXPECT_TRUE(assertCreateInstance(pt, "secondPhase"));
+
+ FtIndexEnvironment ie;
+ ie.getProperties().add(indexproperties::rank::SecondPhase::NAME, "random");
+
+ StringList params, in, out;
+ FT_SETUP_OK(pt, ie, params, in.add("random"), out.add("score"));
+ FT_SETUP_FAIL(pt, params.add("foo"));
+ params.clear();
+
+ FT_DUMP_EMPTY(_factory, "secondPhase", ie);
+ }
+
+ { // Test executor.
+ FtFeatureTest ft(_factory, "secondPhase");
+ ft.getIndexEnv().getProperties().add(indexproperties::rank::SecondPhase::NAME, "value(11)");
+ ASSERT_TRUE(ft.setup());
+ ASSERT_TRUE(ft.execute(11.0f));
+ }
+}
+
TEST_F(ProdFeaturesTest, test_foreach)
{
{ // Test blueprint.
diff --git a/searchlib/src/tests/ranksetup/ranksetup_test.cpp b/searchlib/src/tests/ranksetup/ranksetup_test.cpp
index 53224425a04..348326c3936 100644
--- a/searchlib/src/tests/ranksetup/ranksetup_test.cpp
+++ b/searchlib/src/tests/ranksetup/ranksetup_test.cpp
@@ -26,6 +26,7 @@
#include <vespa/searchlib/fef/test/rankresult.h>
#include <vespa/searchlib/features/rankingexpressionfeature.h>
+#include <vespa/searchlib/features/second_phase_feature.h>
#include <vespa/searchlib/features/setup.h>
#include <vespa/searchlib/features/valuefeature.h>
#include <vespa/searchlib/fef/test/plugin/chain.h>
@@ -787,6 +788,19 @@ RankSetupTest::testFeatureDump()
exp.addScore("test_cfgvalue(foo)", 1.0);
EXPECT_EQUAL(exp, dumper.dump());
}
+ { // Dump secondPhase feature
+ IndexEnvironment indexEnv;
+ indexEnv.getProperties().add(indexproperties::rank::FirstPhase::NAME, "value(2)");
+ indexEnv.getProperties().add(indexproperties::rank::SecondPhase::NAME, "value(4)");
+ RankEnvironment rankEnv(_factory, indexEnv, _queryEnv);
+ FeatureDumper dumper(rankEnv);
+ dumper.configure();
+ dumper.addDumpFeature("secondPhase");
+ EXPECT_TRUE(dumper.setup());
+ RankResult exp;
+ exp.addScore("secondPhase", 4.0);
+ EXPECT_EQUAL(exp, dumper.dump());
+ }
}
void
@@ -939,6 +953,7 @@ RankSetupTest::RankSetupTest() :
setup_fef_test_plugin(_factory);
_factory.addPrototype(Blueprint::SP(new ValueBlueprint()));
_factory.addPrototype(Blueprint::SP(new RankingExpressionBlueprint()));
+ _factory.addPrototype(std::make_shared<SecondPhaseBlueprint>());
// setup an original attribute manager with two attributes
search::attribute::Config cfg(search::attribute::BasicType::INT32,