Search in sources :

Example 6 with QueryProfileProperties

use of com.yahoo.search.query.profile.QueryProfileProperties in project vespa by vespa-engine.

the class QueryProfileVariantsTestCase method testListVariantPropertiesCompounds1.

public void testListVariantPropertiesCompounds1() {
    QueryProfile parent1 = new QueryProfile("parent1");
    // Defined everywhere
    parent1.set("a.p1", "parent1-a", (QueryProfileRegistry) null);
    // Defined everywhere, but no variants
    parent1.set("b.p1", "parent1-b", (QueryProfileRegistry) null);
    // Defined in both parents only
    parent1.set("c.p1", "parent1-c", (QueryProfileRegistry) null);
    QueryProfile parent2 = new QueryProfile("parent2");
    parent2.set("a.p1", "parent2-a", (QueryProfileRegistry) null);
    parent2.set("b.p1", "parent2-b", (QueryProfileRegistry) null);
    parent2.set("c.p1", "parent2-c", (QueryProfileRegistry) null);
    // Defined in second parent only
    parent2.set("d.p1", "parent2-d", (QueryProfileRegistry) null);
    QueryProfile main = new QueryProfile("main");
    main.setDimensions(new String[] { "x", "y" });
    main.addInherited(parent1);
    main.addInherited(parent2);
    main.set("a.p1", "main-a", (QueryProfileRegistry) null);
    main.set("a.p1", "main-a-x1", new String[] { "x1" }, null);
    // Defined in two variants only
    main.set("e.p1", "main-e-x1", new String[] { "x1" }, null);
    // Defined in one variants only
    main.set("f.p1", "main-f-x1", new String[] { "x1" }, null);
    main.set("a.p1", "main-a-x1.y1", new String[] { "x1", "y1" }, null);
    main.set("a.p1", "main-a-x1.y2", new String[] { "x1", "y2" }, null);
    main.set("e.p1", "main-e-x1.y2", new String[] { "x1", "y2" }, null);
    // Defined in one variant only
    main.set("g.p1", "main-g-x1.y2", new String[] { "x1", "y2" }, null);
    main.set("b.p1", "main-b", (QueryProfileRegistry) null);
    QueryProfile inheritedVariant1 = new QueryProfile("inheritedVariant1");
    inheritedVariant1.set("a.p1", "inheritedVariant1-a", (QueryProfileRegistry) null);
    // Only defined in two inherited variants
    inheritedVariant1.set("h.p1", "inheritedVariant1-h", (QueryProfileRegistry) null);
    QueryProfile inheritedVariant2 = new QueryProfile("inheritedVariant2");
    inheritedVariant2.set("a.p1", "inheritedVariant2-a", (QueryProfileRegistry) null);
    // Only defined in two inherited variants
    inheritedVariant2.set("h.p1", "inheritedVariant2-h", (QueryProfileRegistry) null);
    // Only defined in one inherited variant
    inheritedVariant2.set("i.p1", "inheritedVariant2-i", (QueryProfileRegistry) null);
    QueryProfile inheritedVariant3 = new QueryProfile("inheritedVariant3");
    // Only defined in one inherited variant, but inherited twice
    inheritedVariant3.set("j.p1", "inheritedVariant3-j", (QueryProfileRegistry) null);
    main.addInherited(inheritedVariant1, new String[] { "x1" });
    main.addInherited(inheritedVariant3, new String[] { "x1" });
    main.addInherited(inheritedVariant2, new String[] { "x1", "y2" });
    main.addInherited(inheritedVariant3, new String[] { "x1", "y2" });
    Properties properties = new QueryProfileProperties(main.compile(null));
    int expectedBaseSize = 4;
    // No context
    Map<String, Object> listed = properties.listProperties();
    assertEquals(expectedBaseSize, listed.size());
    assertEquals("main-a", listed.get("a.p1"));
    assertEquals("main-b", listed.get("b.p1"));
    assertEquals("parent1-c", listed.get("c.p1"));
    assertEquals("parent2-d", listed.get("d.p1"));
    // Context x=x1
    listed = properties.listProperties(toMap(main, new String[] { "x1" }));
    assertEquals(expectedBaseSize + 4, listed.size());
    assertEquals("main-a-x1", listed.get("a.p1"));
    assertEquals("main-b", listed.get("b.p1"));
    assertEquals("parent1-c", listed.get("c.p1"));
    assertEquals("parent2-d", listed.get("d.p1"));
    assertEquals("main-e-x1", listed.get("e.p1"));
    assertEquals("main-f-x1", listed.get("f.p1"));
    assertEquals("inheritedVariant1-h", listed.get("h.p1"));
    assertEquals("inheritedVariant3-j", listed.get("j.p1"));
    // Context x=x1,y=y1
    listed = properties.listProperties(toMap(main, new String[] { "x1", "y1" }));
    assertEquals(expectedBaseSize + 4, listed.size());
    assertEquals("main-a-x1.y1", listed.get("a.p1"));
    assertEquals("main-b", listed.get("b.p1"));
    assertEquals("parent1-c", listed.get("c.p1"));
    assertEquals("parent2-d", listed.get("d.p1"));
    assertEquals("main-e-x1", listed.get("e.p1"));
    assertEquals("main-f-x1", listed.get("f.p1"));
    assertEquals("inheritedVariant1-h", listed.get("h.p1"));
    assertEquals("inheritedVariant3-j", listed.get("j.p1"));
    // Context x=x1,y=y2
    listed = properties.listProperties(toMap(main, new String[] { "x1", "y2" }));
    assertEquals(expectedBaseSize + 6, listed.size());
    assertEquals("main-a-x1.y2", listed.get("a.p1"));
    assertEquals("main-b", listed.get("b.p1"));
    assertEquals("parent1-c", listed.get("c.p1"));
    assertEquals("parent2-d", listed.get("d.p1"));
    assertEquals("main-e-x1.y2", listed.get("e.p1"));
    assertEquals("main-f-x1", listed.get("f.p1"));
    assertEquals("main-g-x1.y2", listed.get("g.p1"));
    assertEquals("inheritedVariant2-h", listed.get("h.p1"));
    assertEquals("inheritedVariant2-i", listed.get("i.p1"));
    assertEquals("inheritedVariant3-j", listed.get("j.p1"));
    // Context x=x1,y=y3
    listed = properties.listProperties(toMap(main, new String[] { "x1", "y3" }));
    assertEquals(expectedBaseSize + 4, listed.size());
    assertEquals("main-a-x1", listed.get("a.p1"));
    assertEquals("main-b", listed.get("b.p1"));
    assertEquals("parent1-c", listed.get("c.p1"));
    assertEquals("parent2-d", listed.get("d.p1"));
    assertEquals("main-e-x1", listed.get("e.p1"));
    assertEquals("main-f-x1", listed.get("f.p1"));
    assertEquals("inheritedVariant1-h", listed.get("h.p1"));
    assertEquals("inheritedVariant3-j", listed.get("j.p1"));
    // Context x=x2,y=y1
    listed = properties.listProperties(toMap(main, new String[] { "x2", "y1" }));
    assertEquals(expectedBaseSize, listed.size());
    assertEquals("main-a", listed.get("a.p1"));
    assertEquals("main-b", listed.get("b.p1"));
    assertEquals("parent1-c", listed.get("c.p1"));
    assertEquals("parent2-d", listed.get("d.p1"));
}
Also used : CompiledQueryProfile(com.yahoo.search.query.profile.compiled.CompiledQueryProfile) QueryProfile(com.yahoo.search.query.profile.QueryProfile) BackedOverridableQueryProfile(com.yahoo.search.query.profile.BackedOverridableQueryProfile) QueryProfileProperties(com.yahoo.search.query.profile.QueryProfileProperties) Properties(com.yahoo.search.query.Properties) QueryProfileProperties(com.yahoo.search.query.profile.QueryProfileProperties)

