diff options
author | Tor Egge <Tor.Egge@broadpark.no> | 2020-05-15 15:26:19 +0200 |
---|---|---|
committer | Tor Egge <Tor.Egge@broadpark.no> | 2020-05-15 15:27:23 +0200 |
commit | d4ee00fdb032d28e2473c4eab2fa98cf8b2f2d3e (patch) | |
tree | 7da1bbc95baf7abd20800155b4a75eef4ac6dd9c /searchlib | |
parent | e65f5cc1f099a339be26ee9b7de98f29dc32b85b (diff) |
Extend term match data merger test: merging of interleaved features.
Diffstat (limited to 'searchlib')
-rw-r--r-- | searchlib/src/tests/fef/termmatchdatamerger/termmatchdatamerger_test.cpp | 93 |
1 files changed, 93 insertions, 0 deletions
diff --git a/searchlib/src/tests/fef/termmatchdatamerger/termmatchdatamerger_test.cpp b/searchlib/src/tests/fef/termmatchdatamerger/termmatchdatamerger_test.cpp index 51b788a0fe5..0c1d6149407 100644 --- a/searchlib/src/tests/fef/termmatchdatamerger/termmatchdatamerger_test.cpp +++ b/searchlib/src/tests/fef/termmatchdatamerger/termmatchdatamerger_test.cpp @@ -245,5 +245,98 @@ TEST(TermMatchDataMergerTest, merge_max_element_length) EXPECT_EQ(1000u, out.getIterator().getFieldLength()); } +TEST(TermMatchDataMergerTest, merge_no_normal_features) +{ + TermFieldMatchData a; + TermFieldMatchData b; + MDMIs input; + input.push_back(MDMI(&a, 0.5)); + input.push_back(MDMI(&b, 1.5)); + + TermFieldMatchData out; + TermFieldMatchDataArray output; + output.add(&out); + out.setNeedNormalFeatures(false); + TermMatchDataMerger merger(input, output); + + uint32_t docid = 5; + + a.reset(docid); + a.appendPosition(make_pos(5)); + + b.reset(docid); + b.appendPosition(make_pos(3)); + + merger.merge(docid); + EXPECT_EQ(docid, out.getDocId()); + EXPECT_EQ(0u, out.size()); +} + +TEST(TermMatchDataMergerTest, merge_interleaved_features) +{ + TermFieldMatchData a; + TermFieldMatchData b; + MDMIs input; + input.push_back(MDMI(&a, 0.5)); + input.push_back(MDMI(&b, 1.5)); + + TermFieldMatchData out; + TermFieldMatchDataArray output; + output.add(&out); + out.setNeedNormalFeatures(false); + out.setNeedInterleavedFeatures(true); + TermMatchDataMerger merger(input, output); + + uint32_t docid = 5; + + a.reset(docid); + a.setNumOccs(1); + a.setFieldLength(30); + + b.reset(docid); + b.setNumOccs(1); + b.setFieldLength(30); + + merger.merge(docid); + EXPECT_EQ(docid, out.getDocId()); + EXPECT_EQ(2u, out.getNumOccs()); + EXPECT_EQ(30u, out.getFieldLength()); +} + +TEST(TermMatchDataMergerTest, merge_interleaved_features_with_dected_duplicate) +{ + TermFieldMatchData a; + TermFieldMatchData b; + MDMIs input; + input.push_back(MDMI(&a, 0.5)); + input.push_back(MDMI(&b, 1.5)); + + TermFieldMatchData out; + TermFieldMatchDataArray output; + output.add(&out); + out.setNeedNormalFeatures(true); + out.setNeedInterleavedFeatures(true); + TermMatchDataMerger merger(input, output); + + uint32_t docid = 5; + + a.reset(docid); + a.setNumOccs(1); + a.setFieldLength(30); + a.appendPosition(make_pos(5)); + + b.reset(docid); + b.setNumOccs(1); + b.setFieldLength(30); + b.appendPosition(make_pos(5)); + + merger.merge(docid); + EXPECT_EQ(docid, out.getDocId()); + EXPECT_EQ(1u, out.end() - out.begin()); + EXPECT_EQ( 5u, out.begin()[0].getPosition()); + EXPECT_EQ(1.5, out.begin()[0].getMatchExactness()); + EXPECT_EQ(1u, out.getNumOccs()); + EXPECT_EQ(30u, out.getFieldLength()); +} GTEST_MAIN_RUN_ALL_TESTS() |