summaryrefslogtreecommitdiffstats
path: root/container-search/src/test/java/com
diff options
context:
space:
mode:
authorArne Juul <arnej@vespa.ai>2023-10-30 11:31:12 +0000
committerArne Juul <arnej@vespa.ai>2023-10-30 11:51:20 +0000
commitecf09e55410ba9b7b70e83da2a449ca0efac1cef (patch)
treead8ce5f187c08c20aacac433a03afd92d9849f12 /container-search/src/test/java/com
parentdeb7ac732b85a497a545f8df15e9d4e65943031c (diff)
support renamed match-features better
Diffstat (limited to 'container-search/src/test/java/com')
-rw-r--r--container-search/src/test/java/com/yahoo/search/ranking/GlobalPhaseRerankHitsImplTest.java6
-rw-r--r--container-search/src/test/java/com/yahoo/search/ranking/GlobalPhaseSetupTest.java32
2 files changed, 30 insertions, 8 deletions
diff --git a/container-search/src/test/java/com/yahoo/search/ranking/GlobalPhaseRerankHitsImplTest.java b/container-search/src/test/java/com/yahoo/search/ranking/GlobalPhaseRerankHitsImplTest.java
index f55130c0c93..39b202daf1e 100644
--- a/container-search/src/test/java/com/yahoo/search/ranking/GlobalPhaseRerankHitsImplTest.java
+++ b/container-search/src/test/java/com/yahoo/search/ranking/GlobalPhaseRerankHitsImplTest.java
@@ -38,7 +38,11 @@ public class GlobalPhaseRerankHitsImplTest {
return new FunEvalSpec(() -> new EvalSum(constValue), Collections.emptyList(), Collections.emptyList());
}
static FunEvalSpec makeSumSpec(List<String> fromQuery, List<String> fromMF) {
- return new FunEvalSpec(() -> new EvalSum(0.0), fromQuery, fromMF);
+ List<MatchFeatureInput> mfList = new ArrayList<>();
+ for (String mf : fromMF) {
+ mfList.add(new MatchFeatureInput(mf, mf));
+ }
+ return new FunEvalSpec(() -> new EvalSum(0.0), fromQuery, mfList);
}
static class ExpectingNormalizer extends Normalizer {
List<Double> expected;
diff --git a/container-search/src/test/java/com/yahoo/search/ranking/GlobalPhaseSetupTest.java b/container-search/src/test/java/com/yahoo/search/ranking/GlobalPhaseSetupTest.java
index 082531a97dd..dbe26c2ef94 100644
--- a/container-search/src/test/java/com/yahoo/search/ranking/GlobalPhaseSetupTest.java
+++ b/container-search/src/test/java/com/yahoo/search/ranking/GlobalPhaseSetupTest.java
@@ -67,28 +67,28 @@ public class GlobalPhaseSetupTest {
assertEquals("normalize@2974853441@linear", n.name());
assertEquals(0, n.inputEvalSpec().fromQuery().size());
assertEquals(1, n.inputEvalSpec().fromMF().size());
- assertEquals("funmf", n.inputEvalSpec().fromMF().get(0));
+ assertEquals("funmf", n.inputEvalSpec().fromMF().get(0).matchFeatureName());
assertEquals("linear", n.supplier().get().normalizing());
n = nList.get(1);
assertEquals("normalize@3414032797@rrank", n.name());
assertEquals(0, n.inputEvalSpec().fromQuery().size());
assertEquals(1, n.inputEvalSpec().fromMF().size());
- assertEquals("attribute(year)", n.inputEvalSpec().fromMF().get(0));
+ assertEquals("attribute(year)", n.inputEvalSpec().fromMF().get(0).inputName());
assertEquals("reciprocal-rank{k:60.0}", n.supplier().get().normalizing());
n = nList.get(2);
assertEquals("normalize@3551296680@linear", n.name());
assertEquals(0, n.inputEvalSpec().fromQuery().size());
assertEquals(1, n.inputEvalSpec().fromMF().size());
- assertEquals("nativeRank", n.inputEvalSpec().fromMF().get(0));
+ assertEquals("nativeRank", n.inputEvalSpec().fromMF().get(0).inputName());
assertEquals("linear", n.supplier().get().normalizing());
n = nList.get(3);
assertEquals("normalize@4280591309@rrank", n.name());
assertEquals(0, n.inputEvalSpec().fromQuery().size());
assertEquals(1, n.inputEvalSpec().fromMF().size());
- assertEquals("bm25(myabstract)", n.inputEvalSpec().fromMF().get(0));
+ assertEquals("bm25(myabstract)", n.inputEvalSpec().fromMF().get(0).inputName());
assertEquals("reciprocal-rank{k:42.0}", n.supplier().get().normalizing());
n = nList.get(4);
@@ -96,24 +96,42 @@ public class GlobalPhaseSetupTest {
assertEquals(1, n.inputEvalSpec().fromQuery().size());
assertEquals("myweight", n.inputEvalSpec().fromQuery().get(0));
assertEquals(1, n.inputEvalSpec().fromMF().size());
- assertEquals("attribute(foo1)", n.inputEvalSpec().fromMF().get(0));
+ assertEquals("attribute(foo1)", n.inputEvalSpec().fromMF().get(0).inputName());
assertEquals("linear", n.supplier().get().normalizing());
n = nList.get(5);
assertEquals("normalize@4640646880@linear", n.name());
assertEquals(0, n.inputEvalSpec().fromQuery().size());
assertEquals(1, n.inputEvalSpec().fromMF().size());
- assertEquals("attribute(foo1)", n.inputEvalSpec().fromMF().get(0));
+ assertEquals("attribute(foo1)", n.inputEvalSpec().fromMF().get(0).inputName());
assertEquals("linear", n.supplier().get().normalizing());
n = nList.get(6);
assertEquals("normalize@6283155534@linear", n.name());
assertEquals(0, n.inputEvalSpec().fromQuery().size());
assertEquals(1, n.inputEvalSpec().fromMF().size());
- assertEquals("bm25(mytitle)", n.inputEvalSpec().fromMF().get(0));
+ assertEquals("bm25(mytitle)", n.inputEvalSpec().fromMF().get(0).inputName());
assertEquals("linear", n.supplier().get().normalizing());
}
+ @Test void funcWithArgsSetup() {
+ RankProfilesConfig rpCfg = readConfig("with_mf_funargs");
+ assertEquals(1, rpCfg.rankprofile().size());
+ RankProfilesEvaluator rpEvaluator = createEvaluator(rpCfg);
+ var setup = GlobalPhaseSetup.maybeMakeSetup(rpCfg.rankprofile().get(0), rpEvaluator);
+ assertNotNull(setup);
+ assertEquals(0, setup.normalizers.size());
+ assertEquals(3, setup.matchFeaturesToHide.size());
+ assertEquals(0, setup.globalPhaseEvalSpec.fromQuery().size());
+ var wantMF = setup.globalPhaseEvalSpec.fromMF();
+ assertEquals(4, wantMF.size());
+ wantMF.sort((a, b) -> a.matchFeatureName().compareTo(b.matchFeatureName()));
+ assertEquals("plusOne(2)", wantMF.get(0).matchFeatureName());
+ assertEquals("plusOne(attribute(foo2))", wantMF.get(1).matchFeatureName());
+ assertEquals("useAttr(t1,42)", wantMF.get(2).matchFeatureName());
+ assertEquals("withIndirect(foo1)", wantMF.get(3).matchFeatureName());
+ }
+
private RankProfilesEvaluator createEvaluator(RankProfilesConfig config) {
RankingConstantsConfig constantsConfig = new RankingConstantsConfig.Builder().build();
RankingExpressionsConfig expressionsConfig = new RankingExpressionsConfig.Builder().build();