Example 7 with QueryProfileProperties

use of com.yahoo.search.query.profile.QueryProfileProperties in project vespa by vespa-engine.

the class QueryProfileVariantsTestCase method testVariantInheritanceOverridesBaseInheritanceComplex.

public void testVariantInheritanceOverridesBaseInheritanceComplex() {
    QueryProfile defaultQP = new QueryProfile("default");
    defaultQP.set("model.defaultIndex", "title", (QueryProfileRegistry) null);
    QueryProfile root = new QueryProfile("root");
    root.addInherited(defaultQP);
    root.set("model.defaultIndex", "default", (QueryProfileRegistry) null);
    QueryProfile querybest = new QueryProfile("querybest");
    querybest.set("defaultIndex", "title", (QueryProfileRegistry) null);
    querybest.set("queryString", "best", (QueryProfileRegistry) null);
    QueryProfile multi = new QueryProfile("multi");
    multi.setDimensions(new String[] { "x" });
    multi.addInherited(defaultQP);
    multi.set("model", querybest, (QueryProfileRegistry) null);
    multi.addInherited(root, new String[] { "x1" });
    multi.set("model.queryString", "love", new String[] { "x1" }, null);
    // Rumtimize
    defaultQP.freeze();
    root.freeze();
    querybest.freeze();
    multi.freeze();
    Properties runtime = new QueryProfileProperties(multi.compile(null));
    assertEquals("default", runtime.get("model.defaultIndex", toMap("x=x1")));
    assertEquals("love", runtime.get("model.queryString", toMap("x=x1")));
}
Also used : CompiledQueryProfile(com.yahoo.search.query.profile.compiled.CompiledQueryProfile) QueryProfile(com.yahoo.search.query.profile.QueryProfile) BackedOverridableQueryProfile(com.yahoo.search.query.profile.BackedOverridableQueryProfile) QueryProfileProperties(com.yahoo.search.query.profile.QueryProfileProperties) Properties(com.yahoo.search.query.Properties) QueryProfileProperties(com.yahoo.search.query.profile.QueryProfileProperties)

