diff options
author | Geir Storli <geirst@yahooinc.com> | 2022-06-23 12:49:13 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-06-23 12:49:13 +0200 |
commit | ff599094f3415cb2dabc7b2b2453196b3ba6f488 (patch) | |
tree | 7cbbec96f37a0f5fb3bfd5f6fe595e35491dc43c /searchlib | |
parent | 750669b3fd7414a4cd626a9c655f07032c203ad3 (diff) | |
parent | 01014ed6961c679612bd2b93288bfc026eb41857 (diff) |
Merge pull request #23212 from vespa-engine/geirst/nearest-neighbor-iterator-gtest
Rewrite nearest neighbor iterator test to GTest.
Diffstat (limited to 'searchlib')
-rw-r--r-- | searchlib/src/tests/queryeval/nearest_neighbor/CMakeLists.txt | 1 | ||||
-rw-r--r-- | searchlib/src/tests/queryeval/nearest_neighbor/nearest_neighbor_test.cpp | 99 |
2 files changed, 50 insertions, 50 deletions
diff --git a/searchlib/src/tests/queryeval/nearest_neighbor/CMakeLists.txt b/searchlib/src/tests/queryeval/nearest_neighbor/CMakeLists.txt index 3ebc8eb5251..e543a847498 100644 --- a/searchlib/src/tests/queryeval/nearest_neighbor/CMakeLists.txt +++ b/searchlib/src/tests/queryeval/nearest_neighbor/CMakeLists.txt @@ -5,5 +5,6 @@ vespa_add_executable(searchlib_nearest_neighbor_test_app TEST nearest_neighbor_test.cpp DEPENDS searchlib + GTest::GTest ) vespa_add_test(NAME searchlib_nearest_neighbor_test_app COMMAND searchlib_nearest_neighbor_test_app) diff --git a/searchlib/src/tests/queryeval/nearest_neighbor/nearest_neighbor_test.cpp b/searchlib/src/tests/queryeval/nearest_neighbor/nearest_neighbor_test.cpp index 029b74ff914..5f4db88bf4c 100644 --- a/searchlib/src/tests/queryeval/nearest_neighbor/nearest_neighbor_test.cpp +++ b/searchlib/src/tests/queryeval/nearest_neighbor/nearest_neighbor_test.cpp @@ -1,37 +1,36 @@ // Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. -#include <vespa/vespalib/testkit/test_kit.h> -#include <vespa/vespalib/util/stringfmt.h> - #include <vespa/eval/eval/simple_value.h> #include <vespa/eval/eval/tensor_spec.h> +#include <vespa/searchcommon/attribute/config.h> #include <vespa/searchlib/common/bitvector.h> #include <vespa/searchlib/common/feature.h> #include <vespa/searchlib/fef/matchdata.h> #include <vespa/searchlib/queryeval/nearest_neighbor_iterator.h> +#include <vespa/searchlib/queryeval/nns_index_iterator.h> #include <vespa/searchlib/queryeval/simpleresult.h> #include <vespa/searchlib/tensor/dense_tensor_attribute.h> #include <vespa/searchlib/tensor/distance_function_factory.h> +#include <vespa/vespalib/gtest/gtest.h> #include <vespa/vespalib/test/insertion_operators.h> -#include <vespa/searchlib/queryeval/nns_index_iterator.h> -#include <vespa/searchcommon/attribute/config.h> +#include <vespa/vespalib/util/stringfmt.h> #include <vespa/log/log.h> LOG_SETUP("nearest_neighbor_test"); #define EPS 1.0e-6 -using search::feature_t; -using search::tensor::DenseTensorAttribute; using search::AttributeVector; using search::BitVector; -using vespalib::eval::Value; -using vespalib::eval::ValueType; +using search::attribute::DistanceMetric; +using search::feature_t; +using search::tensor::DenseTensorAttribute; +using search::tensor::DistanceFunction; using vespalib::eval::CellType; -using vespalib::eval::TensorSpec; using vespalib::eval::SimpleValue; -using search::tensor::DistanceFunction; -using search::attribute::DistanceMetric; +using vespalib::eval::TensorSpec; +using vespalib::eval::Value; +using vespalib::eval::ValueType; using namespace search::fef; using namespace search::queryeval; @@ -96,7 +95,7 @@ struct Fixture uint32_t sz = _attr->getNumDocs(); _global_filter = BitVector::create(sz); for (uint32_t id : docids) { - EXPECT_LESS(id, sz); + EXPECT_LT(id, sz); _global_filter->setBit(id); } } @@ -152,33 +151,33 @@ verify_iterator_returns_expected_results(const vespalib::string& attribute_tenso auto nullTensor = createTensor(query_tensor_type_spec, 0.0, 0.0); SimpleResult result = find_matches<true>(fixture, *nullTensor); SimpleResult nullExpect({1,2,4,6}); - EXPECT_EQUAL(result, nullExpect); + EXPECT_EQ(result, nullExpect); result = find_matches<false>(fixture, *nullTensor); - EXPECT_EQUAL(result, nullExpect); + EXPECT_EQ(result, nullExpect); auto farTensor = createTensor(query_tensor_type_spec, 9.0, 9.0); SimpleResult farExpect({1,2,3,5}); result = find_matches<true>(fixture, *farTensor); - EXPECT_EQUAL(result, farExpect); + EXPECT_EQ(result, farExpect); result = find_matches<false>(fixture, *farTensor); - EXPECT_EQUAL(result, farExpect); + EXPECT_EQ(result, farExpect); SimpleResult null_thr5_exp({1,4,6}); result = find_matches<true>(fixture, *nullTensor, 5.0); - EXPECT_EQUAL(result, null_thr5_exp); + EXPECT_EQ(result, null_thr5_exp); result = find_matches<false>(fixture, *nullTensor, 5.0); - EXPECT_EQUAL(result, null_thr5_exp); + EXPECT_EQ(result, null_thr5_exp); SimpleResult far_thr4_exp({2,5}); result = find_matches<true>(fixture, *farTensor, 4.0); - EXPECT_EQUAL(result, far_thr4_exp); + EXPECT_EQ(result, far_thr4_exp); result = find_matches<false>(fixture, *farTensor, 4.0); - EXPECT_EQUAL(result, far_thr4_exp); + EXPECT_EQ(result, far_thr4_exp); } -TEST("require that NearestNeighborIterator returns expected results") { - TEST_DO(verify_iterator_returns_expected_results(denseSpecDouble, denseSpecDouble)); - TEST_DO(verify_iterator_returns_expected_results(denseSpecFloat, denseSpecFloat)); +TEST(NnsIndexIteratorTest, require_that_iterator_returns_expected_results) { + verify_iterator_returns_expected_results(denseSpecDouble, denseSpecDouble); + verify_iterator_returns_expected_results(denseSpecFloat, denseSpecFloat); } void @@ -197,20 +196,20 @@ verify_iterator_returns_filtered_results(const vespalib::string& attribute_tenso auto nullTensor = createTensor(query_tensor_type_spec, 0.0, 0.0); SimpleResult result = find_matches<true>(fixture, *nullTensor); SimpleResult nullExpect({1,3,4}); - EXPECT_EQUAL(result, nullExpect); + EXPECT_EQ(result, nullExpect); result = find_matches<false>(fixture, *nullTensor); - EXPECT_EQUAL(result, nullExpect); + EXPECT_EQ(result, nullExpect); auto farTensor = createTensor(query_tensor_type_spec, 9.0, 9.0); SimpleResult farExpect({1,3,4}); result = find_matches<true>(fixture, *farTensor); - EXPECT_EQUAL(result, farExpect); + EXPECT_EQ(result, farExpect); result = find_matches<false>(fixture, *farTensor); - EXPECT_EQUAL(result, farExpect); + EXPECT_EQ(result, farExpect); } -TEST("require that NearestNeighborIterator returns filtered results") { - TEST_DO(verify_iterator_returns_filtered_results(denseSpecDouble, denseSpecDouble)); - TEST_DO(verify_iterator_returns_filtered_results(denseSpecFloat, denseSpecFloat)); +TEST(NnsIndexIteratorTest, require_that_iterator_returns_filtered_results) { + verify_iterator_returns_filtered_results(denseSpecDouble, denseSpecDouble); + verify_iterator_returns_filtered_results(denseSpecFloat, denseSpecFloat); } template <bool strict> @@ -249,23 +248,23 @@ verify_iterator_sets_expected_rawscore(const vespalib::string& attribute_tensor_ auto nullTensor = createTensor(query_tensor_type_spec, 0.0, 0.0); std::vector<feature_t> got = get_rawscores<true>(fixture, *nullTensor); std::vector<feature_t> expected{5.0, 13.0, 10.0, 10.0, 5.0}; - EXPECT_EQUAL(got.size(), expected.size()); + EXPECT_EQ(got.size(), expected.size()); for (size_t i = 0; i < expected.size(); ++i) { - EXPECT_APPROX(1.0/(1.0+expected[i]), got[i], EPS); + EXPECT_NEAR(1.0/(1.0+expected[i]), got[i], EPS); } got = get_rawscores<false>(fixture, *nullTensor); - EXPECT_EQUAL(got.size(), expected.size()); + EXPECT_EQ(got.size(), expected.size()); for (size_t i = 0; i < expected.size(); ++i) { - EXPECT_APPROX(1.0/(1.0+expected[i]), got[i], EPS); + EXPECT_NEAR(1.0/(1.0+expected[i]), got[i], EPS); } } -TEST("require that NearestNeighborIterator sets expected rawscore") { - TEST_DO(verify_iterator_sets_expected_rawscore(denseSpecDouble, denseSpecDouble)); - TEST_DO(verify_iterator_sets_expected_rawscore(denseSpecFloat, denseSpecFloat)); +TEST(NnsIndexIteratorTest, require_that_iterator_sets_expected_rawscore) { + verify_iterator_sets_expected_rawscore(denseSpecDouble, denseSpecDouble); + verify_iterator_sets_expected_rawscore(denseSpecFloat, denseSpecFloat); } -TEST("require that NnsIndexIterator works as expected") { +TEST(NnsIndexIteratorTest, require_that_iterator_works_as_expected) { std::vector<NnsIndexIterator::Hit> hits{{2,4.0}, {3,9.0}, {5,1.0}, {8,16.0}, {9,36.0}}; auto md = MatchData::makeTestInstance(2, 2); auto &tfmd = *(md->resolveTermField(0)); @@ -275,37 +274,37 @@ TEST("require that NnsIndexIterator works as expected") { bool match = search->seek(docid); EXPECT_FALSE(match); EXPECT_FALSE(search->isAtEnd()); - EXPECT_EQUAL(2u, search->getDocId()); + EXPECT_EQ(2u, search->getDocId()); docid = 2; match = search->seek(docid); EXPECT_TRUE(match); EXPECT_FALSE(search->isAtEnd()); - EXPECT_EQUAL(docid, search->getDocId()); + EXPECT_EQ(docid, search->getDocId()); search->unpack(docid); - EXPECT_APPROX(1.0/(1.0+2.0), tfmd.getRawScore(), EPS); + EXPECT_NEAR(1.0/(1.0+2.0), tfmd.getRawScore(), EPS); docid = 3; match = search->seek(docid); EXPECT_TRUE(match); EXPECT_FALSE(search->isAtEnd()); - EXPECT_EQUAL(docid, search->getDocId()); + EXPECT_EQ(docid, search->getDocId()); search->unpack(docid); - EXPECT_APPROX(1.0/(1.0+3.0), tfmd.getRawScore(), EPS); + EXPECT_NEAR(1.0/(1.0+3.0), tfmd.getRawScore(), EPS); docid = 4; match = search->seek(docid); EXPECT_FALSE(match); EXPECT_FALSE(search->isAtEnd()); - EXPECT_EQUAL(5u, search->getDocId()); + EXPECT_EQ(5u, search->getDocId()); docid = 6; match = search->seek(docid); EXPECT_FALSE(match); EXPECT_FALSE(search->isAtEnd()); - EXPECT_EQUAL(8u, search->getDocId()); + EXPECT_EQ(8u, search->getDocId()); docid = 8; search->unpack(docid); - EXPECT_APPROX(1.0/(1.0+4.0), tfmd.getRawScore(), EPS); + EXPECT_NEAR(1.0/(1.0+4.0), tfmd.getRawScore(), EPS); docid = 9; match = search->seek(docid); EXPECT_TRUE(match); @@ -320,10 +319,10 @@ TEST("require that NnsIndexIterator works as expected") { match = search->seek(docid); EXPECT_FALSE(match); EXPECT_FALSE(search->isAtEnd()); - EXPECT_EQUAL(5u, search->getDocId()); + EXPECT_EQ(5u, search->getDocId()); docid = 5; search->unpack(docid); - EXPECT_APPROX(1.0/(1.0+1.0), tfmd.getRawScore(), EPS); + EXPECT_NEAR(1.0/(1.0+1.0), tfmd.getRawScore(), EPS); EXPECT_FALSE(search->isAtEnd()); docid = 6; match = search->seek(docid); @@ -331,4 +330,4 @@ TEST("require that NnsIndexIterator works as expected") { EXPECT_TRUE(search->isAtEnd()); } -TEST_MAIN() { TEST_RUN_ALL(); } +GTEST_MAIN_RUN_ALL_TESTS() |