Add filter_result_iterator_t::init_status().

This commit is contained in:
Harpreet Sangar 2023-03-22 13:23:40 +05:30
parent 3e2a814b0f
commit 9ef9be516b

View File

@ -529,101 +529,5 @@ TEST_F(FilterTest, FilterTreeIterator) {
ASSERT_TRUE(iter_add_phrase_ids_test->is_valid);
ASSERT_EQ(6, iter_add_phrase_ids_test->seq_id);
delete filter_tree_root;
filter_tree_root = nullptr;
filter_op = filter::parse_filter_query("name: jeremy && tags: fine platinum", coll->get_schema(), store, doc_id_prefix,
filter_tree_root);
ASSERT_TRUE(filter_op.ok());
auto iter_and_test = filter_result_iterator_t(coll->get_name(), coll->_get_index(), filter_tree_root, iter_op);
ASSERT_TRUE(iter_and_test.valid());
ASSERT_EQ(1, iter_and_test.doc);
iter_and_test.next();
ASSERT_FALSE(iter_and_test.valid());
ASSERT_TRUE(iter_op.ok());
delete filter_tree_root;
filter_tree_root = nullptr;
filter_op = filter::parse_filter_query("name: James || tags: bronze", coll->get_schema(), store, doc_id_prefix,
filter_tree_root);
ASSERT_TRUE(filter_op.ok());
auto doc =
R"({
"name": "James Rowdy",
"age": 36,
"years": [2005, 2022],
"rating": 6.03,
"tags": ["copper"]
})"_json;
auto add_op = coll->add(doc.dump());
ASSERT_TRUE(add_op.ok());
auto iter_or_test = filter_result_iterator_t(coll->get_name(), coll->_get_index(), filter_tree_root, iter_op);
expected = {2, 4, 5};
for (auto const& i : expected) {
ASSERT_TRUE(iter_or_test.valid());
ASSERT_EQ(i, iter_or_test.doc);
iter_or_test.next();
}
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;
filter_tree_root = nullptr;
filter_op = filter::parse_filter_query("name: James || (tags: gold && tags: [silver, bronze])", coll->get_schema(), store, doc_id_prefix,
filter_tree_root);
ASSERT_TRUE(filter_op.ok());
auto iter_validate_ids_test = filter_result_iterator_t(coll->get_name(), coll->_get_index(), filter_tree_root, iter_op);
expected = {0, 2, 4, 5};
for (auto const& i : expected) {
ASSERT_TRUE(iter_validate_ids_test.valid(i));
}
ASSERT_TRUE(iter_op.ok());
delete filter_tree_root;
filter_tree_root = nullptr;
filter_op = filter::parse_filter_query("name: James || tags: != gold", coll->get_schema(), store, doc_id_prefix,
filter_tree_root);
ASSERT_TRUE(filter_op.ok());
auto iter_validate_ids_not_equals_filter_test = filter_result_iterator_t(coll->get_name(), coll->_get_index(),
filter_tree_root, iter_op);
expected = {1, 3, 5};
for (auto const& i : expected) {
ASSERT_TRUE(iter_validate_ids_not_equals_filter_test.valid(i));
}
ASSERT_TRUE(iter_op.ok());
delete filter_tree_root;
}