Example 8 with QueryProfileProperties

use of com.yahoo.search.query.profile.QueryProfileProperties in project vespa by vespa-engine.

the class QueryProfileVariantsTestCase method testQueryProfileReferences.

public void testQueryProfileReferences() {
    QueryProfile main = new QueryProfile("main");
    main.setDimensions(new String[] { "x1" });
    QueryProfile referencedMain = new QueryProfile("referencedMain");
    // In both
    referencedMain.set("r1", "mainReferenced-r1", (QueryProfileRegistry) null);
    // Only in this
    referencedMain.set("r2", "mainReferenced-r2", (QueryProfileRegistry) null);
    QueryProfile referencedVariant = new QueryProfile("referencedVariant");
    // In both
    referencedVariant.set("r1", "variantReferenced-r1", (QueryProfileRegistry) null);
    // Only in this
    referencedVariant.set("r3", "variantReferenced-r3", (QueryProfileRegistry) null);
    main.set("a", referencedMain, (QueryProfileRegistry) null);
    main.set("a", referencedVariant, new String[] { "x1" }, null);
    Properties properties = new QueryProfileProperties(main.compile(null));
    // No context
    Map<String, Object> listed = properties.listProperties();
    assertEquals(2, listed.size());
    assertEquals("mainReferenced-r1", listed.get("a.r1"));
    assertEquals("mainReferenced-r2", listed.get("a.r2"));
    // Context x=x1
    listed = properties.listProperties(toMap(main, new String[] { "x1" }));
    assertEquals(3, listed.size());
    assertEquals("variantReferenced-r1", listed.get("a.r1"));
    assertEquals("mainReferenced-r2", listed.get("a.r2"));
    assertEquals("variantReferenced-r3", listed.get("a.r3"));
}
Also used : CompiledQueryProfile(com.yahoo.search.query.profile.compiled.CompiledQueryProfile) QueryProfile(com.yahoo.search.query.profile.QueryProfile) BackedOverridableQueryProfile(com.yahoo.search.query.profile.BackedOverridableQueryProfile) QueryProfileProperties(com.yahoo.search.query.profile.QueryProfileProperties) Properties(com.yahoo.search.query.Properties) QueryProfileProperties(com.yahoo.search.query.profile.QueryProfileProperties)

Example 9 with QueryProfileProperties

use of com.yahoo.search.query.profile.QueryProfileProperties in project vespa by vespa-engine.

the class QueryProfileVariantsTestCase method testListVariantPropertiesCompounds2.

