diff options
author | Tor Egge <Tor.Egge@online.no> | 2022-10-13 14:44:43 +0200 |
---|---|---|
committer | Tor Egge <Tor.Egge@online.no> | 2022-10-13 14:44:43 +0200 |
commit | 5b96704f8cb4982ff17d8ec9071c44a362cf59af (patch) | |
tree | 206b435cb6c0dde335feb15280fbf9310670e893 /searchlib/src/tests/index | |
parent | f2b3ed1ec55679cfb5508dfe2a58326475c895d4 (diff) |
Rename search::index::EmptyDocBuilder to search::test::DocBuilder.
Rename search::index::StringFieldBuilder to search::test::StringFieldBuilder.
Diffstat (limited to 'searchlib/src/tests/index')
-rw-r--r-- | searchlib/src/tests/index/string_field_builder/CMakeLists.txt | 9 | ||||
-rw-r--r-- | searchlib/src/tests/index/string_field_builder/string_field_builder_test.cpp | 141 |
2 files changed, 0 insertions, 150 deletions
diff --git a/searchlib/src/tests/index/string_field_builder/CMakeLists.txt b/searchlib/src/tests/index/string_field_builder/CMakeLists.txt deleted file mode 100644 index f8774eae5ca..00000000000 --- a/searchlib/src/tests/index/string_field_builder/CMakeLists.txt +++ /dev/null @@ -1,9 +0,0 @@ -# Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. -vespa_add_executable(searchlib_string_field_builder_test_app TEST - SOURCES - string_field_builder_test.cpp - DEPENDS - searchlib - GTest::GTest -) -vespa_add_test(NAME searchlib_string_field_builder_test_app COMMAND searchlib_string_field_builder_test_app) diff --git a/searchlib/src/tests/index/string_field_builder/string_field_builder_test.cpp b/searchlib/src/tests/index/string_field_builder/string_field_builder_test.cpp deleted file mode 100644 index 8c2b641f724..00000000000 --- a/searchlib/src/tests/index/string_field_builder/string_field_builder_test.cpp +++ /dev/null @@ -1,141 +0,0 @@ -// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. - -#include <vespa/searchlib/index/string_field_builder.h> -#include <vespa/document/annotation/annotation.h> -#include <vespa/document/annotation/span.h> -#include <vespa/document/annotation/spanlist.h> -#include <vespa/document/annotation/spantree.h> -#include <vespa/document/datatype/annotationtype.h> -#include <vespa/document/fieldvalue/stringfieldvalue.h> -#include <vespa/searchlib/index/empty_doc_builder.h> -#include <vespa/vespalib/gtest/gtest.h> -#include <cassert> -#include <iostream> - -using document::Annotation; -using document::AnnotationType; -using document::Span; -using document::SpanNode; -using document::SpanTree; -using document::StringFieldValue; -using search::index::EmptyDocBuilder; -using search::index::StringFieldBuilder; - -namespace -{ - -const vespalib::string SPANTREE_NAME("linguistics"); - -struct MyAnnotation { - int32_t start; - int32_t length; - std::optional<vespalib::string> label; - - MyAnnotation(int32_t start_in, int32_t length_in) noexcept - : start(start_in), - length(length_in), - label() - { - } - - MyAnnotation(int32_t start_in, int32_t length_in, vespalib::string label_in) noexcept - : start(start_in), - length(length_in), - label(label_in) - { - } - - bool operator==(const MyAnnotation& rhs) const noexcept; -}; - -bool -MyAnnotation::operator==(const MyAnnotation& rhs) const noexcept -{ - return start == rhs.start && - length == rhs.length && - label == rhs.label; -} - - -std::ostream& operator<<(std::ostream& os, const MyAnnotation& ann) { - os << "[" << ann.start << "," << ann.length << "]"; - if (ann.label.has_value()) { - os << "(\"" << ann.label.value() << "\")"; - } - return os; -} - -} - -class StringFieldBuilderTest : public testing::Test -{ -protected: - EmptyDocBuilder edb; - StringFieldBuilder sfb; - StringFieldBuilderTest(); - ~StringFieldBuilderTest(); - std::vector<MyAnnotation> get_annotations(const StringFieldValue& val); - void assert_annotations(std::vector<MyAnnotation> exp, const vespalib::string& plain, const StringFieldValue& val); -}; - -StringFieldBuilderTest::StringFieldBuilderTest() - : testing::Test(), - edb(), - sfb(edb) -{ -} - -StringFieldBuilderTest::~StringFieldBuilderTest() = default; - -std::vector<MyAnnotation> -StringFieldBuilderTest::get_annotations(const StringFieldValue& val) -{ - std::vector<MyAnnotation> result; - StringFieldValue::SpanTrees trees = val.getSpanTrees(); - const auto* tree = StringFieldValue::findTree(trees, SPANTREE_NAME); - if (tree != nullptr) { - for (auto& ann : *tree) { - assert(ann.getType() == *AnnotationType::TERM); - auto span = dynamic_cast<const Span *>(ann.getSpanNode()); - if (span == nullptr) { - continue; - } - auto ann_fv = ann.getFieldValue(); - if (ann_fv == nullptr) { - result.emplace_back(span->from(), span->length()); - } else { - result.emplace_back(span->from(), span->length(), dynamic_cast<const StringFieldValue &>(*ann_fv).getValue()); - } - } - } - return result; -} - -void -StringFieldBuilderTest::assert_annotations(std::vector<MyAnnotation> exp, const vespalib::string& plain, const StringFieldValue& val) -{ - EXPECT_EQ(exp, get_annotations(val)); - EXPECT_EQ(plain, val.getValue()); -} - -TEST_F(StringFieldBuilderTest, no_annotations) -{ - assert_annotations({}, "foo", StringFieldValue("foo")); -} - -TEST_F(StringFieldBuilderTest, single_word) -{ - assert_annotations({{0, 4}}, "word", sfb.word("word").build()); -} - -TEST_F(StringFieldBuilderTest, tokenize) -{ - assert_annotations({{0, 4}, {5, 2}, {8, 1}, {10, 4}}, "this is a test", sfb.tokenize("this is a test").build()); -} - -TEST_F(StringFieldBuilderTest, alt_word) -{ - assert_annotations({{0, 3}, {4, 3}, {4, 3, "baz"}}, "foo bar", sfb.word("foo").space().word("bar").alt_word("baz").build()); -} - -GTEST_MAIN_RUN_ALL_TESTS() |