Skip to content

Commit

Permalink
Add a test for reverse sorting.
Browse files Browse the repository at this point in the history
  • Loading branch information
s-yata committed Jul 30, 2014
1 parent 4566c35 commit 0c93c19
Showing 1 changed file with 32 additions and 0 deletions.
32 changes: 32 additions & 0 deletions test/test_grnxx.cpp
Expand Up @@ -827,6 +827,38 @@ void test_sorter() {
assert(lhs_id < rhs_id);
}
}

assert(expression_builder->push_column(&error, "IntColumn"));
expression = expression_builder->release(&error);
assert(expression);
assert(order_set_builder->append(&error, std::move(expression),
grnxx::REVERSE_ORDER));

assert(expression_builder->push_column(&error, "_id"));
expression = expression_builder->release(&error);
assert(expression);
assert(order_set_builder->append(&error, std::move(expression),
grnxx::REVERSE_ORDER));

order_set = order_set_builder->release(&error);
assert(order_set);

sorter = grnxx::Sorter::create(&error, std::move(order_set));
assert(sorter);

assert(sorter->sort(&error, &record_set));
assert(record_set.size() == static_cast<grnxx::Int>(values.size()));

for (grnxx::Int i = 1; i < record_set.size(); ++i) {
grnxx::Int lhs_id = record_set.get_row_id(i - 1) - 1;
grnxx::Int rhs_id = record_set.get_row_id(i) - 1;
grnxx::Int lhs_value = values[lhs_id];
grnxx::Int rhs_value = values[rhs_id];
assert(lhs_value >= rhs_value);
if (lhs_value == rhs_value) {
assert(lhs_id > rhs_id);
}
}
}

} // namespace
Expand Down

0 comments on commit 0c93c19

Please sign in to comment.