public void testListVariantPropertiesCompounds2() {
    QueryProfile parent1 = new QueryProfile("parent1");
    // Defined everywhere
    parent1.set("p1.a", "parent1-a", (QueryProfileRegistry) null);
    // Defined everywhere, but no variants
    parent1.set("p1.b", "parent1-b", (QueryProfileRegistry) null);
    // Defined in both parents only
    parent1.set("p1.c", "parent1-c", (QueryProfileRegistry) null);
    QueryProfile parent2 = new QueryProfile("parent2");
    parent2.set("p1.a", "parent2-a", (QueryProfileRegistry) null);
    parent2.set("p1.b", "parent2-b", (QueryProfileRegistry) null);
    parent2.set("p1.c", "parent2-c", (QueryProfileRegistry) null);
    // Defined in second parent only
    parent2.set("p1.d", "parent2-d", (QueryProfileRegistry) null);
    QueryProfile main = new QueryProfile("main");
    main.setDimensions(new String[] { "x", "y" });
    main.addInherited(parent1);
    main.addInherited(parent2);
    main.set("p1.a", "main-a", (QueryProfileRegistry) null);
    main.set("p1.a", "main-a-x1", new String[] { "x1" }, null);
    // Defined in two variants only
    main.set("p1.e", "main-e-x1", new String[] { "x1" }, null);
    // Defined in one variants only
    main.set("p1.f", "main-f-x1", new String[] { "x1" }, null);
    main.set("p1.a", "main-a-x1.y1", new String[] { "x1", "y1" }, null);
    main.set("p1.a", "main-a-x1.y2", new String[] { "x1", "y2" }, null);
    main.set("p1.e", "main-e-x1.y2", new String[] { "x1", "y2" }, null);
    // Defined in one variant only
    main.set("p1.g", "main-g-x1.y2", new String[] { "x1", "y2" }, null);
    main.set("p1.b", "main-b", (QueryProfileRegistry) null);
    QueryProfile inheritedVariant1 = new QueryProfile("inheritedVariant1");
    inheritedVariant1.set("p1.a", "inheritedVariant1-a", (QueryProfileRegistry) null);
    // Only defined in two inherited variants
    inheritedVariant1.set("p1.h", "inheritedVariant1-h", (QueryProfileRegistry) null);
    QueryProfile inheritedVariant2 = new QueryProfile("inheritedVariant2");
    inheritedVariant2.set("p1.a", "inheritedVariant2-a", (QueryProfileRegistry) null);
    // Only defined in two inherited variants
    inheritedVariant2.set("p1.h", "inheritedVariant2-h", (QueryProfileRegistry) null);
    // Only defined in one inherited variant
    inheritedVariant2.set("p1.i", "inheritedVariant2-i", (QueryProfileRegistry) null);
    QueryProfile inheritedVariant3 = new QueryProfile("inheritedVariant3");
    // Only defined in one inherited variant, but inherited twice
    inheritedVariant3.set("p1.j", "inheritedVariant3-j", (QueryProfileRegistry) null);
    main.addInherited(inheritedVariant1, new String[] { "x1" });
    main.addInherited(inheritedVariant3, new String[] { "x1" });
    main.addInherited(inheritedVariant2, new String[] { "x1", "y2" });
    main.addInherited(inheritedVariant3, new String[] { "x1", "y2" });
    Properties properties = new QueryProfileProperties(main.compile(null));
    int expectedBaseSize = 4;
    // No context
    Map<String, Object> listed = properties.listProperties();
    assertEquals(expectedBaseSize, listed.size());
    assertEquals("main-a", listed.get("p1.a"));
    assertEquals("main-b", listed.get("p1.b"));
    assertEquals("parent1-c", listed.get("p1.c"));
    assertEquals("parent2-d", listed.get("p1.d"));
    // Context x=x1
    listed = properties.listProperties(toMap(main, new String[] { "x1" }));
    assertEquals(expectedBaseSize + 4, listed.size());
    assertEquals("main-a-x1", listed.get("p1.a"));
    assertEquals("main-b", listed.get("p1.b"));
    assertEquals("parent1-c", listed.get("p1.c"));
    assertEquals("parent2-d", listed.get("p1.d"));
    assertEquals("main-e-x1", listed.get("p1.e"));
    assertEquals("main-f-x1", listed.get("p1.f"));
    assertEquals("inheritedVariant1-h", listed.get("p1.h"));
    assertEquals("inheritedVariant3-j", listed.get("p1.j"));
    // Context x=x1,y=y1
    listed = properties.listProperties(toMap(main, new String[] { "x1", "y1" }));
    assertEquals(expectedBaseSize + 4, listed.size());
    assertEquals("main-a-x1.y1", listed.get("p1.a"));
    assertEquals("main-b", listed.get("p1.b"));
    assertEquals("parent1-c", listed.get("p1.c"));
    assertEquals("parent2-d", listed.get("p1.d"));
    assertEquals("main-e-x1", listed.get("p1.e"));
    assertEquals("main-f-x1", listed.get("p1.f"));
    assertEquals("inheritedVariant1-h", listed.get("p1.h"));
    assertEquals("inheritedVariant3-j", listed.get("p1.j"));
    // Context x=x1,y=y2
    listed = properties.listProperties(toMap(main, new String[] { "x1", "y2" }));
    assertEquals(expectedBaseSize + 6, listed.size());
    assertEquals("main-a-x1.y2", listed.get("p1.a"));
    assertEquals("main-b", listed.get("p1.b"));
    assertEquals("parent1-c", listed.get("p1.c"));
    assertEquals("parent2-d", listed.get("p1.d"));
    assertEquals("main-e-x1.y2", listed.get("p1.e"));
    assertEquals("main-f-x1", listed.get("p1.f"));
    assertEquals("main-g-x1.y2", listed.get("p1.g"));
    assertEquals("inheritedVariant2-h", listed.get("p1.h"));
    assertEquals("inheritedVariant2-i", listed.get("p1.i"));
    assertEquals("inheritedVariant3-j", listed.get("p1.j"));
    // Context x=x1,y=y3
    listed = properties.listProperties(toMap(main, new String[] { "x1", "y3" }));
    assertEquals(expectedBaseSize + 4, listed.size());
    assertEquals("main-a-x1", listed.get("p1.a"));
    assertEquals("main-b", listed.get("p1.b"));
    assertEquals("parent1-c", listed.get("p1.c"));
    assertEquals("parent2-d", listed.get("p1.d"));
    assertEquals("main-e-x1", listed.get("p1.e"));
    assertEquals("main-f-x1", listed.get("p1.f"));
    assertEquals("inheritedVariant1-h", listed.get("p1.h"));
    assertEquals("inheritedVariant3-j", listed.get("p1.j"));
    // Context x=x2,y=y1
    listed = properties.listProperties(toMap(main, new String[] { "x2", "y1" }));
    assertEquals(expectedBaseSize, listed.size());
    assertEquals("main-a", listed.get("p1.a"));
    assertEquals("main-b", listed.get("p1.b"));
    assertEquals("parent1-c", listed.get("p1.c"));
    assertEquals("parent2-d", listed.get("p1.d"));
}
Also used : CompiledQueryProfile(com.yahoo.search.query.profile.compiled.CompiledQueryProfile) QueryProfile(com.yahoo.search.query.profile.QueryProfile) BackedOverridableQueryProfile(com.yahoo.search.query.profile.BackedOverridableQueryProfile) QueryProfileProperties(com.yahoo.search.query.profile.QueryProfileProperties) Properties(com.yahoo.search.query.Properties) QueryProfileProperties(com.yahoo.search.query.profile.QueryProfileProperties)

