diff options
author | Håvard Pettersen <havardpe@oath.com> | 2018-08-10 09:35:19 +0000 |
---|---|---|
committer | Håvard Pettersen <havardpe@oath.com> | 2018-08-14 09:47:43 +0000 |
commit | 4f9bd36ae68cafc82e010be1c5e3e8883b721bb8 (patch) | |
tree | bfcfc90820fcd57aa735c1534bdcfd47bf2f643b /searchlib/src/tests/hitcollector | |
parent | 572d47966292bcb6f9052613d201fda458904447 (diff) |
added sorted hit sequence with test
Diffstat (limited to 'searchlib/src/tests/hitcollector')
-rw-r--r-- | searchlib/src/tests/hitcollector/CMakeLists.txt | 7 | ||||
-rw-r--r-- | searchlib/src/tests/hitcollector/sorted_hit_sequence_test.cpp | 29 |
2 files changed, 36 insertions, 0 deletions
diff --git a/searchlib/src/tests/hitcollector/CMakeLists.txt b/searchlib/src/tests/hitcollector/CMakeLists.txt index 1f35bdc4a3f..6b7fe874ea3 100644 --- a/searchlib/src/tests/hitcollector/CMakeLists.txt +++ b/searchlib/src/tests/hitcollector/CMakeLists.txt @@ -6,3 +6,10 @@ vespa_add_executable(searchlib_hitcollector_test_app TEST searchlib ) vespa_add_test(NAME searchlib_hitcollector_test_app COMMAND searchlib_hitcollector_test_app) +vespa_add_executable(searchlib_sorted_hit_sequence_test_app TEST + SOURCES + sorted_hit_sequence_test.cpp + DEPENDS + searchlib +) +vespa_add_test(NAME searchlib_sorted_hit_sequence_test_app COMMAND searchlib_sorted_hit_sequence_test_app) diff --git a/searchlib/src/tests/hitcollector/sorted_hit_sequence_test.cpp b/searchlib/src/tests/hitcollector/sorted_hit_sequence_test.cpp new file mode 100644 index 00000000000..ac054ddbafd --- /dev/null +++ b/searchlib/src/tests/hitcollector/sorted_hit_sequence_test.cpp @@ -0,0 +1,29 @@ +// Copyright 2018 Yahoo Holdings. 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/searchlib/queryeval/sorted_hit_sequence.h> + +using search::queryeval::SortedHitSequence; +using Hits = std::vector<SortedHitSequence::Hit>; +using Refs = std::vector<SortedHitSequence::Ref>; + +Hits hits({{1,10.0},{2,30.0},{3,20.0}}); +Refs refs({1,2,0}); + +TEST("require that empty hit sequence is empty") { + EXPECT_TRUE(!SortedHitSequence(nullptr, nullptr, 0).valid()); + EXPECT_TRUE(!SortedHitSequence(&hits[0], &refs[0], 0).valid()); +} + +TEST("require that sorted hit sequence can be iterated") { + SortedHitSequence seq(&hits[0], &refs[0], refs.size()); + for (const auto &expect: Hits({{2,30.0},{3,20.0},{1,10.0}})) { + ASSERT_TRUE(seq.valid()); + EXPECT_EQUAL(expect.first, seq.get().first); + EXPECT_EQUAL(expect.second, seq.get().second); + seq.next(); + } + EXPECT_TRUE(!seq.valid()); +} + +TEST_MAIN() { TEST_RUN_ALL(); } |