diff options
author | Jon Bratseth <bratseth@oath.com> | 2018-02-14 09:42:46 +0100 |
---|---|---|
committer | Jon Bratseth <bratseth@oath.com> | 2018-02-14 09:42:46 +0100 |
commit | fa0bc59e2313aa6b6249ad88f7c1892a3a29553d (patch) | |
tree | f426c5657280a25c4599deecc5cca3be9378cab7 /config-model/src/test/java/com | |
parent | c17b1582face7c7f31fea7e151a5855908fe04f5 (diff) |
Handle argument bindings
Diffstat (limited to 'config-model/src/test/java/com')
2 files changed, 61 insertions, 9 deletions
diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/FeatureNamesTestCase.java b/config-model/src/test/java/com/yahoo/searchdefinition/FeatureNamesTestCase.java index 1f60ad870ec..182aaba5be8 100644 --- a/config-model/src/test/java/com/yahoo/searchdefinition/FeatureNamesTestCase.java +++ b/config-model/src/test/java/com/yahoo/searchdefinition/FeatureNamesTestCase.java @@ -42,17 +42,20 @@ public class FeatureNamesTestCase { @Test public void testConstantFeature() { - assertEquals("constant(\"foo/bar\")", FeatureNames.asConstantFeature("foo/bar")); + assertEquals("constant(\"foo/bar\")", + FeatureNames.asConstantFeature("foo/bar").toString()); } @Test public void testAttributeFeature() { - assertEquals("attribute(foo)", FeatureNames.asAttributeFeature("foo")); + assertEquals("attribute(foo)", + FeatureNames.asAttributeFeature("foo").toString()); } @Test public void testQueryFeature() { - assertEquals("query(\"foo.bar\")", FeatureNames.asQueryFeature("foo.bar")); + assertEquals("query(\"foo.bar\")", + FeatureNames.asQueryFeature("foo.bar").toString()); } } diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/processing/RankingExpressionTypeValidatorTestCase.java b/config-model/src/test/java/com/yahoo/searchdefinition/processing/RankingExpressionTypeValidatorTestCase.java index db3b12db1bf..b8117178c74 100644 --- a/config-model/src/test/java/com/yahoo/searchdefinition/processing/RankingExpressionTypeValidatorTestCase.java +++ b/config-model/src/test/java/com/yahoo/searchdefinition/processing/RankingExpressionTypeValidatorTestCase.java @@ -1,22 +1,33 @@ // Copyright 2018 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.searchdefinition.processing; +import com.yahoo.searchdefinition.RankProfile; import com.yahoo.searchdefinition.RankProfileRegistry; +import com.yahoo.searchdefinition.Search; import com.yahoo.searchdefinition.SearchBuilder; +import com.yahoo.searchlib.rankingexpression.rule.ReferenceNode; +import com.yahoo.tensor.TensorType; import com.yahoo.yolean.Exceptions; import org.junit.Test; + +import java.util.Map; +import java.util.stream.Collectors; + import static com.yahoo.config.model.test.TestUtil.joinLines; import static org.junit.Assert.assertEquals; import static org.junit.Assert.fail; +/** + * @author bratseth + */ public class RankingExpressionTypeValidatorTestCase { @Test public void tensorFirstPhaseMustProduceDouble() throws Exception { try { RankProfileRegistry rankProfileRegistry = new RankProfileRegistry(); - SearchBuilder searchBuilder = new SearchBuilder(rankProfileRegistry); - searchBuilder.importString(joinLines( + SearchBuilder builder = new SearchBuilder(rankProfileRegistry); + builder.importString(joinLines( "search test {", " document test { ", " field a type tensor(x[],y[]) {", @@ -30,7 +41,7 @@ public class RankingExpressionTypeValidatorTestCase { " }", "}" )); - searchBuilder.build(); + builder.build(); fail("Expected exception"); } catch (IllegalArgumentException expected) { @@ -43,8 +54,8 @@ public class RankingExpressionTypeValidatorTestCase { public void tensorSecondPhaseMustProduceDouble() throws Exception { try { RankProfileRegistry rankProfileRegistry = new RankProfileRegistry(); - SearchBuilder searchBuilder = new SearchBuilder(rankProfileRegistry); - searchBuilder.importString(joinLines( + SearchBuilder builder = new SearchBuilder(rankProfileRegistry); + builder.importString(joinLines( "search test {", " document test { ", " field a type tensor(x[],y[]) {", @@ -61,7 +72,7 @@ public class RankingExpressionTypeValidatorTestCase { " }", "}" )); - searchBuilder.build(); + builder.build(); fail("Expected exception"); } catch (IllegalArgumentException expected) { @@ -101,4 +112,42 @@ public class RankingExpressionTypeValidatorTestCase { } } + @Test + public void testMacroInvocationTypes() throws Exception { + RankProfileRegistry rankProfileRegistry = new RankProfileRegistry(); + SearchBuilder builder = new SearchBuilder(rankProfileRegistry); + builder.importString(joinLines( + "search test {", + " document test { ", + " field a type tensor(x[],y[]) {", + " indexing: attribute", + " }", + " field b type tensor(z[10]) {", + " indexing: attribute", + " }", + " }", + " rank-profile my_rank_profile {", + " macro macro1(attribute_to_use) {", + " expression: attribute(attribute_to_use)", + " }", + " summary-features {", + " macro1(a)", + " macro1(b)", + " }", + " }", + "}" + )); + builder.build(); + RankProfile profile = + builder.getRankProfileRegistry().getRankProfile(builder.getSearch(), "my_rank_profile"); + assertEquals(TensorType.fromSpec("tensor(x[],y[])"), + summaryFeatures(profile).get("macro1(a)").type(profile.typeContext(builder.getQueryProfileRegistry()))); + assertEquals(TensorType.fromSpec("tensor(z[10])"), + summaryFeatures(profile).get("macro1(b)").type(profile.typeContext(builder.getQueryProfileRegistry()))); + } + + private Map<String, ReferenceNode> summaryFeatures(RankProfile profile) { + return profile.getSummaryFeatures().stream().collect(Collectors.toMap(f -> f.toString(), f -> f)); + } + } |