[Groonga-commit] groonga/grnxx at 0c93c19 [master] Add a test for reverse sorting.

Back to archive index

susumu.yata null+****@clear*****
Wed Jul 30 13:13:31 JST 2014


susumu.yata	2014-07-30 13:13:31 +0900 (Wed, 30 Jul 2014)

  New Revision: 0c93c192a079439ceaae38427d0fbd28effe8c1c
  https://github.com/groonga/grnxx/commit/0c93c192a079439ceaae38427d0fbd28effe8c1c

  Message:
    Add a test for reverse sorting.

  Modified files:
    test/test_grnxx.cpp

  Modified: test/test_grnxx.cpp (+32 -0)
===================================================================
--- test/test_grnxx.cpp    2014-07-30 13:09:48 +0900 (c9ef0c4)
+++ test/test_grnxx.cpp    2014-07-30 13:13:31 +0900 (013d0d4)
@@ -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
-------------- next part --------------
HTML����������������������������...
Download 



More information about the Groonga-commit mailing list
Back to archive index