summaryrefslogtreecommitdiffstats
path: root/searchlib/src/tests/common
diff options
context:
space:
mode:
authorGeir Storli <geirst@verizonmedia.com>2020-05-20 13:10:09 +0000
committerGeir Storli <geirst@verizonmedia.com>2020-05-20 13:10:09 +0000
commit47e95a1a3506525c832517a4f8b0e925c9f12c02 (patch)
tree669e929e6f21741c880e95a131409c26241dbe19 /searchlib/src/tests/common
parenteb1e9294ad2c207f7c9b465f42d2b3de72fd336e (diff)
Prepare to support matched-elements-only for arrays and weighted sets of primitive types.
This renames StructFieldMapper to MatchingElementsFields with added support for basic fields. Also some terminology is aligned.
Diffstat (limited to 'searchlib/src/tests/common')
-rw-r--r--searchlib/src/tests/common/matching_elements_fields/CMakeLists.txt9
-rw-r--r--searchlib/src/tests/common/matching_elements_fields/matching_elements_fields_test.cpp55
-rw-r--r--searchlib/src/tests/common/struct_field_mapper/CMakeLists.txt9
-rw-r--r--searchlib/src/tests/common/struct_field_mapper/struct_field_mapper_test.cpp52
4 files changed, 64 insertions, 61 deletions
diff --git a/searchlib/src/tests/common/matching_elements_fields/CMakeLists.txt b/searchlib/src/tests/common/matching_elements_fields/CMakeLists.txt
new file mode 100644
index 00000000000..3d6f338315a
--- /dev/null
+++ b/searchlib/src/tests/common/matching_elements_fields/CMakeLists.txt
@@ -0,0 +1,9 @@
+# Copyright 2019 Oath Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+vespa_add_executable(searchlib_common_matching_elements_fields_test_app TEST
+ SOURCES
+ matching_elements_fields_test.cpp
+ DEPENDS
+ searchlib
+ gtest
+)
+vespa_add_test(NAME searchlib_common_matching_elements_fields_test_app COMMAND searchlib_common_matching_elements_fields_test_app)
diff --git a/searchlib/src/tests/common/matching_elements_fields/matching_elements_fields_test.cpp b/searchlib/src/tests/common/matching_elements_fields/matching_elements_fields_test.cpp
new file mode 100644
index 00000000000..766be30f8f1
--- /dev/null
+++ b/searchlib/src/tests/common/matching_elements_fields/matching_elements_fields_test.cpp
@@ -0,0 +1,55 @@
+// Copyright 2019 Oath Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+
+#include <vespa/vespalib/gtest/gtest.h>
+#include <vespa/searchlib/common/matching_elements_fields.h>
+
+using namespace search;
+
+namespace {
+
+std::string str(const vespalib::string &s) { return std::string(s.data(), s.size()); }
+
+}
+
+struct MatchingElementsFieldsTest : ::testing::Test {
+ MatchingElementsFields fields;
+ MatchingElementsFieldsTest() : fields() {
+ fields.add_mapping("foo", "foo.a");
+ fields.add_mapping("foo", "foo.b");
+ fields.add_mapping("bar", "bar.x");
+ fields.add_mapping("bar", "bar.y");
+ fields.add_field("baz");
+ }
+ ~MatchingElementsFieldsTest() = default;
+};
+
+TEST_F(MatchingElementsFieldsTest, require_that_field_can_be_identified) {
+ EXPECT_TRUE(fields.has_field("foo"));
+ EXPECT_TRUE(fields.has_field("bar"));
+ EXPECT_TRUE(fields.has_field("baz"));
+ EXPECT_TRUE(!fields.has_field("foo.a"));
+ EXPECT_TRUE(!fields.has_field("bar.x"));
+ EXPECT_TRUE(!fields.has_field("bogus"));
+}
+
+TEST_F(MatchingElementsFieldsTest, require_that_struct_field_can_be_identified) {
+ EXPECT_TRUE(!fields.has_struct_field("foo"));
+ EXPECT_TRUE(!fields.has_struct_field("bar"));
+ EXPECT_TRUE(!fields.has_struct_field("baz"));
+ EXPECT_TRUE(fields.has_struct_field("foo.a"));
+ EXPECT_TRUE(fields.has_struct_field("bar.x"));
+ EXPECT_TRUE(!fields.has_struct_field("bogus"));
+}
+
+TEST_F(MatchingElementsFieldsTest, require_that_struct_field_maps_to_enclosing_field_name) {
+ EXPECT_EQ(str(fields.get_enclosing_field("foo.a")), str("foo"));
+ EXPECT_EQ(str(fields.get_enclosing_field("foo.b")), str("foo"));
+ EXPECT_EQ(str(fields.get_enclosing_field("bar.x")), str("bar"));
+ EXPECT_EQ(str(fields.get_enclosing_field("bar.y")), str("bar"));
+}
+
+TEST_F(MatchingElementsFieldsTest, require_that_nonexisting_struct_field_maps_to_empty_string) {
+ EXPECT_EQ(str(fields.get_enclosing_field("bogus")), str(""));
+}
+
+GTEST_MAIN_RUN_ALL_TESTS()
diff --git a/searchlib/src/tests/common/struct_field_mapper/CMakeLists.txt b/searchlib/src/tests/common/struct_field_mapper/CMakeLists.txt
deleted file mode 100644
index f5712d22989..00000000000
--- a/searchlib/src/tests/common/struct_field_mapper/CMakeLists.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-# Copyright 2019 Oath Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
-vespa_add_executable(searchlib_common_struct_field_mapper_test_app TEST
- SOURCES
- struct_field_mapper_test.cpp
- DEPENDS
- searchlib
- gtest
-)
-vespa_add_test(NAME searchlib_common_struct_field_mapper_test_app COMMAND searchlib_common_struct_field_mapper_test_app)
diff --git a/searchlib/src/tests/common/struct_field_mapper/struct_field_mapper_test.cpp b/searchlib/src/tests/common/struct_field_mapper/struct_field_mapper_test.cpp
deleted file mode 100644
index c5368111859..00000000000
--- a/searchlib/src/tests/common/struct_field_mapper/struct_field_mapper_test.cpp
+++ /dev/null
@@ -1,52 +0,0 @@
-// Copyright 2019 Oath Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
-
-#include <vespa/vespalib/gtest/gtest.h>
-#include <vespa/searchlib/common/struct_field_mapper.h>
-
-using namespace search;
-
-namespace {
-
-std::string str(const vespalib::string &s) { return std::string(s.data(), s.size()); }
-
-}
-
-struct StructFieldMapperTest : ::testing::Test {
- StructFieldMapper mapper;
- StructFieldMapperTest() : mapper() {
- mapper.add_mapping("foo", "foo.a");
- mapper.add_mapping("foo", "foo.b");
- mapper.add_mapping("bar", "bar.x");
- mapper.add_mapping("bar", "bar.y");
- }
- ~StructFieldMapperTest() = default;
-};
-
-TEST_F(StructFieldMapperTest, require_that_struct_field_can_be_identified) {
- EXPECT_TRUE(mapper.is_struct_field("foo"));
- EXPECT_TRUE(mapper.is_struct_field("bar"));
- EXPECT_TRUE(!mapper.is_struct_field("foo.a"));
- EXPECT_TRUE(!mapper.is_struct_field("bar.x"));
- EXPECT_TRUE(!mapper.is_struct_field("bogus"));
-}
-
-TEST_F(StructFieldMapperTest, require_that_struct_subfield_can_be_identified) {
- EXPECT_TRUE(!mapper.is_struct_subfield("foo"));
- EXPECT_TRUE(!mapper.is_struct_subfield("bar"));
- EXPECT_TRUE(mapper.is_struct_subfield("foo.a"));
- EXPECT_TRUE(mapper.is_struct_subfield("bar.x"));
- EXPECT_TRUE(!mapper.is_struct_subfield("bogus"));
-}
-
-TEST_F(StructFieldMapperTest, require_that_struct_subfield_maps_to_enclosing_struct_field_name) {
- EXPECT_EQ(str(mapper.get_struct_field("foo.a")), str("foo"));
- EXPECT_EQ(str(mapper.get_struct_field("foo.b")), str("foo"));
- EXPECT_EQ(str(mapper.get_struct_field("bar.x")), str("bar"));
- EXPECT_EQ(str(mapper.get_struct_field("bar.y")), str("bar"));
-}
-
-TEST_F(StructFieldMapperTest, require_that_nonexisting_struct_subfield_maps_to_empty_string) {
- EXPECT_EQ(str(mapper.get_struct_field("bogus")), str(""));
-}
-
-GTEST_MAIN_RUN_ALL_TESTS()