From 75b41fba38de8726531a057ef38828f7008e9d12 Mon Sep 17 00:00:00 2001 From: Harpreet Sangar Date: Tue, 21 Mar 2023 13:22:04 +0530 Subject: [PATCH] Add test case for complex filter. --- test/filter_test.cpp | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/test/filter_test.cpp b/test/filter_test.cpp index 4a50ad63..7c1a81ad 100644 --- a/test/filter_test.cpp +++ b/test/filter_test.cpp @@ -573,5 +573,26 @@ TEST_F(FilterTest, FilterTreeIterator) { ASSERT_FALSE(iter_or_test.valid()); ASSERT_TRUE(iter_op.ok()); + delete filter_tree_root; + filter_tree_root = nullptr; + filter_op = filter::parse_filter_query("name: James || (tags: gold && tags: silver)", coll->get_schema(), store, doc_id_prefix, + filter_tree_root); + ASSERT_TRUE(filter_op.ok()); + + auto iter_skip_complex_filter_test = filter_result_iterator_t(coll->get_name(), coll->_get_index(), filter_tree_root, iter_op); + + ASSERT_TRUE(iter_skip_complex_filter_test.valid()); + iter_skip_complex_filter_test.skip_to(4); + + expected = {4, 5}; + for (auto const& i : expected) { + ASSERT_TRUE(iter_skip_complex_filter_test.valid()); + ASSERT_EQ(i, iter_skip_complex_filter_test.doc); + iter_skip_complex_filter_test.next(); + } + + ASSERT_FALSE(iter_skip_complex_filter_test.valid()); + ASSERT_TRUE(iter_op.ok()); + delete filter_tree_root; } \ No newline at end of file