diff options
author | Arne Juul <arnej@vespa.ai> | 2023-10-30 11:31:12 +0000 |
---|---|---|
committer | Arne Juul <arnej@vespa.ai> | 2023-10-30 11:51:20 +0000 |
commit | ecf09e55410ba9b7b70e83da2a449ca0efac1cef (patch) | |
tree | ad8ce5f187c08c20aacac433a03afd92d9849f12 /container-search/src/test/java/com | |
parent | deb7ac732b85a497a545f8df15e9d4e65943031c (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.java | 6 | ||||
-rw-r--r-- | container-search/src/test/java/com/yahoo/search/ranking/GlobalPhaseSetupTest.java | 32 |
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(); |