Example 10 with QueryProfileProperties

use of com.yahoo.search.query.profile.QueryProfileProperties in project vespa by vespa-engine.

the class QueryProfileVariantsTestCase method testListVariantPropertiesNoCompounds.

public void testListVariantPropertiesNoCompounds() {
    QueryProfile parent1 = new QueryProfile("parent1");
    // Defined everywhere
    parent1.set("a", "parent1-a", (QueryProfileRegistry) null);
    // Defined everywhere, but no variants
    parent1.set("b", "parent1-b", (QueryProfileRegistry) null);
    // Defined in both parents only
    parent1.set("c", "parent1-c", (QueryProfileRegistry) null);
    QueryProfile parent2 = new QueryProfile("parent2");
    parent2.set("a", "parent2-a", (QueryProfileRegistry) null);
    parent2.set("b", "parent2-b", (QueryProfileRegistry) null);
    parent2.set("c", "parent2-c", (QueryProfileRegistry) null);
    // Defined in second parent only
    parent2.set("d", "parent2-d", (QueryProfileRegistry) null);
    QueryProfile main = new QueryProfile("main");
    main.setDimensions(new String[] { "x", "y" });
    main.addInherited(parent1);
    main.addInherited(parent2);
    main.set("a", "main-a", (QueryProfileRegistry) null);
    main.set("a", "main-a-x1", new String[] { "x1" }, null);
    // Defined in two variants only
    main.set("e", "main-e-x1", new String[] { "x1" }, null);
    // Defined in one variants only
    main.set("f", "main-f-x1", new String[] { "x1" }, null);
    main.set("a", "main-a-x1.y1", new String[] { "x1", "y1" }, null);
    main.set("a", "main-a-x1.y2", new String[] { "x1", "y2" }, null);
    main.set("e", "main-e-x1.y2", new String[] { "x1", "y2" }, null);
    // Defined in one variant only
    main.set("g", "main-g-x1.y2", new String[] { "x1", "y2" }, null);
    main.set("b", "main-b", (QueryProfileRegistry) null);
    QueryProfile inheritedVariant1 = new QueryProfile("inheritedVariant1");
    inheritedVariant1.set("a", "inheritedVariant1-a", (QueryProfileRegistry) null);
    // Only defined in two inherited variants
    inheritedVariant1.set("h", "inheritedVariant1-h", (QueryProfileRegistry) null);
    QueryProfile inheritedVariant2 = new QueryProfile("inheritedVariant2");
    inheritedVariant2.set("a", "inheritedVariant2-a", (QueryProfileRegistry) null);
    // Only defined in two inherited variants
    inheritedVariant2.set("h", "inheritedVariant2-h", (QueryProfileRegistry) null);
    // Only defined in one inherited variant
    inheritedVariant2.set("i", "inheritedVariant2-i", (QueryProfileRegistry) null);
    QueryProfile inheritedVariant3 = new QueryProfile("inheritedVariant3");
    // Only defined in one inherited variant, but inherited twice
    inheritedVariant3.set("j", "inheritedVariant3-j", (QueryProfileRegistry) null);
    main.addInherited(inheritedVariant1, new String[] { "x1" });
    main.addInherited(inheritedVariant3, new String[] { "x1" });
    main.addInherited(inheritedVariant2, new String[] { "x1", "y2" });
    main.addInherited(inheritedVariant3, new String[] { "x1", "y2" });
    // Runtime-ify
    Properties properties = new QueryProfileProperties(main.compile(null));
    int expectedBaseSize = 4;
    // No context
    Map<String, Object> listed = properties.listProperties();
    assertEquals(expectedBaseSize, listed.size());
    assertEquals("main-a", listed.get("a"));
    assertEquals("main-b", listed.get("b"));
    assertEquals("parent1-c", listed.get("c"));
    assertEquals("parent2-d", listed.get("d"));
    // Context x=x1
    listed = properties.listProperties(toMap(main, new String[] { "x1" }));
    assertEquals(expectedBaseSize + 4, listed.size());
    assertEquals("main-a-x1", listed.get("a"));
    assertEquals("main-b", listed.get("b"));
    assertEquals("parent1-c", listed.get("c"));
    assertEquals("parent2-d", listed.get("d"));
    assertEquals("main-e-x1", listed.get("e"));
    assertEquals("main-f-x1", listed.get("f"));
    assertEquals("inheritedVariant1-h", listed.get("h"));
    assertEquals("inheritedVariant3-j", listed.get("j"));
    // Context x=x1,y=y1
    listed = properties.listProperties(toMap(main, new String[] { "x1", "y1" }));
    assertEquals(expectedBaseSize + 4, listed.size());
    assertEquals("main-a-x1.y1", listed.get("a"));
    assertEquals("main-b", listed.get("b"));
    assertEquals("parent1-c", listed.get("c"));
    assertEquals("parent2-d", listed.get("d"));
    assertEquals("main-e-x1", listed.get("e"));
    assertEquals("main-f-x1", listed.get("f"));
    assertEquals("inheritedVariant1-h", listed.get("h"));
    assertEquals("inheritedVariant3-j", listed.get("j"));
    // Context x=x1,y=y2
    listed = properties.listProperties(toMap(main, new String[] { "x1", "y2" }));
    assertEquals(expectedBaseSize + 6, listed.size());
    assertEquals("main-a-x1.y2", listed.get("a"));
    assertEquals("main-b", listed.get("b"));
    assertEquals("parent1-c", listed.get("c"));
    assertEquals("parent2-d", listed.get("d"));
    assertEquals("main-e-x1.y2", listed.get("e"));
    assertEquals("main-f-x1", listed.get("f"));
    assertEquals("main-g-x1.y2", listed.get("g"));
    assertEquals("inheritedVariant2-h", listed.get("h"));
    assertEquals("inheritedVariant2-i", listed.get("i"));
    assertEquals("inheritedVariant3-j", listed.get("j"));
    // Context x=x1,y=y3
    listed = properties.listProperties(toMap(main, new String[] { "x1", "y3" }));
    assertEquals(expectedBaseSize + 4, listed.size());
    assertEquals("main-a-x1", listed.get("a"));
    assertEquals("main-b", listed.get("b"));
    assertEquals("parent1-c", listed.get("c"));
    assertEquals("parent2-d", listed.get("d"));
    assertEquals("main-e-x1", listed.get("e"));
    assertEquals("main-f-x1", listed.get("f"));
    assertEquals("inheritedVariant1-h", listed.get("h"));
    assertEquals("inheritedVariant3-j", listed.get("j"));
    // Context x=x2,y=y1
    listed = properties.listProperties(toMap(main, new String[] { "x2", "y1" }));
    assertEquals(expectedBaseSize, listed.size());
    assertEquals("main-a", listed.get("a"));
    assertEquals("main-b", listed.get("b"));
    assertEquals("parent1-c", listed.get("c"));
    assertEquals("parent2-d", listed.get("d"));
}
Also used : CompiledQueryProfile(com.yahoo.search.query.profile.compiled.CompiledQueryProfile) QueryProfile(com.yahoo.search.query.profile.QueryProfile) BackedOverridableQueryProfile(com.yahoo.search.query.profile.BackedOverridableQueryProfile) QueryProfileProperties(com.yahoo.search.query.profile.QueryProfileProperties) Properties(com.yahoo.search.query.Properties) QueryProfileProperties(com.yahoo.search.query.profile.QueryProfileProperties)

