summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGeir Storli <geirst@oath.com>2018-06-07 08:23:55 +0000
committerGeir Storli <geirst@oath.com>2018-06-07 08:23:55 +0000
commitc6c88798f7e02b88dcf57bed11357128d3ddda78 (patch)
tree8eea46e773136924467f5e9c11b80a8523b0a289
parentc13e42f145eb0aada9853d965fb7243b40650201 (diff)
Add more unit tests for map of struct attributes.
-rw-r--r--config-model/src/test/derived/map_of_struct_attribute/attributes.cfg46
-rw-r--r--config-model/src/test/derived/map_of_struct_attribute/summary.cfg8
-rw-r--r--config-model/src/test/derived/map_of_struct_attribute/summarymap.cfg2
-rw-r--r--config-model/src/test/derived/map_of_struct_attribute/test.sd11
-rw-r--r--config-model/src/test/java/com/yahoo/searchdefinition/derived/AttributeListTestCase.java10
-rw-r--r--config-model/src/test/java/com/yahoo/searchdefinition/processing/ImplicitSummariesTestCase.java8
6 files changed, 72 insertions, 13 deletions
diff --git a/config-model/src/test/derived/map_of_struct_attribute/attributes.cfg b/config-model/src/test/derived/map_of_struct_attribute/attributes.cfg
index 9ada79e78bd..95cf8f761a0 100644
--- a/config-model/src/test/derived/map_of_struct_attribute/attributes.cfg
+++ b/config-model/src/test/derived/map_of_struct_attribute/attributes.cfg
@@ -1,4 +1,4 @@
-attribute[].name "elem_map.key"
+attribute[].name "str_elem_map.key"
attribute[].datatype STRING
attribute[].collectiontype ARRAY
attribute[].removeifzero false
@@ -18,7 +18,7 @@ attribute[].upperbound 9223372036854775807
attribute[].densepostinglistthreshold 0.4
attribute[].tensortype ""
attribute[].imported false
-attribute[].name "elem_map.value.name"
+attribute[].name "str_elem_map.value.name"
attribute[].datatype STRING
attribute[].collectiontype ARRAY
attribute[].removeifzero false
@@ -38,7 +38,7 @@ attribute[].upperbound 9223372036854775807
attribute[].densepostinglistthreshold 0.4
attribute[].tensortype ""
attribute[].imported false
-attribute[].name "elem_map.value.weight"
+attribute[].name "str_elem_map.value.weight"
attribute[].datatype INT32
attribute[].collectiontype ARRAY
attribute[].removeifzero false
@@ -58,3 +58,43 @@ attribute[].upperbound 9223372036854775807
attribute[].densepostinglistthreshold 0.4
attribute[].tensortype ""
attribute[].imported false
+attribute[].name "int_elem_map.key"
+attribute[].datatype INT32
+attribute[].collectiontype ARRAY
+attribute[].removeifzero false
+attribute[].createifnonexistent false
+attribute[].fastsearch false
+attribute[].huge false
+attribute[].sortascending true
+attribute[].sortfunction UCA
+attribute[].sortstrength PRIMARY
+attribute[].sortlocale ""
+attribute[].enablebitvectors false
+attribute[].enableonlybitvector false
+attribute[].fastaccess false
+attribute[].arity 8
+attribute[].lowerbound -9223372036854775808
+attribute[].upperbound 9223372036854775807
+attribute[].densepostinglistthreshold 0.4
+attribute[].tensortype ""
+attribute[].imported false
+attribute[].name "int_elem_map.value.name"
+attribute[].datatype STRING
+attribute[].collectiontype ARRAY
+attribute[].removeifzero false
+attribute[].createifnonexistent false
+attribute[].fastsearch false
+attribute[].huge false
+attribute[].sortascending true
+attribute[].sortfunction UCA
+attribute[].sortstrength PRIMARY
+attribute[].sortlocale ""
+attribute[].enablebitvectors false
+attribute[].enableonlybitvector false
+attribute[].fastaccess false
+attribute[].arity 8
+attribute[].lowerbound -9223372036854775808
+attribute[].upperbound 9223372036854775807
+attribute[].densepostinglistthreshold 0.4
+attribute[].tensortype ""
+attribute[].imported false
diff --git a/config-model/src/test/derived/map_of_struct_attribute/summary.cfg b/config-model/src/test/derived/map_of_struct_attribute/summary.cfg
index 4e1e3aec8aa..f70025c8f02 100644
--- a/config-model/src/test/derived/map_of_struct_attribute/summary.cfg
+++ b/config-model/src/test/derived/map_of_struct_attribute/summary.cfg
@@ -1,7 +1,9 @@
-defaultsummaryid 653486243
-classes[].id 653486243
+defaultsummaryid 1131098132
+classes[].id 1131098132
classes[].name "default"
-classes[].fields[].name "elem_map"
+classes[].fields[].name "str_elem_map"
+classes[].fields[].type "jsonstring"
+classes[].fields[].name "int_elem_map"
classes[].fields[].type "jsonstring"
classes[].fields[].name "rankfeatures"
classes[].fields[].type "featuredata"
diff --git a/config-model/src/test/derived/map_of_struct_attribute/summarymap.cfg b/config-model/src/test/derived/map_of_struct_attribute/summarymap.cfg
index ccfba719a96..1540b821ae1 100644
--- a/config-model/src/test/derived/map_of_struct_attribute/summarymap.cfg
+++ b/config-model/src/test/derived/map_of_struct_attribute/summarymap.cfg
@@ -1,5 +1,5 @@
defaultoutputclass -1
-override[].field "elem_map"
+override[].field "str_elem_map"
override[].command "attributecombiner"
override[].arguments ""
override[].field "rankfeatures"
diff --git a/config-model/src/test/derived/map_of_struct_attribute/test.sd b/config-model/src/test/derived/map_of_struct_attribute/test.sd
index cb2eac4ed78..e139a7f8168 100644
--- a/config-model/src/test/derived/map_of_struct_attribute/test.sd
+++ b/config-model/src/test/derived/map_of_struct_attribute/test.sd
@@ -4,7 +4,7 @@ search test {
field name type string {}
field weight type int {}
}
- field elem_map type map<string,elem> {
+ field str_elem_map type map<string,elem> {
indexing: summary
struct-field key {
indexing: attribute
@@ -16,5 +16,14 @@ search test {
indexing: attribute
}
}
+ field int_elem_map type map<int,elem> {
+ indexing: summary
+ struct-field key {
+ indexing: attribute
+ }
+ struct-field value.name {
+ indexing: attribute
+ }
+ }
}
}
diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/derived/AttributeListTestCase.java b/config-model/src/test/java/com/yahoo/searchdefinition/derived/AttributeListTestCase.java
index c3cfcae66e6..d36a165ceb5 100644
--- a/config-model/src/test/java/com/yahoo/searchdefinition/derived/AttributeListTestCase.java
+++ b/config-model/src/test/java/com/yahoo/searchdefinition/derived/AttributeListTestCase.java
@@ -80,13 +80,15 @@ public class AttributeListTestCase extends SearchDefinitionTestCase {
}
@Test
- public void map_of_struct_field_is_derived_into_array_attributes() throws IOException, ParseException {
+ public void map_of_struct_fields_are_derived_into_array_attributes() throws IOException, ParseException {
Search search = SearchBuilder.buildFromFile("src/test/derived/map_of_struct_attribute/test.sd");
Iterator<Attribute> attributes = new AttributeFields(search).attributeIterator();
- assertAttribute("elem_map.key", Attribute.Type.STRING, Attribute.CollectionType.ARRAY, attributes.next());
- assertAttribute("elem_map.value.name", Attribute.Type.STRING, Attribute.CollectionType.ARRAY, attributes.next());
- assertAttribute("elem_map.value.weight", Attribute.Type.INTEGER, Attribute.CollectionType.ARRAY, attributes.next());
+ assertAttribute("str_elem_map.key", Attribute.Type.STRING, Attribute.CollectionType.ARRAY, attributes.next());
+ assertAttribute("str_elem_map.value.name", Attribute.Type.STRING, Attribute.CollectionType.ARRAY, attributes.next());
+ assertAttribute("str_elem_map.value.weight", Attribute.Type.INTEGER, Attribute.CollectionType.ARRAY, attributes.next());
+ assertAttribute("int_elem_map.key", Attribute.Type.INTEGER, Attribute.CollectionType.ARRAY, attributes.next());
+ assertAttribute("int_elem_map.value.name", Attribute.Type.STRING, Attribute.CollectionType.ARRAY, attributes.next());
assertTrue(!attributes.hasNext());
}
diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/processing/ImplicitSummariesTestCase.java b/config-model/src/test/java/com/yahoo/searchdefinition/processing/ImplicitSummariesTestCase.java
index 9212617a870..da0732dfbaa 100644
--- a/config-model/src/test/java/com/yahoo/searchdefinition/processing/ImplicitSummariesTestCase.java
+++ b/config-model/src/test/java/com/yahoo/searchdefinition/processing/ImplicitSummariesTestCase.java
@@ -67,6 +67,12 @@ public class ImplicitSummariesTestCase {
@Test
public void attribute_combiner_transform_is_set_on_map_of_struct_with_only_struct_field_attributes() throws IOException, ParseException {
Search search = SearchBuilder.buildFromFile("src/test/derived/map_of_struct_attribute/test.sd");
- assertEquals(SummaryTransform.ATTRIBUTECOMBINER, search.getSummaryField("elem_map").getTransform());
+ assertEquals(SummaryTransform.ATTRIBUTECOMBINER, search.getSummaryField("str_elem_map").getTransform());
+ }
+
+ @Test
+ public void attribute_combiner_transform_is_not_set_when_map_of_struct_has_some_struct_field_attributes() throws IOException, ParseException {
+ Search search = SearchBuilder.buildFromFile("src/test/derived/map_of_struct_attribute/test.sd");
+ assertEquals(SummaryTransform.NONE, search.getSummaryField("int_elem_map").getTransform());
}
}