summaryrefslogtreecommitdiffstats
path: root/searchlib/src/tests/memoryindex
diff options
context:
space:
mode:
authorGeir Storli <geirst@verizonmedia.com>2019-06-28 07:57:47 +0000
committerGeir Storli <geirst@verizonmedia.com>2019-06-28 07:57:47 +0000
commit12edea65d5f54eb3ded7771ba4e88e46c2ce364b (patch)
tree509c3613ff96bea44b6e0f8803b28b99503ed81a /searchlib/src/tests/memoryindex
parentfb7f931eb3e68545999666350bb5afca69b10f74 (diff)
Rewrite field inverter tests to gtest.
Diffstat (limited to 'searchlib/src/tests/memoryindex')
-rw-r--r--searchlib/src/tests/memoryindex/field_inverter/CMakeLists.txt1
-rw-r--r--searchlib/src/tests/memoryindex/field_inverter/field_inverter_test.cpp362
2 files changed, 169 insertions, 194 deletions
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()