Aggregations

QueryProfileProperties (com.yahoo.search.query.profile.QueryProfileProperties)25 CompiledQueryProfile (com.yahoo.search.query.profile.compiled.CompiledQueryProfile)23 QueryProfile (com.yahoo.search.query.profile.QueryProfile)21 Properties (com.yahoo.search.query.Properties)9 BackedOverridableQueryProfile (com.yahoo.search.query.profile.BackedOverridableQueryProfile)9 Properties (com.yahoo.processing.request.Properties)3 ModelObjectMap (com.yahoo.search.query.profile.ModelObjectMap)2 PropertyMap (com.yahoo.search.query.properties.PropertyMap)2 ImmutableMap (com.google.common.collect.ImmutableMap)1 CompoundName (com.yahoo.processing.request.CompoundName)1 CompiledQueryProfileRegistry (com.yahoo.search.query.profile.compiled.CompiledQueryProfileRegistry)1 QueryProfileConfigurer (com.yahoo.search.query.profile.config.QueryProfileConfigurer)1 DefaultProperties (com.yahoo.search.query.properties.DefaultProperties)1 QueryProperties (com.yahoo.search.query.properties.QueryProperties)1 RequestContextProperties (com.yahoo.search.query.properties.RequestContextProperties)1 HashMap (java.util.HashMap)1 HashSet (java.util.HashSet)1 Map (java.util.Map)1 CoreMatchers.containsString (org.hamcrest.CoreMatchers.containsString)1 Test (org.junit.Test)1