summaryrefslogtreecommitdiffstats
path: root/searchlib
diff options
context:
space:
mode:
authorJon Bratseth <bratseth@verizonmedia.com>2019-06-28 08:56:48 -0500
committerJon Bratseth <bratseth@verizonmedia.com>2019-06-28 08:56:48 -0500
commit781d6dfd8afdcb1da0ce29ef37ccbc0c45dc155d (patch)
tree18846b64a9ea079196591f93bd2856a8b5459b4d /searchlib
parent38be09692fbc8e286ed1b669771e1c2d66e1db6c (diff)
parent4f9ad5d65f0e7fac3796830b90c2f8b9128523ce (diff)
Merge with master
Diffstat (limited to 'searchlib')
-rw-r--r--searchlib/src/tests/memoryindex/compact_words_store/CMakeLists.txt1
-rw-r--r--searchlib/src/tests/memoryindex/compact_words_store/compact_words_store_test.cpp90
-rw-r--r--searchlib/src/tests/memoryindex/datastore/CMakeLists.txt2
-rw-r--r--searchlib/src/tests/memoryindex/datastore/feature_store_test.cpp154
-rw-r--r--searchlib/src/tests/memoryindex/datastore/word_store_test.cpp60
-rw-r--r--searchlib/src/tests/memoryindex/document_inverter/CMakeLists.txt1
-rw-r--r--searchlib/src/tests/memoryindex/document_inverter/document_inverter_test.cpp273
-rw-r--r--searchlib/src/tests/memoryindex/field_index_remover/CMakeLists.txt1
-rw-r--r--searchlib/src/tests/memoryindex/field_index_remover/field_index_remover_test.cpp62
-rw-r--r--searchlib/src/tests/memoryindex/field_inverter/CMakeLists.txt1
-rw-r--r--searchlib/src/tests/memoryindex/field_inverter/field_inverter_test.cpp362
-rw-r--r--searchlib/src/tests/memoryindex/url_field_inverter/CMakeLists.txt1
-rw-r--r--searchlib/src/tests/memoryindex/url_field_inverter/url_field_inverter_test.cpp588
13 files changed, 741 insertions, 855 deletions
diff --git a/searchlib/src/tests/memoryindex/compact_words_store/CMakeLists.txt b/searchlib/src/tests/memoryindex/compact_words_store/CMakeLists.txt
index ee31ef7c7aa..754ff796690 100644
--- a/searchlib/src/tests/memoryindex/compact_words_store/CMakeLists.txt
+++ b/searchlib/src/tests/memoryindex/compact_words_store/CMakeLists.txt
@@ -4,5 +4,6 @@ vespa_add_executable(searchlib_compact_words_store_test_app TEST
compact_words_store_test.cpp
DEPENDS
searchlib
+ gtest
)
vespa_add_test(NAME searchlib_compact_words_store_test_app COMMAND searchlib_compact_words_store_test_app)
diff --git a/searchlib/src/tests/memoryindex/compact_words_store/compact_words_store_test.cpp b/searchlib/src/tests/memoryindex/compact_words_store/compact_words_store_test.cpp
index bda29115db6..52c85a70160 100644
--- a/searchlib/src/tests/memoryindex/compact_words_store/compact_words_store_test.cpp
+++ b/searchlib/src/tests/memoryindex/compact_words_store/compact_words_store_test.cpp
@@ -1,10 +1,10 @@
// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
-#include <vespa/vespalib/testkit/testapp.h>
#include <vespa/searchlib/memoryindex/compact_words_store.h>
#include <vespa/vespalib/datastore/entryref.h>
-#include <vespa/vespalib/stllike/string.h>
+#include <vespa/vespalib/gtest/gtest.h>
#include <vespa/vespalib/stllike/hash_map.hpp>
+#include <vespa/vespalib/stllike/string.h>
#include <iostream>
#include <map>
@@ -13,9 +13,9 @@ using namespace search::datastore;
using namespace search::memoryindex;
using vespalib::MemoryUsage;
-typedef CompactWordsStore::Builder Builder;
-typedef CompactWordsStore::Iterator Iterator;
-typedef Builder::WordRefVector WordRefVector;
+using Builder = CompactWordsStore::Builder;
+using Iterator = CompactWordsStore::Iterator;
+using WordRefVector = Builder::WordRefVector;
const EntryRef w1(1);
const EntryRef w2(2);
@@ -52,54 +52,52 @@ toStr(Iterator itr)
return oss.str();
}
-struct SingleFixture
-{
- CompactWordsStore _store;
- SingleFixture() : _store() {
- _store.insert(Builder(d1).insert(w1).insert(w2).insert(w3));
+struct SingleDocumentTest : public ::testing::Test {
+ CompactWordsStore store;
+ SingleDocumentTest() : store() {
+ store.insert(Builder(d1).insert(w1).insert(w2).insert(w3));
}
};
-struct MultiFixture
-{
- CompactWordsStore _store;
- MultiFixture() : _store() {
- _store.insert(Builder(d1).insert(w1));
- _store.insert(Builder(d2).insert(w2));
- _store.insert(Builder(d3).insert(w3));
+struct MultiDocumentTest : public ::testing::Test {
+ CompactWordsStore store;
+ MultiDocumentTest() : store() {
+ store.insert(Builder(d1).insert(w1));
+ store.insert(Builder(d2).insert(w2));
+ store.insert(Builder(d3).insert(w3));
}
};
-TEST_F("require that fields and words can be added for a document", SingleFixture)
+TEST_F(SingleDocumentTest, fields_and_words_can_be_added_for_a_document)
{
- EXPECT_EQUAL("[1,2,3]", toStr(f._store.get(d1)));
+ EXPECT_EQ("[1,2,3]", toStr(store.get(d1)));
}
-TEST_F("require that multiple documents can be added", MultiFixture)
+TEST_F(MultiDocumentTest, multiple_documents_can_be_added)
{
- EXPECT_EQUAL("[1]", toStr(f._store.get(d1)));
- EXPECT_EQUAL("[2]", toStr(f._store.get(d2)));
- EXPECT_EQUAL("[3]", toStr(f._store.get(d3)));
- EXPECT_FALSE(f._store.get(d4).valid());
+ EXPECT_EQ("[1]", toStr(store.get(d1)));
+ EXPECT_EQ("[2]", toStr(store.get(d2)));
+ EXPECT_EQ("[3]", toStr(store.get(d3)));
+ EXPECT_FALSE(store.get(d4).valid());
}
-TEST_F("require that documents can be removed", MultiFixture)
+TEST_F(MultiDocumentTest, documents_can_be_removed)
{
- f._store.remove(d2);
- EXPECT_TRUE(f._store.get(d1).valid());
- EXPECT_FALSE(f._store.get(d2).valid());
- EXPECT_TRUE(f._store.get(d3).valid());
+ store.remove(d2);
+ EXPECT_TRUE(store.get(d1).valid());
+ EXPECT_FALSE(store.get(d2).valid());
+ EXPECT_TRUE(store.get(d3).valid());
}
-TEST_F("require that documents can be removed and re-inserted", MultiFixture)
+TEST_F(MultiDocumentTest, documents_can_be_removed_and_reinserted)
{
- f._store.remove(d2);
- f._store.insert(Builder(d2).insert(w4));
- EXPECT_EQUAL("[4]", toStr(f._store.get(d2)));
+ store.remove(d2);
+ store.insert(Builder(d2).insert(w4));
+ EXPECT_EQ("[4]", toStr(store.get(d2)));
}
-TEST("require that a lot of words can be inserted, retrieved and removed")
+TEST(CompactWordStoreTest, multiple_words_can_be_inserted_retrieved_and_removed)
{
CompactWordsStore store;
for (uint32_t docId = 0; docId < 50; ++docId) {
@@ -113,10 +111,10 @@ TEST("require that a lot of words can be inserted, retrieved and removed")
}
for (uint32_t docId = 0; docId < 50; ++docId) {
WordRefVector words = build(store.get(docId));
- EXPECT_EQUAL(20000u, words.size());
+ EXPECT_EQ(20000u, words.size());
uint32_t wordRef = 0;
for (auto word : words) {
- EXPECT_EQUAL(wordRef++, word.ref());
+ EXPECT_EQ(wordRef++, word.ref());
}
store.remove(docId);
MemoryUsage usage = store.getMemoryUsage();
@@ -124,7 +122,7 @@ TEST("require that a lot of words can be inserted, retrieved and removed")
}
}
-TEST("require that initial memory usage is reported")
+TEST(CompactWordStoreTest, initial_memory_usage_is_reported)
{
CompactWordsStore store;
CompactWordsStore::DocumentWordsMap docs;
@@ -134,24 +132,24 @@ TEST("require that initial memory usage is reported")
initExp.incUsedBytes(docs.getMemoryUsed());
initExp.merge(internalStore.getMemoryUsage());
MemoryUsage init = store.getMemoryUsage();
- EXPECT_EQUAL(initExp.allocatedBytes(), init.allocatedBytes());
- EXPECT_EQUAL(initExp.usedBytes(), init.usedBytes());
- EXPECT_GREATER(init.allocatedBytes(), init.usedBytes());
- EXPECT_GREATER(init.allocatedBytes(), 0u);
- EXPECT_GREATER(init.usedBytes(), 0u);
+ EXPECT_EQ(initExp.allocatedBytes(), init.allocatedBytes());
+ EXPECT_EQ(initExp.usedBytes(), init.usedBytes());
+ EXPECT_GT(init.allocatedBytes(), init.usedBytes());
+ EXPECT_GT(init.allocatedBytes(), 0u);
+ EXPECT_GT(init.usedBytes(), 0u);
}
-TEST("require that memory usage is updated after insert")
+TEST(CompactWordStoreTest, memory_usage_is_updated_after_insert)
{
CompactWordsStore store;
MemoryUsage init = store.getMemoryUsage();
store.insert(Builder(d1).insert(w1));
MemoryUsage after = store.getMemoryUsage();
- EXPECT_GREATER_EQUAL(after.allocatedBytes(), init.allocatedBytes());
- EXPECT_GREATER(after.usedBytes(), init.usedBytes());
+ EXPECT_GE(after.allocatedBytes(), init.allocatedBytes());
+ EXPECT_GT(after.usedBytes(), init.usedBytes());
}
+GTEST_MAIN_RUN_ALL_TESTS()
-TEST_MAIN() { TEST_RUN_ALL(); }
diff --git a/searchlib/src/tests/memoryindex/datastore/CMakeLists.txt b/searchlib/src/tests/memoryindex/datastore/CMakeLists.txt
index 45507f3b0ae..be1a193cd3c 100644
--- a/searchlib/src/tests/memoryindex/datastore/CMakeLists.txt
+++ b/searchlib/src/tests/memoryindex/datastore/CMakeLists.txt
@@ -4,6 +4,7 @@ vespa_add_executable(searchlib_feature_store_test_app TEST
feature_store_test.cpp
DEPENDS
searchlib
+ gtest
)
vespa_add_test(NAME searchlib_feature_store_test_app COMMAND searchlib_feature_store_test_app)
vespa_add_executable(searchlib_word_store_test_app TEST
@@ -11,5 +12,6 @@ vespa_add_executable(searchlib_word_store_test_app TEST
word_store_test.cpp
DEPENDS
searchlib
+ gtest
)
vespa_add_test(NAME searchlib_word_store_test_app COMMAND searchlib_word_store_test_app)
diff --git a/searchlib/src/tests/memoryindex/datastore/feature_store_test.cpp b/searchlib/src/tests/memoryindex/datastore/feature_store_test.cpp
index aca83d67a8a..c6368bee6eb 100644
--- a/searchlib/src/tests/memoryindex/datastore/feature_store_test.cpp
+++ b/searchlib/src/tests/memoryindex/datastore/feature_store_test.cpp
@@ -1,8 +1,10 @@
// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+
+#include <vespa/searchlib/memoryindex/feature_store.h>
+#include <vespa/vespalib/gtest/gtest.h>
+
#include <vespa/log/log.h>
LOG_SETUP("feature_store_test");
-#include <vespa/vespalib/testkit/testapp.h>
-#include <vespa/searchlib/memoryindex/feature_store.h>
using namespace search::btree;
using namespace search::datastore;
@@ -11,62 +13,55 @@ using namespace search::index;
using search::index::schema::CollectionType;
using search::index::schema::DataType;
-namespace search
-{
-
+namespace search::memoryindex {
-namespace memoryindex
-{
+class FeatureStoreTest : public ::testing::Test {
+public:
+ Schema schema;
+ FeatureStore fs;
+ Schema make_schema() const;
+ FeatureStoreTest();
+};
-class Test : public vespalib::TestApp
+Schema
+FeatureStoreTest::make_schema() const
{
-private:
- Schema _schema;
-
- const Schema & getSchema() const { return _schema; }
- bool assertFeatures(const DocIdAndFeatures &exp, const DocIdAndFeatures &act);
- void requireThatFeaturesCanBeAddedAndRetrieved();
- void requireThatNextWordsAreWorking();
- void requireThatAddFeaturesTriggersChangeOfBuffer();
-
-public:
- Test();
- int Main() override;
-};
+ Schema result;
+ result.addIndexField(Schema::IndexField("f0", DataType::STRING));
+ result.addIndexField(Schema::IndexField("f1", DataType::STRING, CollectionType::WEIGHTEDSET));
+ return result;
+}
+FeatureStoreTest::FeatureStoreTest()
+ : schema(make_schema()),
+ fs(schema)
+{
+}
-bool
-Test::assertFeatures(const DocIdAndFeatures &exp,
- const DocIdAndFeatures &act)
+void
+assertFeatures(const DocIdAndFeatures& exp,
+ const DocIdAndFeatures& act)
{
// docid is not encoded as part of features
- if (!EXPECT_EQUAL(exp.elements().size(),
- act.elements().size()))
- return false;
+ ASSERT_EQ(exp.elements().size(),
+ act.elements().size());
for (size_t i = 0; i < exp.elements().size(); ++i) {
- if (!EXPECT_EQUAL(exp.elements()[i].getElementId(),
- act.elements()[i].getElementId()))
- return false;
- if (!EXPECT_EQUAL(exp.elements()[i].getNumOccs(),
- act.elements()[i].getNumOccs()))
- return false;
- if (!EXPECT_EQUAL(exp.elements()[i].getWeight(), act.elements()[i].getWeight()))
- return false;
- if (!EXPECT_EQUAL(exp.elements()[i].getElementLen(),
- act.elements()[i].getElementLen()))
- return false;
+ EXPECT_EQ(exp.elements()[i].getElementId(),
+ act.elements()[i].getElementId());
+ EXPECT_EQ(exp.elements()[i].getNumOccs(),
+ act.elements()[i].getNumOccs());
+ EXPECT_EQ(exp.elements()[i].getWeight(), act.elements()[i].getWeight());
+ EXPECT_EQ(exp.elements()[i].getElementLen(),
+ act.elements()[i].getElementLen());
}
- if (!EXPECT_EQUAL(exp.word_positions().size(), act.word_positions().size()))
- return false;
+ ASSERT_EQ(exp.word_positions().size(), act.word_positions().size());
for (size_t i = 0; i < exp.word_positions().size(); ++i) {
- if (!EXPECT_EQUAL(exp.word_positions()[i].getWordPos(),
- act.word_positions()[i].getWordPos())) return false;
+ EXPECT_EQ(exp.word_positions()[i].getWordPos(),
+ act.word_positions()[i].getWordPos());
}
- return true;
}
-
DocIdAndFeatures
getFeatures(uint32_t numOccs,
int32_t weight,
@@ -84,11 +79,8 @@ getFeatures(uint32_t numOccs,
return f;
}
-
-void
-Test::requireThatFeaturesCanBeAddedAndRetrieved()
+TEST_F(FeatureStoreTest, features_can_be_added_and_retrieved)
{
- FeatureStore fs(getSchema());
DocIdAndFeatures act;
EntryRef r1;
EntryRef r2;
@@ -98,9 +90,9 @@ Test::requireThatFeaturesCanBeAddedAndRetrieved()
r = fs.addFeatures(0, f);
r1 = r.first;
EXPECT_TRUE(r.second > 0);
- EXPECT_EQUAL(FeatureStore::RefType::align(1u),
- FeatureStore::RefType(r1).offset());
- EXPECT_EQUAL(0u, FeatureStore::RefType(r1).bufferId());
+ EXPECT_EQ(FeatureStore::RefType::align(1u),
+ FeatureStore::RefType(r1).offset());
+ EXPECT_EQ(0u, FeatureStore::RefType(r1).bufferId());
LOG(info,
"bits(%" PRIu64 "), ref.offset(%zu), ref.bufferId(%u)",
r.second,
@@ -108,7 +100,7 @@ Test::requireThatFeaturesCanBeAddedAndRetrieved()
FeatureStore::RefType(r1).bufferId());
fs.getFeatures(0, r1, act);
// weight not encoded for single value
- EXPECT_TRUE(assertFeatures(getFeatures(2, 1, 8), act));
+ ASSERT_NO_FATAL_FAILURE(assertFeatures(getFeatures(2, 1, 8), act));
}
{
DocIdAndFeatures f = getFeatures(4, 8, 16);
@@ -117,22 +109,19 @@ Test::requireThatFeaturesCanBeAddedAndRetrieved()
EXPECT_TRUE(r.second > 0);
EXPECT_TRUE(FeatureStore::RefType(r2).offset() >
FeatureStore::RefType(r1).offset());
- EXPECT_EQUAL(0u, FeatureStore::RefType(r1).bufferId());
+ EXPECT_EQ(0u, FeatureStore::RefType(r1).bufferId());
LOG(info,
"bits(%" PRIu64 "), ref.offset(%zu), ref.bufferId(%u)",
r.second,
FeatureStore::RefType(r2).offset(),
FeatureStore::RefType(r2).bufferId());
fs.getFeatures(1, r2, act);
- EXPECT_TRUE(assertFeatures(f, act));
+ ASSERT_NO_FATAL_FAILURE(assertFeatures(f, act));
}
}
-
-void
-Test::requireThatNextWordsAreWorking()
+TEST_F(FeatureStoreTest, next_words_are_working)
{
- FeatureStore fs(getSchema());
DocIdAndFeatures act;
EntryRef r1;
EntryRef r2;
@@ -142,9 +131,9 @@ Test::requireThatNextWordsAreWorking()
r = fs.addFeatures(0, f);
r1 = r.first;
EXPECT_TRUE(r.second > 0);
- EXPECT_EQUAL(FeatureStore::RefType::align(1u),
- FeatureStore::RefType(r1).offset());
- EXPECT_EQUAL(0u, FeatureStore::RefType(r1).bufferId());
+ EXPECT_EQ(FeatureStore::RefType::align(1u),
+ FeatureStore::RefType(r1).offset());
+ EXPECT_EQ(0u, FeatureStore::RefType(r1).bufferId());
LOG(info,
"bits(%" PRIu64 "), ref.offset(%zu), ref.bufferId(%u)",
r.second,
@@ -152,7 +141,7 @@ Test::requireThatNextWordsAreWorking()
FeatureStore::RefType(r1).bufferId());
fs.getFeatures(0, r1, act);
// weight not encoded for single value
- EXPECT_TRUE(assertFeatures(getFeatures(2, 1, 8), act));
+ ASSERT_NO_FATAL_FAILURE(assertFeatures(getFeatures(2, 1, 8), act));
}
{
DocIdAndFeatures f = getFeatures(4, 8, 16);
@@ -161,22 +150,19 @@ Test::requireThatNextWordsAreWorking()
EXPECT_TRUE(r.second > 0);
EXPECT_TRUE(FeatureStore::RefType(r2).offset() >
FeatureStore::RefType(r1).offset());
- EXPECT_EQUAL(0u, FeatureStore::RefType(r1).bufferId());
+ EXPECT_EQ(0u, FeatureStore::RefType(r1).bufferId());
LOG(info,
"bits(%" PRIu64 "), ref.offset(%zu), ref.bufferId(%u)",
r.second,
FeatureStore::RefType(r2).offset(),
FeatureStore::RefType(r2).bufferId());
fs.getFeatures(1, r2, act);
- EXPECT_TRUE(assertFeatures(f, act));
+ ASSERT_NO_FATAL_FAILURE(assertFeatures(f, act));
}
}
-
-void
-Test::requireThatAddFeaturesTriggersChangeOfBuffer()
+TEST_F(FeatureStoreTest, add_features_triggers_change_of_buffer)
{
- FeatureStore fs(getSchema());
size_t cnt = 1;
DocIdAndFeatures act;
uint32_t lastId = 0;
@@ -185,7 +171,7 @@ Test::requireThatAddFeaturesTriggersChangeOfBuffer()
DocIdAndFeatures f = getFeatures(numOccs, 1, numOccs + 1);
std::pair<EntryRef, uint64_t> r = fs.addFeatures(0, f);
fs.getFeatures(0, r.first, act);
- EXPECT_TRUE(assertFeatures(f, act));
+ ASSERT_NO_FATAL_FAILURE(assertFeatures(f, act));
uint32_t bufferId = FeatureStore::RefType(r.first).bufferId();
if (bufferId > lastId) {
LOG(info,
@@ -197,36 +183,10 @@ Test::requireThatAddFeaturesTriggersChangeOfBuffer()
break;
}
}
- EXPECT_EQUAL(1u, lastId);
+ EXPECT_EQ(1u, lastId);
LOG(info, "Added %zu feature sets in 1 buffer", cnt);
}
-
-Test::Test()
- : _schema()
-{
- _schema.addIndexField(Schema::IndexField("f0", DataType::STRING));
- _schema.addIndexField(Schema::IndexField("f1", DataType::STRING, CollectionType::WEIGHTEDSET));
}
-
-int
-Test::Main()
-{
- TEST_INIT("feature_store_test");
-
- requireThatFeaturesCanBeAddedAndRetrieved();
- requireThatNextWordsAreWorking();
- requireThatAddFeaturesTriggersChangeOfBuffer();
-
- TEST_DONE();
-}
-
-
-}
-
-
-}
-
-
-TEST_APPHOOK(search::memoryindex::Test);
+GTEST_MAIN_RUN_ALL_TESTS()
diff --git a/searchlib/src/tests/memoryindex/datastore/word_store_test.cpp b/searchlib/src/tests/memoryindex/datastore/word_store_test.cpp
index b7f454bfdf7..86365287b29 100644
--- a/searchlib/src/tests/memoryindex/datastore/word_store_test.cpp
+++ b/searchlib/src/tests/memoryindex/datastore/word_store_test.cpp
@@ -1,24 +1,15 @@
// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+#include <vespa/searchlib/memoryindex/word_store.h>
+#include <vespa/vespalib/gtest/gtest.h>
+
#include <vespa/log/log.h>
LOG_SETUP("word_store_test");
-#include <vespa/vespalib/testkit/testapp.h>
-#include <vespa/searchlib/memoryindex/word_store.h>
using namespace search::datastore;
-namespace search {
-namespace memoryindex {
+namespace search::memoryindex {
-class Test : public vespalib::TestApp {
-private:
- void requireThatWordsCanBeAddedAndRetrieved();
- void requireThatAddWordTriggersChangeOfBuffer();
-public:
- int Main() override;
-};
-
-void
-Test::requireThatWordsCanBeAddedAndRetrieved()
+TEST(WordStoreTest, words_can_be_added_and_retrieved)
{
std::string w1 = "require";
std::string w2 = "that";
@@ -32,19 +23,18 @@ Test::requireThatWordsCanBeAddedAndRetrieved()
uint32_t w1p = WordStore::RefType::pad(w1s);
uint32_t w2s = w2.size() + 1;
uint32_t w2p = WordStore::RefType::pad(w2s);
- EXPECT_EQUAL(invp, WordStore::RefType(r1).offset());
- EXPECT_EQUAL(invp + w1s + w1p, WordStore::RefType(r2).offset());
- EXPECT_EQUAL(invp + w1s + w1p + w2s + w2p, WordStore::RefType(r3).offset());
- EXPECT_EQUAL(0u, WordStore::RefType(r1).bufferId());
- EXPECT_EQUAL(0u, WordStore::RefType(r2).bufferId());
- EXPECT_EQUAL(0u, WordStore::RefType(r3).bufferId());
- EXPECT_EQUAL(std::string("require"), ws.getWord(r1));
- EXPECT_EQUAL(std::string("that"), ws.getWord(r2));
- EXPECT_EQUAL(std::string("words"), ws.getWord(r3));
+ EXPECT_EQ(invp, WordStore::RefType(r1).offset());
+ EXPECT_EQ(invp + w1s + w1p, WordStore::RefType(r2).offset());
+ EXPECT_EQ(invp + w1s + w1p + w2s + w2p, WordStore::RefType(r3).offset());
+ EXPECT_EQ(0u, WordStore::RefType(r1).bufferId());
+ EXPECT_EQ(0u, WordStore::RefType(r2).bufferId());
+ EXPECT_EQ(0u, WordStore::RefType(r3).bufferId());
+ EXPECT_EQ(std::string("require"), ws.getWord(r1));
+ EXPECT_EQ(std::string("that"), ws.getWord(r2));
+ EXPECT_EQ(std::string("words"), ws.getWord(r3));
}
-void
-Test::requireThatAddWordTriggersChangeOfBuffer()
+TEST(WordStoreTest, add_word_triggers_change_of_buffer)
{
WordStore ws;
size_t word = 0;
@@ -54,7 +44,7 @@ Test::requireThatAddWordTriggersChangeOfBuffer()
sprintf(wordStr, "%6zu", word);
// all words uses 12 bytes (include padding)
EntryRef r = ws.addWord(std::string(wordStr));
- EXPECT_EQUAL(std::string(wordStr), ws.getWord(r));
+ EXPECT_EQ(std::string(wordStr), ws.getWord(r));
uint32_t bufferId = WordStore::RefType(r).bufferId();
if (bufferId > lastId) {
LOG(info,
@@ -68,23 +58,11 @@ Test::requireThatAddWordTriggersChangeOfBuffer()
}
}
LOG(info, "Added %zu words in 4 buffers", word);
- EXPECT_EQUAL(2047u, word);
- EXPECT_EQUAL(4u, lastId);
-}
-
-int
-Test::Main()
-{
- TEST_INIT("word_store_test");
-
- requireThatWordsCanBeAddedAndRetrieved();
- requireThatAddWordTriggersChangeOfBuffer();
-
- TEST_DONE();
+ EXPECT_EQ(2047u, word);
+ EXPECT_EQ(4u, lastId);
}
}
-}
-TEST_APPHOOK(search::memoryindex::Test);
+GTEST_MAIN_RUN_ALL_TESTS()
diff --git a/searchlib/src/tests/memoryindex/document_inverter/CMakeLists.txt b/searchlib/src/tests/memoryindex/document_inverter/CMakeLists.txt
index 1058a19d0ce..ecf33ee48fd 100644
--- a/searchlib/src/tests/memoryindex/document_inverter/CMakeLists.txt
+++ b/searchlib/src/tests/memoryindex/document_inverter/CMakeLists.txt
@@ -5,5 +5,6 @@ vespa_add_executable(searchlib_document_inverter_test_app TEST
DEPENDS
searchlib_test
searchlib
+ gtest
)
vespa_add_test(NAME searchlib_document_inverter_test_app COMMAND searchlib_document_inverter_test_app)
diff --git a/searchlib/src/tests/memoryindex/document_inverter/document_inverter_test.cpp b/searchlib/src/tests/memoryindex/document_inverter/document_inverter_test.cpp
index 08645f38712..38862dfe94b 100644
--- a/searchlib/src/tests/memoryindex/document_inverter/document_inverter_test.cpp
+++ b/searchlib/src/tests/memoryindex/document_inverter/document_inverter_test.cpp
@@ -1,7 +1,6 @@
// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
-/* -*- mode: C++; coding: utf-8; -*- */
-
+#include <vespa/searchlib/common/sequencedtaskexecutor.h>
#include <vespa/searchlib/index/docbuilder.h>
#include <vespa/searchlib/index/field_length_calculator.h>
#include <vespa/searchlib/memoryindex/document_inverter.h>
@@ -10,8 +9,7 @@
#include <vespa/searchlib/memoryindex/i_field_index_collection.h>
#include <vespa/searchlib/memoryindex/word_store.h>
#include <vespa/searchlib/test/memoryindex/ordered_field_index_inserter.h>
-#include <vespa/searchlib/common/sequencedtaskexecutor.h>
-#include <vespa/vespalib/testkit/testapp.h>
+#include <vespa/vespalib/gtest/gtest.h>
namespace search {
@@ -37,7 +35,6 @@ makeDoc10(DocBuilder &b)
return b.endDocument();
}
-
Document::UP
makeDoc11(DocBuilder &b)
{
@@ -51,7 +48,6 @@ makeDoc11(DocBuilder &b)
return b.endDocument();
}
-
Document::UP
makeDoc12(DocBuilder &b)
{
@@ -62,7 +58,6 @@ makeDoc12(DocBuilder &b)
return b.endDocument();
}
-
Document::UP
makeDoc13(DocBuilder &b)
{
@@ -73,7 +68,6 @@ makeDoc13(DocBuilder &b)
return b.endDocument();
}
-
Document::UP
makeDoc14(DocBuilder &b)
{
@@ -84,7 +78,6 @@ makeDoc14(DocBuilder &b)
return b.endDocument();
}
-
Document::UP
makeDoc15(DocBuilder &b)
{
@@ -94,8 +87,7 @@ makeDoc15(DocBuilder &b)
}
-class MockFieldIndexCollection : public IFieldIndexCollection
-{
+class MockFieldIndexCollection : public IFieldIndexCollection {
FieldIndexRemover &_remover;
test::OrderedFieldIndexInserter &_inserter;
FieldLengthCalculator &_calculator;
@@ -122,8 +114,7 @@ public:
};
-struct Fixture
-{
+struct DocumentInverterTest : public ::testing::Test {
Schema _schema;
DocBuilder _b;
SequencedTaskExecutor _invertThreads;
@@ -135,9 +126,7 @@ struct Fixture
MockFieldIndexCollection _fic;
DocumentInverter _inv;
- static Schema
- makeSchema()
- {
+ static Schema makeSchema() {
Schema schema;
schema.addIndexField(Schema::IndexField("f0", DataType::STRING));
schema.addIndexField(Schema::IndexField("f1", DataType::STRING));
@@ -146,7 +135,7 @@ struct Fixture
return schema;
}
- Fixture()
+ DocumentInverterTest()
: _schema(makeSchema()),
_b(_schema),
_invertThreads(2),
@@ -160,9 +149,7 @@ struct Fixture
{
}
- void
- pushDocuments()
- {
+ void pushDocuments() {
_invertThreads.sync();
uint32_t fieldId = 0;
for (auto &inverter : _inv.getInverters()) {
@@ -174,153 +161,143 @@ struct Fixture
}
};
-
-TEST_F("requireThatFreshInsertWorks", Fixture)
+TEST_F(DocumentInverterTest, require_that_fresh_insert_works)
{
- f._inv.invertDocument(10, *makeDoc10(f._b));
- f.pushDocuments();
- EXPECT_EQUAL("f=0,w=a,a=10,"
- "w=b,a=10,"
- "w=c,a=10,"
- "w=d,a=10",
- f._inserter.toStr());
+ _inv.invertDocument(10, *makeDoc10(_b));
+ pushDocuments();
+ EXPECT_EQ("f=0,w=a,a=10,"
+ "w=b,a=10,"
+ "w=c,a=10,"
+ "w=d,a=10",
+ _inserter.toStr());
}
-
-TEST_F("requireThatMultipleDocsWork", Fixture)
+TEST_F(DocumentInverterTest, require_that_multiple_docs_work)
{
- f._inv.invertDocument(10, *makeDoc10(f._b));
- f._inv.invertDocument(11, *makeDoc11(f._b));
- f.pushDocuments();
- EXPECT_EQUAL("f=0,w=a,a=10,a=11,"
- "w=b,a=10,a=11,"
- "w=c,a=10,w=d,a=10,"
- "w=e,a=11,"
- "w=f,a=11,"
- "f=1,w=a,a=11,"
- "w=g,a=11",
- f._inserter.toStr());
+ _inv.invertDocument(10, *makeDoc10(_b));
+ _inv.invertDocument(11, *makeDoc11(_b));
+ pushDocuments();
+ EXPECT_EQ("f=0,w=a,a=10,a=11,"
+ "w=b,a=10,a=11,"
+ "w=c,a=10,w=d,a=10,"
+ "w=e,a=11,"
+ "w=f,a=11,"
+ "f=1,w=a,a=11,"
+ "w=g,a=11",
+ _inserter.toStr());
}
-
-TEST_F("requireThatRemoveWorks", Fixture)
+TEST_F(DocumentInverterTest, require_that_remove_works)
{
- f._inv.getInverter(0)->remove("b", 10);
- f._inv.getInverter(0)->remove("a", 10);
- f._inv.getInverter(0)->remove("b", 11);
- f._inv.getInverter(2)->remove("c", 12);
- f._inv.getInverter(1)->remove("a", 10);
- f.pushDocuments();
- EXPECT_EQUAL("f=0,w=a,r=10,"
- "w=b,r=10,r=11,"
- "f=1,w=a,r=10,"
- "f=2,w=c,r=12",
- f._inserter.toStr());
+ _inv.getInverter(0)->remove("b", 10);
+ _inv.getInverter(0)->remove("a", 10);
+ _inv.getInverter(0)->remove("b", 11);
+ _inv.getInverter(2)->remove("c", 12);
+ _inv.getInverter(1)->remove("a", 10);
+ pushDocuments();
+ EXPECT_EQ("f=0,w=a,r=10,"
+ "w=b,r=10,r=11,"
+ "f=1,w=a,r=10,"
+ "f=2,w=c,r=12",
+ _inserter.toStr());
}
-
-TEST_F("requireThatReputWorks", Fixture)
+TEST_F(DocumentInverterTest, require_that_reput_works)
{
- f._inv.invertDocument(10, *makeDoc10(f._b));
- f._inv.invertDocument(10, *makeDoc11(f._b));
- f.pushDocuments();
- EXPECT_EQUAL("f=0,w=a,a=10,"
- "w=b,a=10,"
- "w=e,a=10,"
- "w=f,a=10,"
- "f=1,w=a,a=10,"
- "w=g,a=10",
- f._inserter.toStr());
+ _inv.invertDocument(10, *makeDoc10(_b));
+ _inv.invertDocument(10, *makeDoc11(_b));
+ pushDocuments();
+ EXPECT_EQ("f=0,w=a,a=10,"
+ "w=b,a=10,"
+ "w=e,a=10,"
+ "w=f,a=10,"
+ "f=1,w=a,a=10,"
+ "w=g,a=10",
+ _inserter.toStr());
}
-
-TEST_F("requireThatAbortPendingDocWorks", Fixture)
+TEST_F(DocumentInverterTest, require_that_abort_pending_doc_works)
{
- Document::UP doc10 = makeDoc10(f._b);
- Document::UP doc11 = makeDoc11(f._b);
- Document::UP doc12 = makeDoc12(f._b);
- Document::UP doc13 = makeDoc13(f._b);
- Document::UP doc14 = makeDoc14(f._b);
-
- f._inv.invertDocument(10, *doc10);
- f._inv.invertDocument(11, *doc11);
- f._inv.removeDocument(10);
- f.pushDocuments();
- EXPECT_EQUAL("f=0,w=a,a=11,"
- "w=b,a=11,"
- "w=e,a=11,"
- "w=f,a=11,"
- "f=1,w=a,a=11,"
- "w=g,a=11",
- f._inserter.toStr());
-
- f._inv.invertDocument(10, *doc10);
- f._inv.invertDocument(11, *doc11);
- f._inv.invertDocument(12, *doc12);
- f._inv.invertDocument(13, *doc13);
- f._inv.invertDocument(14, *doc14);
- f._inv.removeDocument(11);
- f._inv.removeDocument(13);
- f._inserter.reset();
- f.pushDocuments();
- EXPECT_EQUAL("f=0,w=a,a=10,"
- "w=b,a=10,"
- "w=c,a=10,"
- "w=d,a=10,"
- "w=doc12,a=12,"
- "w=doc14,a=14,"
- "w=h,a=12,"
- "w=j,a=14",
- f._inserter.toStr());
-
- f._inv.invertDocument(10, *doc10);
- f._inv.invertDocument(11, *doc11);
- f._inv.invertDocument(12, *doc12);
- f._inv.invertDocument(13, *doc13);
- f._inv.invertDocument(14, *doc14);
- f._inv.removeDocument(11);
- f._inv.removeDocument(12);
- f._inv.removeDocument(13);
- f._inv.removeDocument(14);
- f._inserter.reset();
- f.pushDocuments();
- EXPECT_EQUAL("f=0,w=a,a=10,"
- "w=b,a=10,"
- "w=c,a=10,"
- "w=d,a=10",
- f._inserter.toStr());
-
-
+ auto doc10 = makeDoc10(_b);
+ auto doc11 = makeDoc11(_b);
+ auto doc12 = makeDoc12(_b);
+ auto doc13 = makeDoc13(_b);
+ auto doc14 = makeDoc14(_b);
+
+ _inv.invertDocument(10, *doc10);
+ _inv.invertDocument(11, *doc11);
+ _inv.removeDocument(10);
+ pushDocuments();
+ EXPECT_EQ("f=0,w=a,a=11,"
+ "w=b,a=11,"
+ "w=e,a=11,"
+ "w=f,a=11,"
+ "f=1,w=a,a=11,"
+ "w=g,a=11",
+ _inserter.toStr());
+
+ _inv.invertDocument(10, *doc10);
+ _inv.invertDocument(11, *doc11);
+ _inv.invertDocument(12, *doc12);
+ _inv.invertDocument(13, *doc13);
+ _inv.invertDocument(14, *doc14);
+ _inv.removeDocument(11);
+ _inv.removeDocument(13);
+ _inserter.reset();
+ pushDocuments();
+ EXPECT_EQ("f=0,w=a,a=10,"
+ "w=b,a=10,"
+ "w=c,a=10,"
+ "w=d,a=10,"
+ "w=doc12,a=12,"
+ "w=doc14,a=14,"
+ "w=h,a=12,"
+ "w=j,a=14",
+ _inserter.toStr());
+
+ _inv.invertDocument(10, *doc10);
+ _inv.invertDocument(11, *doc11);
+ _inv.invertDocument(12, *doc12);
+ _inv.invertDocument(13, *doc13);
+ _inv.invertDocument(14, *doc14);
+ _inv.removeDocument(11);
+ _inv.removeDocument(12);
+ _inv.removeDocument(13);
+ _inv.removeDocument(14);
+ _inserter.reset();
+ pushDocuments();
+ EXPECT_EQ("f=0,w=a,a=10,"
+ "w=b,a=10,"
+ "w=c,a=10,"
+ "w=d,a=10",
+ _inserter.toStr());
}
-
-TEST_F("requireThatMixOfAddAndRemoveWorks", Fixture)
+TEST_F(DocumentInverterTest, require_that_mix_of_add_and_remove_works)
{
- f._inv.getInverter(0)->remove("a", 11);
- f._inv.getInverter(0)->remove("c", 9);
- f._inv.getInverter(0)->remove("d", 10);
- f._inv.getInverter(0)->remove("z", 12);
- f._inv.invertDocument(10, *makeDoc10(f._b));
- f.pushDocuments();
- EXPECT_EQUAL("f=0,w=a,a=10,r=11,"
- "w=b,a=10,"
- "w=c,r=9,a=10,"
- "w=d,r=10,a=10,"
- "w=z,r=12",
- f._inserter.toStr());
+ _inv.getInverter(0)->remove("a", 11);
+ _inv.getInverter(0)->remove("c", 9);
+ _inv.getInverter(0)->remove("d", 10);
+ _inv.getInverter(0)->remove("z", 12);
+ _inv.invertDocument(10, *makeDoc10(_b));
+ pushDocuments();
+ EXPECT_EQ("f=0,w=a,a=10,r=11,"
+ "w=b,a=10,"
+ "w=c,r=9,a=10,"
+ "w=d,r=10,a=10,"
+ "w=z,r=12",
+ _inserter.toStr());
}
-
-TEST_F("require that empty document can be inverted", Fixture)
+TEST_F(DocumentInverterTest, require_that_empty_document_can_be_inverted)
{
- f._inv.invertDocument(15, *makeDoc15(f._b));
- f.pushDocuments();
- EXPECT_EQUAL("",
- f._inserter.toStr());
+ _inv.invertDocument(15, *makeDoc15(_b));
+ pushDocuments();
+ EXPECT_EQ("",
+ _inserter.toStr());
}
+}
+}
-} // namespace memoryindex
-} // namespace search
-
-TEST_MAIN() { TEST_RUN_ALL(); }
+GTEST_MAIN_RUN_ALL_TESTS()
diff --git a/searchlib/src/tests/memoryindex/field_index_remover/CMakeLists.txt b/searchlib/src/tests/memoryindex/field_index_remover/CMakeLists.txt
index ef75337c6b6..f18b4ba29cd 100644
--- a/searchlib/src/tests/memoryindex/field_index_remover/CMakeLists.txt
+++ b/searchlib/src/tests/memoryindex/field_index_remover/CMakeLists.txt
@@ -4,5 +4,6 @@ vespa_add_executable(searchlib_field_index_remover_test_app TEST
field_index_remover_test.cpp
DEPENDS
searchlib
+ gtest
)
vespa_add_test(NAME searchlib_field_index_remover_test_app COMMAND searchlib_field_index_remover_test_app)
diff --git a/searchlib/src/tests/memoryindex/field_index_remover/field_index_remover_test.cpp b/searchlib/src/tests/memoryindex/field_index_remover/field_index_remover_test.cpp
index fed6d963b70..c0e8871b80a 100644
--- a/searchlib/src/tests/memoryindex/field_index_remover/field_index_remover_test.cpp
+++ b/searchlib/src/tests/memoryindex/field_index_remover/field_index_remover_test.cpp
@@ -1,10 +1,9 @@
// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
-#include <vespa/vespalib/testkit/testapp.h>
-
#include <vespa/searchlib/memoryindex/field_index_remover.h>
#include <vespa/searchlib/memoryindex/i_field_index_remove_listener.h>
#include <vespa/searchlib/memoryindex/word_store.h>
+#include <vespa/vespalib/gtest/gtest.h>
#include <vespa/vespalib/test/insertion_operators.h>
#include <algorithm>
@@ -14,8 +13,7 @@ LOG_SETUP("document_remover_test");
using namespace search;
using namespace search::memoryindex;
-struct WordFieldPair
-{
+struct WordFieldPair {
vespalib::string _word;
uint32_t _fieldId;
WordFieldPair(vespalib::stringref word, uint32_t fieldId)
@@ -29,7 +27,7 @@ struct WordFieldPair
}
};
-typedef std::vector<WordFieldPair> WordFieldVector;
+using WordFieldVector = std::vector<WordFieldPair>;
std::ostream &
operator<<(std::ostream &os, const WordFieldPair &val)
@@ -38,13 +36,12 @@ operator<<(std::ostream &os, const WordFieldPair &val)
return os;
}
-struct MockRemoveListener : public IFieldIndexRemoveListener
-{
+struct MockRemoveListener : public IFieldIndexRemoveListener {
WordFieldVector _words;
uint32_t _expDocId;
uint32_t _fieldId;
virtual void remove(const vespalib::stringref word, uint32_t docId) override {
- EXPECT_EQUAL(_expDocId, docId);
+ EXPECT_EQ(_expDocId, docId);
_words.emplace_back(word, _fieldId);
}
void reset(uint32_t expDocId) {
@@ -60,13 +57,13 @@ struct MockRemoveListener : public IFieldIndexRemoveListener
void setFieldId(uint32_t fieldId) { _fieldId = fieldId; }
};
-struct Fixture
-{
+struct FieldIndexRemoverTest : public ::testing::Test {
MockRemoveListener _listener;
std::vector<std::unique_ptr<WordStore>> _wordStores;
std::vector<std::map<vespalib::string, datastore::EntryRef>> _wordToRefMaps;
std::vector<std::unique_ptr<FieldIndexRemover>> _removers;
- Fixture()
+
+ FieldIndexRemoverTest()
: _listener(),
_wordStores(),
_wordToRefMaps(),
@@ -91,7 +88,7 @@ struct Fixture
}
return itr->second;
}
- Fixture &insert(const vespalib::string &word, uint32_t fieldId, uint32_t docId) {
+ FieldIndexRemoverTest &insert(const vespalib::string &word, uint32_t fieldId, uint32_t docId) {
assert(fieldId < _wordStores.size());
_removers[fieldId]->insert(getWordRef(word, fieldId), docId);
return *this;
@@ -113,32 +110,31 @@ struct Fixture
}
};
-TEST_F("require that {word,fieldId} pairs for multiple doc ids can be inserted", Fixture)
+TEST_F(FieldIndexRemoverTest, word_field_id_pairs_for_multiple_doc_ids_can_be_inserted)
{
- f.insert("a", 1, 10).insert("a", 1, 20).insert("a", 1, 30);
- f.insert("a", 2, 10).insert("a", 2, 20);
- f.insert("b", 1, 20).insert("b", 1, 30);
- f.insert("b", 2, 10).insert("b", 2, 30);
- f.insert("c", 1, 10);
- f.insert("c", 2, 20);
- f.insert("c", 3, 30);
- f.flush();
+ insert("a", 1, 10).insert("a", 1, 20).insert("a", 1, 30);
+ insert("a", 2, 10).insert("a", 2, 20);
+ insert("b", 1, 20).insert("b", 1, 30);
+ insert("b", 2, 10).insert("b", 2, 30);
+ insert("c", 1, 10);
+ insert("c", 2, 20);
+ insert("c", 3, 30);
+ flush();
- EXPECT_EQUAL("[{a,1},{a,2},{b,2},{c,1}]", f.remove(10));
- EXPECT_EQUAL("[{a,1},{a,2},{b,1},{c,2}]", f.remove(20));
- EXPECT_EQUAL("[{a,1},{b,1},{b,2},{c,3}]", f.remove(30));
+ EXPECT_EQ("[{a,1},{a,2},{b,2},{c,1}]", remove(10));
+ EXPECT_EQ("[{a,1},{a,2},{b,1},{c,2}]", remove(20));
+ EXPECT_EQ("[{a,1},{b,1},{b,2},{c,3}]", remove(30));
}
-TEST_F("require that we can insert after flush", Fixture)
+TEST_F(FieldIndexRemoverTest, we_can_insert_after_flush)
{
- f.insert("a", 1, 10).insert("b", 1, 10);
- f.flush();
- f.insert("b", 1, 20).insert("b", 2, 20);
- f.flush();
+ insert("a", 1, 10).insert("b", 1, 10);
+ flush();
+ insert("b", 1, 20).insert("b", 2, 20);
+ flush();
- EXPECT_EQUAL("[{a,1},{b,1}]", f.remove(10));
- EXPECT_EQUAL("[{b,1},{b,2}]", f.remove(20));
+ EXPECT_EQ("[{a,1},{b,1}]", remove(10));
+ EXPECT_EQ("[{b,1},{b,2}]", remove(20));
}
-
-TEST_MAIN() { TEST_RUN_ALL(); }
+GTEST_MAIN_RUN_ALL_TESTS()
diff --git a/searchlib/src/tests/memoryindex/field_inverter/CMakeLists.txt b/searchlib/src/tests/memoryindex/field_inverter/CMakeLists.txt
index f39e05d6823..6fefada6570 100644
--- a/searchlib/src/tests/memoryindex/field_inverter/CMakeLists.txt
+++ b/searchlib/src/tests/memoryindex/field_inverter/CMakeLists.txt
@@ -5,5 +5,6 @@ vespa_add_executable(searchlib_field_inverter_test_app TEST
DEPENDS
searchlib_test
searchlib
+ gtest
)
vespa_add_test(NAME searchlib_field_inverter_test_app COMMAND searchlib_field_inverter_test_app)
diff --git a/searchlib/src/tests/memoryindex/field_inverter/field_inverter_test.cpp b/searchlib/src/tests/memoryindex/field_inverter/field_inverter_test.cpp
index ff0629d2172..72a8f6ed239 100644
--- a/searchlib/src/tests/memoryindex/field_inverter/field_inverter_test.cpp
+++ b/searchlib/src/tests/memoryindex/field_inverter/field_inverter_test.cpp
@@ -7,7 +7,7 @@
#include <vespa/searchlib/memoryindex/field_inverter.h>
#include <vespa/searchlib/memoryindex/word_store.h>
#include <vespa/searchlib/test/memoryindex/ordered_field_index_inserter.h>
-#include <vespa/vespalib/testkit/testapp.h>
+#include <vespa/vespalib/gtest/gtest.h>
namespace search {
@@ -21,10 +21,8 @@ using namespace index;
namespace memoryindex {
-
namespace {
-
Document::UP
makeDoc10(DocBuilder &b)
{
@@ -35,7 +33,6 @@ makeDoc10(DocBuilder &b)
return b.endDocument();
}
-
Document::UP
makeDoc11(DocBuilder &b)
{
@@ -49,7 +46,6 @@ makeDoc11(DocBuilder &b)
return b.endDocument();
}
-
Document::UP
makeDoc12(DocBuilder &b)
{
@@ -60,7 +56,6 @@ makeDoc12(DocBuilder &b)
return b.endDocument();
}
-
Document::UP
makeDoc13(DocBuilder &b)
{
@@ -71,7 +66,6 @@ makeDoc13(DocBuilder &b)
return b.endDocument();
}
-
Document::UP
makeDoc14(DocBuilder &b)
{
@@ -82,7 +76,6 @@ makeDoc14(DocBuilder &b)
return b.endDocument();
}
-
Document::UP
makeDoc15(DocBuilder &b)
{
@@ -90,7 +83,6 @@ makeDoc15(DocBuilder &b)
return b.endDocument();
}
-
Document::UP
makeDoc16(DocBuilder &b)
{
@@ -113,8 +105,7 @@ makeDoc17(DocBuilder &b)
}
-struct Fixture
-{
+struct FieldInverterTest : public ::testing::Test {
Schema _schema;
DocBuilder _b;
WordStore _word_store;
@@ -123,9 +114,7 @@ struct Fixture
std::vector<std::unique_ptr<FieldLengthCalculator>> _calculators;
std::vector<std::unique_ptr<FieldInverter> > _inverters;
- static Schema
- makeSchema()
- {
+ static Schema makeSchema() {
Schema schema;
schema.addIndexField(Schema::IndexField("f0", DataType::STRING));
schema.addIndexField(Schema::IndexField("f1", DataType::STRING));
@@ -134,7 +123,7 @@ struct Fixture
return schema;
}
- Fixture()
+ FieldInverterTest()
: _schema(makeSchema()),
_b(_schema),
_word_store(),
@@ -154,9 +143,7 @@ struct Fixture
}
}
- void
- invertDocument(uint32_t docId, const Document &doc)
- {
+ void invertDocument(uint32_t docId, const Document &doc) {
uint32_t fieldId = 0;
for (auto &inverter : _inverters) {
vespalib::stringref fieldName =
@@ -166,9 +153,7 @@ struct Fixture
}
}
- void
- pushDocuments()
- {
+ void pushDocuments() {
uint32_t fieldId = 0;
for (auto &inverter : _inverters) {
_inserter.setFieldId(fieldId);
@@ -177,218 +162,207 @@ struct Fixture
}
}
- void
- removeDocument(uint32_t docId) {
+ void removeDocument(uint32_t docId) {
for (auto &inverter : _inverters) {
inverter->removeDocument(docId);
}
}
void assert_calculator(uint32_t field_id, double exp_avg, uint32_t exp_samples) {
- double epsilon = 0.000000001;
const auto &calc = *_calculators[field_id];
- EXPECT_APPROX(exp_avg, calc.get_average_field_length(), epsilon);
- EXPECT_EQUAL(exp_samples, calc.get_num_samples());
+ EXPECT_DOUBLE_EQ(exp_avg, calc.get_average_field_length());
+ EXPECT_EQ(exp_samples, calc.get_num_samples());
}
};
-
-TEST_F("requireThatFreshInsertWorks", Fixture)
+TEST_F(FieldInverterTest, require_that_fresh_insert_works)
{
- f.invertDocument(10, *makeDoc10(f._b));
- f.pushDocuments();
- EXPECT_EQUAL("f=0,w=a,a=10,"
- "w=b,a=10,"
- "w=c,a=10,"
- "w=d,a=10",
- f._inserter.toStr());
+ invertDocument(10, *makeDoc10(_b));
+ pushDocuments();
+ EXPECT_EQ("f=0,w=a,a=10,"
+ "w=b,a=10,"
+ "w=c,a=10,"
+ "w=d,a=10",
+ _inserter.toStr());
}
-
-TEST_F("requireThatMultipleDocsWork", Fixture)
+TEST_F(FieldInverterTest, require_that_multiple_docs_work)
{
- f.invertDocument(10, *makeDoc10(f._b));
- f.invertDocument(11, *makeDoc11(f._b));
- f.pushDocuments();
- EXPECT_EQUAL("f=0,w=a,a=10,a=11,"
- "w=b,a=10,a=11,"
- "w=c,a=10,w=d,a=10,"
- "w=e,a=11,"
- "w=f,a=11,"
- "f=1,w=a,a=11,"
- "w=g,a=11",
- f._inserter.toStr());
+ invertDocument(10, *makeDoc10(_b));
+ invertDocument(11, *makeDoc11(_b));
+ pushDocuments();
+ EXPECT_EQ("f=0,w=a,a=10,a=11,"
+ "w=b,a=10,a=11,"
+ "w=c,a=10,w=d,a=10,"
+ "w=e,a=11,"
+ "w=f,a=11,"
+ "f=1,w=a,a=11,"
+ "w=g,a=11",
+ _inserter.toStr());
}
-
-TEST_F("requireThatRemoveWorks", Fixture)
+TEST_F(FieldInverterTest, require_that_remove_works)
{
- f._inverters[0]->remove("b", 10);
- f._inverters[0]->remove("a", 10);
- f._inverters[0]->remove("b", 11);
- f._inverters[2]->remove("c", 12);
- f._inverters[1]->remove("a", 10);
- f.pushDocuments();
- EXPECT_EQUAL("f=0,w=a,r=10,"
- "w=b,r=10,r=11,"
- "f=1,w=a,r=10,"
- "f=2,w=c,r=12",
- f._inserter.toStr());
+ _inverters[0]->remove("b", 10);
+ _inverters[0]->remove("a", 10);
+ _inverters[0]->remove("b", 11);
+ _inverters[2]->remove("c", 12);
+ _inverters[1]->remove("a", 10);
+ pushDocuments();
+ EXPECT_EQ("f=0,w=a,r=10,"
+ "w=b,r=10,r=11,"
+ "f=1,w=a,r=10,"
+ "f=2,w=c,r=12",
+ _inserter.toStr());
}
-
-TEST_F("requireThatReputWorks", Fixture)
+TEST_F(FieldInverterTest, require_that_reput_works)
{
- f.invertDocument(10, *makeDoc10(f._b));
- f.invertDocument(10, *makeDoc11(f._b));
- f.pushDocuments();
- EXPECT_EQUAL("f=0,w=a,a=10,"
- "w=b,a=10,"
- "w=e,a=10,"
- "w=f,a=10,"
- "f=1,w=a,a=10,"
- "w=g,a=10",
- f._inserter.toStr());
+ invertDocument(10, *makeDoc10(_b));
+ invertDocument(10, *makeDoc11(_b));
+ pushDocuments();
+ EXPECT_EQ("f=0,w=a,a=10,"
+ "w=b,a=10,"
+ "w=e,a=10,"
+ "w=f,a=10,"
+ "f=1,w=a,a=10,"
+ "w=g,a=10",
+ _inserter.toStr());
}
-
-TEST_F("requireThatAbortPendingDocWorks", Fixture)
+TEST_F(FieldInverterTest, require_that_abort_pending_doc_works)
{
- Document::UP doc10 = makeDoc10(f._b);
- Document::UP doc11 = makeDoc11(f._b);
- Document::UP doc12 = makeDoc12(f._b);
- Document::UP doc13 = makeDoc13(f._b);
- Document::UP doc14 = makeDoc14(f._b);
-
- f.invertDocument(10, *doc10);
- f.invertDocument(11, *doc11);
- f.removeDocument(10);
- f.pushDocuments();
- EXPECT_EQUAL("f=0,w=a,a=11,"
- "w=b,a=11,"
- "w=e,a=11,"
- "w=f,a=11,"
- "f=1,w=a,a=11,"
- "w=g,a=11",
- f._inserter.toStr());
-
- f.invertDocument(10, *doc10);
- f.invertDocument(11, *doc11);
- f.invertDocument(12, *doc12);
- f.invertDocument(13, *doc13);
- f.invertDocument(14, *doc14);
- f.removeDocument(11);
- f.removeDocument(13);
- f._inserter.reset();
- f.pushDocuments();
- EXPECT_EQUAL("f=0,w=a,a=10,"
- "w=b,a=10,"
- "w=c,a=10,"
- "w=d,a=10,"
- "w=doc12,a=12,"
- "w=doc14,a=14,"
- "w=h,a=12,"
- "w=j,a=14",
- f._inserter.toStr());
-
- f.invertDocument(10, *doc10);
- f.invertDocument(11, *doc11);
- f.invertDocument(12, *doc12);
- f.invertDocument(13, *doc13);
- f.invertDocument(14, *doc14);
- f.removeDocument(11);
- f.removeDocument(12);
- f.removeDocument(13);
- f.removeDocument(14);
- f._inserter.reset();
- f.pushDocuments();
- EXPECT_EQUAL("f=0,w=a,a=10,"
- "w=b,a=10,"
- "w=c,a=10,"
- "w=d,a=10",
- f._inserter.toStr());
-
-
+ auto doc10 = makeDoc10(_b);
+ auto doc11 = makeDoc11(_b);
+ auto doc12 = makeDoc12(_b);
+ auto doc13 = makeDoc13(_b);
+ auto doc14 = makeDoc14(_b);
+
+ invertDocument(10, *doc10);
+ invertDocument(11, *doc11);
+ removeDocument(10);
+ pushDocuments();
+ EXPECT_EQ("f=0,w=a,a=11,"
+ "w=b,a=11,"
+ "w=e,a=11,"
+ "w=f,a=11,"
+ "f=1,w=a,a=11,"
+ "w=g,a=11",
+ _inserter.toStr());
+
+ invertDocument(10, *doc10);
+ invertDocument(11, *doc11);
+ invertDocument(12, *doc12);
+ invertDocument(13, *doc13);
+ invertDocument(14, *doc14);
+ removeDocument(11);
+ removeDocument(13);
+ _inserter.reset();
+ pushDocuments();
+ EXPECT_EQ("f=0,w=a,a=10,"
+ "w=b,a=10,"
+ "w=c,a=10,"
+ "w=d,a=10,"
+ "w=doc12,a=12,"
+ "w=doc14,a=14,"
+ "w=h,a=12,"
+ "w=j,a=14",
+ _inserter.toStr());
+
+ invertDocument(10, *doc10);
+ invertDocument(11, *doc11);
+ invertDocument(12, *doc12);
+ invertDocument(13, *doc13);
+ invertDocument(14, *doc14);
+ removeDocument(11);
+ removeDocument(12);
+ removeDocument(13);
+ removeDocument(14);
+ _inserter.reset();
+ pushDocuments();
+ EXPECT_EQ("f=0,w=a,a=10,"
+ "w=b,a=10,"
+ "w=c,a=10,"
+ "w=d,a=10",
+ _inserter.toStr());
}
-
-TEST_F("requireThatMixOfAddAndRemoveWorks", Fixture)
+TEST_F(FieldInverterTest, require_that_mix_of_add_and_remove_works)
{
- f._inverters[0]->remove("a", 11);
- f._inverters[0]->remove("c", 9);
- f._inverters[0]->remove("d", 10);
- f._inverters[0]->remove("z", 12);
- f.invertDocument(10, *makeDoc10(f._b));
- f.pushDocuments();
- EXPECT_EQUAL("f=0,w=a,a=10,r=11,"
- "w=b,a=10,"
- "w=c,r=9,a=10,"
- "w=d,r=10,a=10,"
- "w=z,r=12",
- f._inserter.toStr());
+ _inverters[0]->remove("a", 11);
+ _inverters[0]->remove("c", 9);
+ _inverters[0]->remove("d", 10);
+ _inverters[0]->remove("z", 12);
+ invertDocument(10, *makeDoc10(_b));
+ pushDocuments();
+ EXPECT_EQ("f=0,w=a,a=10,r=11,"
+ "w=b,a=10,"
+ "w=c,r=9,a=10,"
+ "w=d,r=10,a=10,"
+ "w=z,r=12",
+ _inserter.toStr());
}
-
-TEST_F("require that empty document can be inverted", Fixture)
+TEST_F(FieldInverterTest, require_that_empty_document_can_be_inverted)
{
- f.invertDocument(15, *makeDoc15(f._b));
- f.pushDocuments();
- EXPECT_EQUAL("",
- f._inserter.toStr());
+ invertDocument(15, *makeDoc15(_b));
+ pushDocuments();
+ EXPECT_EQ("",
+ _inserter.toStr());
}
-TEST_F("require that multiple words at same position works", Fixture)
+TEST_F(FieldInverterTest, require_that_multiple_words_at_same_position_works)
{
- f.invertDocument(16, *makeDoc16(f._b));
- f._inserter.setVerbose();
- f.pushDocuments();
- EXPECT_EQUAL("f=0,"
- "w=altbaz,a=16(e=0,w=1,l=5[2]),"
- "w=alty,a=16(e=0,w=1,l=5[3]),"
- "w=bar,a=16(e=0,w=1,l=5[1]),"
- "w=baz,a=16(e=0,w=1,l=5[2]),"
- "w=foo,a=16(e=0,w=1,l=5[0]),"
- "w=y,a=16(e=0,w=1,l=5[3]),"
- "w=z,a=16(e=0,w=1,l=5[4])",
- f._inserter.toStr());
+ invertDocument(16, *makeDoc16(_b));
+ _inserter.setVerbose();
+ pushDocuments();
+ EXPECT_EQ("f=0,"
+ "w=altbaz,a=16(e=0,w=1,l=5[2]),"
+ "w=alty,a=16(e=0,w=1,l=5[3]),"
+ "w=bar,a=16(e=0,w=1,l=5[1]),"
+ "w=baz,a=16(e=0,w=1,l=5[2]),"
+ "w=foo,a=16(e=0,w=1,l=5[0]),"
+ "w=y,a=16(e=0,w=1,l=5[3]),"
+ "w=z,a=16(e=0,w=1,l=5[4])",
+ _inserter.toStr());
}
-TEST_F("require that interleaved features are calculated", Fixture)
+TEST_F(FieldInverterTest, require_that_interleaved_features_are_calculated)
{
- f.invertDocument(17, *makeDoc17(f._b));
- f._inserter.setVerbose();
- f._inserter.set_show_interleaved_features();
- f.pushDocuments();
- EXPECT_EQUAL("f=1,"
- "w=bar0,a=17(fl=2,occs=1,e=0,w=1,l=2[1]),"
- "w=foo0,a=17(fl=2,occs=1,e=0,w=1,l=2[0]),"
- "f=2,"
- "w=bar,a=17(fl=3,occs=2,e=0,w=1,l=2[1],e=1,w=1,l=1[0]),"
- "w=foo,a=17(fl=3,occs=1,e=0,w=1,l=2[0]),"
- "f=3,"
- "w=bar2,a=17(fl=3,occs=2,e=0,w=3,l=2[1],e=1,w=4,l=1[0]),"
- "w=foo2,a=17(fl=3,occs=1,e=0,w=3,l=2[0])",
- f._inserter.toStr());
+ invertDocument(17, *makeDoc17(_b));
+ _inserter.setVerbose();
+ _inserter.set_show_interleaved_features();
+ pushDocuments();
+ EXPECT_EQ("f=1,"
+ "w=bar0,a=17(fl=2,occs=1,e=0,w=1,l=2[1]),"
+ "w=foo0,a=17(fl=2,occs=1,e=0,w=1,l=2[0]),"
+ "f=2,"
+ "w=bar,a=17(fl=3,occs=2,e=0,w=1,l=2[1],e=1,w=1,l=1[0]),"
+ "w=foo,a=17(fl=3,occs=1,e=0,w=1,l=2[0]),"
+ "f=3,"
+ "w=bar2,a=17(fl=3,occs=2,e=0,w=3,l=2[1],e=1,w=4,l=1[0]),"
+ "w=foo2,a=17(fl=3,occs=1,e=0,w=3,l=2[0])",
+ _inserter.toStr());
}
-TEST_F("require that average field length is calculated", Fixture)
+TEST_F(FieldInverterTest, require_that_average_field_length_is_calculated)
{
- f.invertDocument(10, *makeDoc10(f._b));
- f.pushDocuments();
- TEST_DO(f.assert_calculator(0, 4.0, 1));
- TEST_DO(f.assert_calculator(1, 0.0, 0));
- f.invertDocument(11, *makeDoc11(f._b));
- f.pushDocuments();
- TEST_DO(f.assert_calculator(0, (4.0 + 4.0)/2, 2));
- TEST_DO(f.assert_calculator(1, 2.0, 1));
- f.invertDocument(12, *makeDoc12(f._b));
- f.pushDocuments();
- TEST_DO(f.assert_calculator(0, (4.0 + 4.0 + 2.0)/3, 3));
- TEST_DO(f.assert_calculator(1, 2.0, 1));
+ invertDocument(10, *makeDoc10(_b));
+ pushDocuments();
+ assert_calculator(0, 4.0, 1);
+ assert_calculator(1, 0.0, 0);
+ invertDocument(11, *makeDoc11(_b));
+ pushDocuments();
+ assert_calculator(0, (4.0 + 4.0)/2, 2);
+ assert_calculator(1, 2.0, 1);
+ invertDocument(12, *makeDoc12(_b));
+ pushDocuments();
+ assert_calculator(0, (4.0 + 4.0 + 2.0)/3, 3);
+ assert_calculator(1, 2.0, 1);
}
-} // namespace memoryindex
-} // namespace search
+}
+}
-TEST_MAIN() { TEST_RUN_ALL(); }
+GTEST_MAIN_RUN_ALL_TESTS()
diff --git a/searchlib/src/tests/memoryindex/url_field_inverter/CMakeLists.txt b/searchlib/src/tests/memoryindex/url_field_inverter/CMakeLists.txt
index 28efc8a861e..db9418b7190 100644
--- a/searchlib/src/tests/memoryindex/url_field_inverter/CMakeLists.txt
+++ b/searchlib/src/tests/memoryindex/url_field_inverter/CMakeLists.txt
@@ -5,5 +5,6 @@ vespa_add_executable(searchlib_url_field_inverter_test_app TEST
DEPENDS
searchlib_test
searchlib
+ gtest
)
vespa_add_test(NAME searchlib_url_field_inverter_test_app COMMAND searchlib_url_field_inverter_test_app)
diff --git a/searchlib/src/tests/memoryindex/url_field_inverter/url_field_inverter_test.cpp b/searchlib/src/tests/memoryindex/url_field_inverter/url_field_inverter_test.cpp
index 2ea13a20063..2151a44a66d 100644
--- a/searchlib/src/tests/memoryindex/url_field_inverter/url_field_inverter_test.cpp
+++ b/searchlib/src/tests/memoryindex/url_field_inverter/url_field_inverter_test.cpp
@@ -1,15 +1,14 @@
// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
-/* -*- mode: C++; coding: utf-8; -*- */
#include <vespa/document/repo/fixedtyperepo.h>
#include <vespa/searchlib/index/docbuilder.h>
#include <vespa/searchlib/index/field_length_calculator.h>
#include <vespa/searchlib/memoryindex/field_index_remover.h>
#include <vespa/searchlib/memoryindex/field_inverter.h>
-#include <vespa/searchlib/memoryindex/word_store.h>
#include <vespa/searchlib/memoryindex/url_field_inverter.h>
+#include <vespa/searchlib/memoryindex/word_store.h>
#include <vespa/searchlib/test/memoryindex/ordered_field_index_inserter.h>
-#include <vespa/vespalib/testkit/testapp.h>
+#include <vespa/vespalib/gtest/gtest.h>
namespace search {
@@ -56,7 +55,6 @@ makeDoc10Single(DocBuilder &b)
return b.endDocument();
}
-
Document::UP
makeDoc10Array(DocBuilder &b)
{
@@ -169,7 +167,6 @@ makeDoc10WeightedSet(DocBuilder &b)
return b.endDocument();
}
-
Document::UP
makeDoc10Empty(DocBuilder &b)
{
@@ -179,8 +176,7 @@ makeDoc10Empty(DocBuilder &b)
}
-struct Fixture
-{
+struct UrlFieldInverterTest : public ::testing::Test {
Schema _schema;
DocBuilder _b;
WordStore _word_store;
@@ -191,15 +187,13 @@ struct Fixture
std::unique_ptr<UrlFieldInverter> _urlInverter;
index::SchemaIndexFields _schemaIndexFields;
- static Schema
- makeSchema(Schema::CollectionType collectionType)
- {
+ static Schema makeSchema(Schema::CollectionType collectionType) {
Schema schema;
schema.addUriIndexFields(Schema::IndexField("url", DataType::STRING, collectionType));
return schema;
}
- Fixture(Schema::CollectionType collectionType)
+ UrlFieldInverterTest(Schema::CollectionType collectionType)
: _schema(makeSchema(collectionType)),
_b(_schema),
_word_store(),
@@ -233,15 +227,11 @@ struct Fixture
_inverters[urlField._hostname].get());
}
- void
- invertDocument(uint32_t docId, const Document &doc)
- {
+ void invertDocument(uint32_t docId, const Document &doc) {
_urlInverter->invertField(docId, doc.getValue(url));
}
- void
- pushDocuments()
- {
+ void pushDocuments() {
uint32_t fieldId = 0;
for (auto &inverter : _inverters) {
_inserter.setFieldId(fieldId);
@@ -250,324 +240,330 @@ struct Fixture
}
}
- void
- enableAnnotations()
- {
+ void enableAnnotations() {
_urlInverter->setUseAnnotations(true);
}
};
+struct SingleInverterTest : public UrlFieldInverterTest {
+ SingleInverterTest() : UrlFieldInverterTest(CollectionType::SINGLE) {}
+};
+
+struct ArrayInverterTest : public UrlFieldInverterTest {
+ ArrayInverterTest() : UrlFieldInverterTest(CollectionType::ARRAY) {}
+};
-TEST_F("requireThatSingleUrlFieldWorks", Fixture(CollectionType::SINGLE))
-{
- f.invertDocument(10, *makeDoc10Single(f._b));
- f.pushDocuments();
- EXPECT_EQUAL("f=0,"
- "w=2,a=10,"
- "w=4,a=10,"
- "w=81,a=10,"
- "w=ab,a=10,"
- "w=com,a=10,"
- "w=example,a=10,"
- "w=fluke,a=10,"
- "w=http,a=10,"
- "w=www,a=10,"
- "f=1,"
- "w=http,a=10,"
- "f=2,"
- "w=com,a=10,"
- "w=example,a=10,"
- "w=www,a=10,"
- "f=3,"
- "w=81,a=10,"
- "f=4,"
- "w=fluke,a=10,"
- "f=5,"
- "w=2,a=10,"
- "w=ab,a=10,"
- "f=6,"
- "w=4,a=10,"
- "f=7,"
- "w=EnDhOsT,a=10,"
- "w=StArThOsT,a=10,"
- "w=com,a=10,"
- "w=example,a=10,"
- "w=www,a=10",
- f._inserter.toStr());
-}
+struct WeightedSetInverterTest : public UrlFieldInverterTest {
+ WeightedSetInverterTest() : UrlFieldInverterTest(CollectionType::WEIGHTEDSET) {}
+};
-TEST_F("requireThatArrayUrlFieldWorks", Fixture(CollectionType::ARRAY))
+TEST_F(SingleInverterTest, require_that_single_url_field_works)
{
- f.invertDocument(10, *makeDoc10Array(f._b));
- f.pushDocuments();
- EXPECT_EQUAL("f=0,"
- "w=2,a=10,"
- "w=8,a=10,"
- "w=82,a=10,"
- "w=9,a=10,"
- "w=ab,a=10,"
- "w=com,a=10,"
- "w=example,a=10,"
- "w=flickr,a=10,"
- "w=fluke,a=10,"
- "w=http,a=10,"
- "w=www,a=10,"
- "f=1,"
- "w=http,a=10,"
- "f=2,"
- "w=com,a=10,"
- "w=example,a=10,"
- "w=flickr,a=10,"
- "w=www,a=10,"
- "f=3,"
- "w=82,a=10,"
- "f=4,"
- "w=fluke,a=10,"
- "f=5,"
- "w=2,a=10,"
- "w=ab,a=10,"
- "f=6,"
- "w=8,a=10,"
- "w=9,a=10,"
- "f=7,"
- "w=EnDhOsT,a=10,"
- "w=StArThOsT,a=10,"
- "w=com,a=10,"
- "w=example,a=10,"
- "w=flickr,a=10,"
- "w=www,a=10",
- f._inserter.toStr());
+ invertDocument(10, *makeDoc10Single(_b));
+ pushDocuments();
+ EXPECT_EQ("f=0,"
+ "w=2,a=10,"
+ "w=4,a=10,"
+ "w=81,a=10,"
+ "w=ab,a=10,"
+ "w=com,a=10,"
+ "w=example,a=10,"
+ "w=fluke,a=10,"
+ "w=http,a=10,"
+ "w=www,a=10,"
+ "f=1,"
+ "w=http,a=10,"
+ "f=2,"
+ "w=com,a=10,"
+ "w=example,a=10,"
+ "w=www,a=10,"
+ "f=3,"
+ "w=81,a=10,"
+ "f=4,"
+ "w=fluke,a=10,"
+ "f=5,"
+ "w=2,a=10,"
+ "w=ab,a=10,"
+ "f=6,"
+ "w=4,a=10,"
+ "f=7,"
+ "w=EnDhOsT,a=10,"
+ "w=StArThOsT,a=10,"
+ "w=com,a=10,"
+ "w=example,a=10,"
+ "w=www,a=10",
+ _inserter.toStr());
}
-TEST_F("requireThatWeightedSetFieldWorks", Fixture(CollectionType::WEIGHTEDSET))
+TEST_F(ArrayInverterTest, require_that_array_url_field_works)
{
- f.invertDocument(10, *makeDoc10WeightedSet(f._b));
- f.pushDocuments();
- EXPECT_EQUAL("f=0,"
- "w=12,a=10,"
- "w=13,a=10,"
- "w=2,a=10,"
- "w=83,a=10,"
- "w=85,a=10,"
- "w=ab,a=10,"
- "w=com,a=10,"
- "w=example,a=10,"
- "w=flickr,a=10,"
- "w=fluke,a=10,"
- "w=http,a=10,"
- "w=www,a=10,"
- "f=1,"
- "w=http,a=10,"
- "f=2,"
- "w=com,a=10,"
- "w=example,a=10,"
- "w=flickr,a=10,"
- "w=www,a=10,"
- "f=3,"
- "w=83,a=10,"
- "w=85,a=10,"
- "f=4,"
- "w=fluke,a=10,"
- "f=5,"
- "w=2,a=10,"
- "w=ab,a=10,"
- "f=6,"
- "w=12,a=10,"
- "w=13,a=10,"
- "f=7,"
- "w=EnDhOsT,a=10,"
- "w=StArThOsT,a=10,"
- "w=com,a=10,"
- "w=example,a=10,"
- "w=flickr,a=10,"
- "w=www,a=10",
- f._inserter.toStr());
+ invertDocument(10, *makeDoc10Array(_b));
+ pushDocuments();
+ EXPECT_EQ("f=0,"
+ "w=2,a=10,"
+ "w=8,a=10,"
+ "w=82,a=10,"
+ "w=9,a=10,"
+ "w=ab,a=10,"
+ "w=com,a=10,"
+ "w=example,a=10,"
+ "w=flickr,a=10,"
+ "w=fluke,a=10,"
+ "w=http,a=10,"
+ "w=www,a=10,"
+ "f=1,"
+ "w=http,a=10,"
+ "f=2,"
+ "w=com,a=10,"
+ "w=example,a=10,"
+ "w=flickr,a=10,"
+ "w=www,a=10,"
+ "f=3,"
+ "w=82,a=10,"
+ "f=4,"
+ "w=fluke,a=10,"
+ "f=5,"
+ "w=2,a=10,"
+ "w=ab,a=10,"
+ "f=6,"
+ "w=8,a=10,"
+ "w=9,a=10,"
+ "f=7,"
+ "w=EnDhOsT,a=10,"
+ "w=StArThOsT,a=10,"
+ "w=com,a=10,"
+ "w=example,a=10,"
+ "w=flickr,a=10,"
+ "w=www,a=10",
+ _inserter.toStr());
}
-TEST_F("requireThatAnnotatedSingleUrlFieldWorks", Fixture(CollectionType::SINGLE))
+TEST_F(WeightedSetInverterTest, require_that_weighted_set_field_works)
{
- f.enableAnnotations();
- f.invertDocument(10, *makeDoc10Single(f._b));
- f.pushDocuments();
- EXPECT_EQUAL("f=0,"
- "w=2,a=10,"
- "w=4,a=10,"
- "w=81,a=10,"
- "w=ab,a=10,"
- "w=com,a=10,"
- "w=example,a=10,"
- "w=fluke,a=10,"
- "w=http,a=10,"
- "w=www,a=10,"
- "f=1,"
- "w=http,a=10,"
- "f=2,"
- "w=com,a=10,"
- "w=example,a=10,"
- "w=www,a=10,"
- "f=3,"
- "w=81,a=10,"
- "f=4,"
- "w=altfluke,a=10,"
- "w=fluke,a=10,"
- "f=5,"
- "w=2,a=10,"
- "w=ab,a=10,"
- "f=6,"
- "w=4,a=10,"
- "f=7,"
- "w=EnDhOsT,a=10,"
- "w=StArThOsT,a=10,"
- "w=com,a=10,"
- "w=example,a=10,"
- "w=www,a=10",
- f._inserter.toStr());
+ invertDocument(10, *makeDoc10WeightedSet(_b));
+ pushDocuments();
+ EXPECT_EQ("f=0,"
+ "w=12,a=10,"
+ "w=13,a=10,"
+ "w=2,a=10,"
+ "w=83,a=10,"
+ "w=85,a=10,"
+ "w=ab,a=10,"
+ "w=com,a=10,"
+ "w=example,a=10,"
+ "w=flickr,a=10,"
+ "w=fluke,a=10,"
+ "w=http,a=10,"
+ "w=www,a=10,"
+ "f=1,"
+ "w=http,a=10,"
+ "f=2,"
+ "w=com,a=10,"
+ "w=example,a=10,"
+ "w=flickr,a=10,"
+ "w=www,a=10,"
+ "f=3,"
+ "w=83,a=10,"
+ "w=85,a=10,"
+ "f=4,"
+ "w=fluke,a=10,"
+ "f=5,"
+ "w=2,a=10,"
+ "w=ab,a=10,"
+ "f=6,"
+ "w=12,a=10,"
+ "w=13,a=10,"
+ "f=7,"
+ "w=EnDhOsT,a=10,"
+ "w=StArThOsT,a=10,"
+ "w=com,a=10,"
+ "w=example,a=10,"
+ "w=flickr,a=10,"
+ "w=www,a=10",
+ _inserter.toStr());
}
-
-TEST_F("requireThatAnnotatedArrayUrlFieldWorks", Fixture(CollectionType::ARRAY))
+TEST_F(SingleInverterTest, require_that_annotated_single_url_field_works)
{
- f.enableAnnotations();
- f.invertDocument(10, *makeDoc10Array(f._b));
- f.pushDocuments();
- EXPECT_EQUAL("f=0,"
- "w=2,a=10,"
- "w=8,a=10,"
- "w=82,a=10,"
- "w=9,a=10,"
- "w=ab,a=10,"
- "w=com,a=10,"
- "w=example,a=10,"
- "w=flickr,a=10,"
- "w=fluke,a=10,"
- "w=http,a=10,"
- "w=www,a=10,"
- "f=1,"
- "w=http,a=10,"
- "f=2,"
- "w=com,a=10,"
- "w=example,a=10,"
- "w=flickr,a=10,"
- "w=www,a=10,"
- "f=3,"
- "w=82,a=10,"
- "f=4,"
- "w=altfluke,a=10,"
- "w=fluke,a=10,"
- "f=5,"
- "w=2,a=10,"
- "w=ab,a=10,"
- "f=6,"
- "w=8,a=10,"
- "w=9,a=10,"
- "f=7,"
- "w=EnDhOsT,a=10,"
- "w=StArThOsT,a=10,"
- "w=com,a=10,"
- "w=example,a=10,"
- "w=flickr,a=10,"
- "w=www,a=10",
- f._inserter.toStr());
+ enableAnnotations();
+ invertDocument(10, *makeDoc10Single(_b));
+ pushDocuments();
+ EXPECT_EQ("f=0,"
+ "w=2,a=10,"
+ "w=4,a=10,"
+ "w=81,a=10,"
+ "w=ab,a=10,"
+ "w=com,a=10,"
+ "w=example,a=10,"
+ "w=fluke,a=10,"
+ "w=http,a=10,"
+ "w=www,a=10,"
+ "f=1,"
+ "w=http,a=10,"
+ "f=2,"
+ "w=com,a=10,"
+ "w=example,a=10,"
+ "w=www,a=10,"
+ "f=3,"
+ "w=81,a=10,"
+ "f=4,"
+ "w=altfluke,a=10,"
+ "w=fluke,a=10,"
+ "f=5,"
+ "w=2,a=10,"
+ "w=ab,a=10,"
+ "f=6,"
+ "w=4,a=10,"
+ "f=7,"
+ "w=EnDhOsT,a=10,"
+ "w=StArThOsT,a=10,"
+ "w=com,a=10,"
+ "w=example,a=10,"
+ "w=www,a=10",
+ _inserter.toStr());
}
-TEST_F("requireThatAnnotatedWeightedSetFieldWorks",
- Fixture(CollectionType::WEIGHTEDSET))
+TEST_F(ArrayInverterTest, require_that_annotated_array_url_field_works)
{
- f.enableAnnotations();
- f._inserter.setVerbose();
- f.invertDocument(10, *makeDoc10WeightedSet(f._b));
- f.pushDocuments();
- EXPECT_EQUAL("f=0,"
- "w=12,a=10(e=0,w=4,l=9[8]),"
- "w=13,a=10(e=1,w=7,l=9[8]),"
- "w=2,a=10(e=0,w=4,l=9[7],e=1,w=7,l=9[7]),"
- "w=83,a=10(e=0,w=4,l=9[4]),"
- "w=85,a=10(e=1,w=7,l=9[4]),"
- "w=ab,a=10(e=0,w=4,l=9[6],e=1,w=7,l=9[6]),"
- "w=com,a=10(e=0,w=4,l=9[3],e=1,w=7,l=9[3]),"
- "w=example,a=10(e=0,w=4,l=9[2]),"
- "w=flickr,a=10(e=1,w=7,l=9[2]),"
- "w=fluke,a=10(e=0,w=4,l=9[5],e=1,w=7,l=9[5]),"
- "w=http,a=10(e=0,w=4,l=9[0],e=1,w=7,l=9[0]),"
- "w=www,a=10(e=0,w=4,l=9[1],e=1,w=7,l=9[1]),"
- "f=1,"
- "w=http,a=10(e=0,w=4,l=1[0],e=1,w=7,l=1[0]),"
- "f=2,"
- "w=com,a=10(e=0,w=4,l=3[2],e=1,w=7,l=3[2]),"
- "w=example,a=10(e=0,w=4,l=3[1]),"
- "w=flickr,a=10(e=1,w=7,l=3[1]),"
- "w=www,a=10(e=0,w=4,l=3[0],e=1,w=7,l=3[0]),"
- "f=3,"
- "w=83,a=10(e=0,w=4,l=1[0]),"
- "w=85,a=10(e=1,w=7,l=1[0]),"
- "f=4,"
- "w=altfluke,a=10(e=0,w=4,l=1[0]),"
- "w=fluke,a=10(e=0,w=4,l=1[0],e=1,w=7,l=1[0]),"
- "f=5,"
- "w=2,a=10(e=0,w=4,l=2[1],e=1,w=7,l=2[1]),"
- "w=ab,a=10(e=0,w=4,l=2[0],e=1,w=7,l=2[0]),"
- "f=6,"
- "w=12,a=10(e=0,w=4,l=1[0]),"
- "w=13,a=10(e=1,w=7,l=1[0]),"
- "f=7,"
- "w=EnDhOsT,a=10(e=0,w=4,l=5[4],e=1,w=7,l=5[4]),"
- "w=StArThOsT,a=10(e=0,w=4,l=5[0],e=1,w=7,l=5[0]),"
- "w=com,a=10(e=0,w=4,l=5[3],e=1,w=7,l=5[3]),"
- "w=example,a=10(e=0,w=4,l=5[2]),"
- "w=flickr,a=10(e=1,w=7,l=5[2]),"
- "w=www,a=10(e=0,w=4,l=5[1],e=1,w=7,l=5[1])",
- f._inserter.toStr());
+ enableAnnotations();
+ invertDocument(10, *makeDoc10Array(_b));
+ pushDocuments();
+ EXPECT_EQ("f=0,"
+ "w=2,a=10,"
+ "w=8,a=10,"
+ "w=82,a=10,"
+ "w=9,a=10,"
+ "w=ab,a=10,"
+ "w=com,a=10,"
+ "w=example,a=10,"
+ "w=flickr,a=10,"
+ "w=fluke,a=10,"
+ "w=http,a=10,"
+ "w=www,a=10,"
+ "f=1,"
+ "w=http,a=10,"
+ "f=2,"
+ "w=com,a=10,"
+ "w=example,a=10,"
+ "w=flickr,a=10,"
+ "w=www,a=10,"
+ "f=3,"
+ "w=82,a=10,"
+ "f=4,"
+ "w=altfluke,a=10,"
+ "w=fluke,a=10,"
+ "f=5,"
+ "w=2,a=10,"
+ "w=ab,a=10,"
+ "f=6,"
+ "w=8,a=10,"
+ "w=9,a=10,"
+ "f=7,"
+ "w=EnDhOsT,a=10,"
+ "w=StArThOsT,a=10,"
+ "w=com,a=10,"
+ "w=example,a=10,"
+ "w=flickr,a=10,"
+ "w=www,a=10",
+ _inserter.toStr());
}
+TEST_F(WeightedSetInverterTest, require_that_annotated_weighted_set_field_works)
+{
+ enableAnnotations();
+ _inserter.setVerbose();
+ invertDocument(10, *makeDoc10WeightedSet(_b));
+ pushDocuments();
+ EXPECT_EQ("f=0,"
+ "w=12,a=10(e=0,w=4,l=9[8]),"
+ "w=13,a=10(e=1,w=7,l=9[8]),"
+ "w=2,a=10(e=0,w=4,l=9[7],e=1,w=7,l=9[7]),"
+ "w=83,a=10(e=0,w=4,l=9[4]),"
+ "w=85,a=10(e=1,w=7,l=9[4]),"
+ "w=ab,a=10(e=0,w=4,l=9[6],e=1,w=7,l=9[6]),"
+ "w=com,a=10(e=0,w=4,l=9[3],e=1,w=7,l=9[3]),"
+ "w=example,a=10(e=0,w=4,l=9[2]),"
+ "w=flickr,a=10(e=1,w=7,l=9[2]),"
+ "w=fluke,a=10(e=0,w=4,l=9[5],e=1,w=7,l=9[5]),"
+ "w=http,a=10(e=0,w=4,l=9[0],e=1,w=7,l=9[0]),"
+ "w=www,a=10(e=0,w=4,l=9[1],e=1,w=7,l=9[1]),"
+ "f=1,"
+ "w=http,a=10(e=0,w=4,l=1[0],e=1,w=7,l=1[0]),"
+ "f=2,"
+ "w=com,a=10(e=0,w=4,l=3[2],e=1,w=7,l=3[2]),"
+ "w=example,a=10(e=0,w=4,l=3[1]),"
+ "w=flickr,a=10(e=1,w=7,l=3[1]),"
+ "w=www,a=10(e=0,w=4,l=3[0],e=1,w=7,l=3[0]),"
+ "f=3,"
+ "w=83,a=10(e=0,w=4,l=1[0]),"
+ "w=85,a=10(e=1,w=7,l=1[0]),"
+ "f=4,"
+ "w=altfluke,a=10(e=0,w=4,l=1[0]),"
+ "w=fluke,a=10(e=0,w=4,l=1[0],e=1,w=7,l=1[0]),"
+ "f=5,"
+ "w=2,a=10(e=0,w=4,l=2[1],e=1,w=7,l=2[1]),"
+ "w=ab,a=10(e=0,w=4,l=2[0],e=1,w=7,l=2[0]),"
+ "f=6,"
+ "w=12,a=10(e=0,w=4,l=1[0]),"
+ "w=13,a=10(e=1,w=7,l=1[0]),"
+ "f=7,"
+ "w=EnDhOsT,a=10(e=0,w=4,l=5[4],e=1,w=7,l=5[4]),"
+ "w=StArThOsT,a=10(e=0,w=4,l=5[0],e=1,w=7,l=5[0]),"
+ "w=com,a=10(e=0,w=4,l=5[3],e=1,w=7,l=5[3]),"
+ "w=example,a=10(e=0,w=4,l=5[2]),"
+ "w=flickr,a=10(e=1,w=7,l=5[2]),"
+ "w=www,a=10(e=0,w=4,l=5[1],e=1,w=7,l=5[1])",
+ _inserter.toStr());
+}
-TEST_F("requireThatEmptySingleFieldWorks", Fixture(CollectionType::SINGLE))
+TEST_F(SingleInverterTest, require_that_empty_single_field_works)
{
- f.invertDocument(10, *makeDoc10Empty(f._b));
- f.pushDocuments();
- EXPECT_EQUAL("", f._inserter.toStr());
+ invertDocument(10, *makeDoc10Empty(_b));
+ pushDocuments();
+ EXPECT_EQ("", _inserter.toStr());
}
-TEST_F("requireThatEmptyArrayFieldWorks", Fixture(CollectionType::ARRAY))
+TEST_F(ArrayInverterTest, require_that_empty_array_field_works)
{
- f.invertDocument(10, *makeDoc10Empty(f._b));
- f.pushDocuments();
- EXPECT_EQUAL("",
- f._inserter.toStr());
+ invertDocument(10, *makeDoc10Empty(_b));
+ pushDocuments();
+ EXPECT_EQ("",
+ _inserter.toStr());
}
-TEST_F("requireThatEmptyWeightedSetFieldWorks", Fixture(CollectionType::WEIGHTEDSET))
+TEST_F(WeightedSetInverterTest, require_that_empty_weighted_set_field_works)
{
- f.invertDocument(10, *makeDoc10Empty(f._b));
- f.pushDocuments();
- EXPECT_EQUAL("", f._inserter.toStr());
+ invertDocument(10, *makeDoc10Empty(_b));
+ pushDocuments();
+ EXPECT_EQ("", _inserter.toStr());
}
-TEST_F("requireThatAnnotatedEmptySingleFieldWorks", Fixture(CollectionType::SINGLE))
+TEST_F(SingleInverterTest, require_that_annotated_empty_single_field_works)
{
- f.enableAnnotations();
- f.invertDocument(10, *makeDoc10Empty(f._b));
- f.pushDocuments();
- EXPECT_EQUAL("", f._inserter.toStr());
+ enableAnnotations();
+ invertDocument(10, *makeDoc10Empty(_b));
+ pushDocuments();
+ EXPECT_EQ("", _inserter.toStr());
}
-TEST_F("requireThatAnnotatedEmptyArrayFieldWorks", Fixture(CollectionType::ARRAY))
+TEST_F(ArrayInverterTest, require_that_annotated_empty_array_field_works)
{
- f.enableAnnotations();
- f.invertDocument(10, *makeDoc10Empty(f._b));
- f.pushDocuments();
- EXPECT_EQUAL("", f._inserter.toStr());
+ enableAnnotations();
+ invertDocument(10, *makeDoc10Empty(_b));
+ pushDocuments();
+ EXPECT_EQ("", _inserter.toStr());
}
-TEST_F("requireThatAnnotatedEmptyWeightedSetFieldWorks", Fixture(CollectionType::WEIGHTEDSET))
+TEST_F(WeightedSetInverterTest, require_that_annotated_empty_weighted_set_field_works)
{
- f.enableAnnotations();
- f.invertDocument(10, *makeDoc10Empty(f._b));
- f.pushDocuments();
- EXPECT_EQUAL("", f._inserter.toStr());
+ enableAnnotations();
+ invertDocument(10, *makeDoc10Empty(_b));
+ pushDocuments();
+ EXPECT_EQ("", _inserter.toStr());
}
-} // namespace memoryindex
-} // namespace search
+}
+}
-TEST_MAIN() { TEST_RUN_ALL(); }
+GTEST_MAIN_RUN_ALL_TESTS()