diff options
author | Haavard <havardpe@yahoo-inc.com> | 2017-02-27 13:10:45 +0000 |
---|---|---|
committer | Haavard <havardpe@yahoo-inc.com> | 2017-02-27 13:10:45 +0000 |
commit | 6441c92aeec71c9a23b5715bedabedd2d20bb26b (patch) | |
tree | 250c0e686083282c983edccf0f51f7fdbc6ffd99 /searchlib/src/tests/fef/rank_program | |
parent | 76593b4c8052f0f5f02cc41293fe2db253e48b50 (diff) |
verify the lazyness of interpreted ranking expressions
Diffstat (limited to 'searchlib/src/tests/fef/rank_program')
-rw-r--r-- | searchlib/src/tests/fef/rank_program/rank_program_test.cpp | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/searchlib/src/tests/fef/rank_program/rank_program_test.cpp b/searchlib/src/tests/fef/rank_program/rank_program_test.cpp index 261be51a3c7..1d88f4e92b1 100644 --- a/searchlib/src/tests/fef/rank_program/rank_program_test.cpp +++ b/searchlib/src/tests/fef/rank_program/rank_program_test.cpp @@ -322,4 +322,18 @@ TEST_F("require that lazy ranking expression only calculates needed inputs", Fix EXPECT_EQUAL(f1.track_cnt, 2u); } +TEST_F("require that interpreted ranking expressions are always lazy", Fixture()) { + f1.lazy_expressions(false); + f1.add_expr("rank", "if(docid<10,box(track(ivalue(1))),track(ivalue(2)))"); + f1.compile(); + EXPECT_EQUAL(7u, f1.program.num_executors()); + EXPECT_EQUAL(8u, count_features(f1.program)); + EXPECT_EQUAL(0u, count_const_features(f1.program)); + EXPECT_EQUAL(f1.track_cnt, 0u); + EXPECT_EQUAL(f1.get(expr_feature("rank"), 5), 1.0); + EXPECT_EQUAL(f1.track_cnt, 1u); + EXPECT_EQUAL(f1.get(expr_feature("rank"), 15), 2.0); + EXPECT_EQUAL(f1.track_cnt, 2u); +} + TEST_MAIN() { TEST_RUN_ALL(); } |