summaryrefslogtreecommitdiffstats
path: root/searchlib
diff options
context:
space:
mode:
authorArne Juul <arnej@yahoo-inc.com>2019-01-09 14:22:24 +0000
committerArne Juul <arnej@yahoo-inc.com>2019-01-09 14:22:24 +0000
commit97dabeae20fe08e2d0513d654a912ff8f8e72635 (patch)
tree48fd9f1214e9e718bd43b5bddf1d34aa1d4c6924 /searchlib
parent645c633d60fc056f058f9b68fe3fb517537b4606 (diff)
add test
Diffstat (limited to 'searchlib')
-rw-r--r--searchlib/src/tests/fef/termfieldmodel/termfieldmodel_test.cpp28
1 files changed, 28 insertions, 0 deletions
diff --git a/searchlib/src/tests/fef/termfieldmodel/termfieldmodel_test.cpp b/searchlib/src/tests/fef/termfieldmodel/termfieldmodel_test.cpp
index e689e613886..ca9e331bb62 100644
--- a/searchlib/src/tests/fef/termfieldmodel/termfieldmodel_test.cpp
+++ b/searchlib/src/tests/fef/termfieldmodel/termfieldmodel_test.cpp
@@ -286,4 +286,32 @@ TEST("require that MatchData soft_reset retains appropriate state") {
EXPECT_EQUAL(new_term->getDocId(), TermFieldMatchData::invalidId());
}
+TEST("require that compareWithExactness implements a strict weak ordering") {
+ TermFieldMatchDataPosition a(0, 1, 100, 1);
+ TermFieldMatchDataPosition b(0, 2, 100, 1);
+ TermFieldMatchDataPosition c(0, 2, 100, 1);
+ TermFieldMatchDataPosition d(0, 3, 100, 3);
+ TermFieldMatchDataPosition e(0, 3, 100, 3);
+ TermFieldMatchDataPosition f(0, 4, 100, 1);
+
+ d.setMatchExactness(0.75);
+ e.setMatchExactness(0.5);
+
+ bool (*cmp)(const TermFieldMatchDataPosition &a,
+ const TermFieldMatchDataPosition &b) = TermFieldMatchDataPosition::compareWithExactness;
+
+ EXPECT_EQUAL(true, cmp(a, b));
+ EXPECT_EQUAL(false, cmp(b, c));
+ EXPECT_EQUAL(true, cmp(c, d));
+ EXPECT_EQUAL(true, cmp(d, e));
+ EXPECT_EQUAL(true, cmp(e, f));
+
+ EXPECT_EQUAL(false, cmp(b, a));
+ EXPECT_EQUAL(false, cmp(c, b));
+ EXPECT_EQUAL(false, cmp(d, c));
+ EXPECT_EQUAL(false, cmp(e, d));
+ EXPECT_EQUAL(false, cmp(f, e));
+}
+
+
TEST_MAIN() { TEST_RUN_ALL(); }