[Groonga-commit] groonga/grnxx at 4c97bec [master] Refactor tests for Merger. (#67)

Back to archive index

susumu.yata null+****@clear*****
Wed Sep 24 11:37:42 JST 2014


susumu.yata	2014-09-24 11:37:42 +0900 (Wed, 24 Sep 2014)

  New Revision: 4c97bec86868e16bea3b3e20f41091b26111841c
  https://github.com/groonga/grnxx/commit/4c97bec86868e16bea3b3e20f41091b26111841c

  Message:
    Refactor tests for Merger. (#67)

  Modified files:
    test/test_merger.cpp

  Modified: test/test_merger.cpp (+51 -169)
===================================================================
--- test/test_merger.cpp    2014-09-24 11:22:46 +0900 (acc460e)
+++ test/test_merger.cpp    2014-09-24 11:37:42 +0900 (b58de33)
@@ -89,36 +89,58 @@ void init_test() {
   }
 }
 
-void test_and() {
+grnxx::Array<grnxx::Record> create_input_records(const char *bool_name,
+                                                 const char *float_name) {
   grnxx::Error error;
 
-  // Create cursors to read all the records.
+  // Create a cursor to read records.
   auto cursor = test.table->create_cursor(&error);
   assert(cursor);
-  auto cursor2 = test.table->create_cursor(&error);
-  assert(cursor2);
 
-  // Create expressions to read values.
+  // Read all the records.
+  grnxx::Array<grnxx::Record> records;
+  assert(cursor->read_all(&error, &records) == test.table->num_rows());
+
+  // Create an object to create expressions.
   auto expression_builder =
       grnxx::ExpressionBuilder::create(&error, test.table);
   assert(expression_builder);
-  assert(expression_builder->push_column(&error, "Bool"));
+
+  // Apply a filter to the records.
+  assert(expression_builder->push_column(&error, bool_name));
   auto expression = expression_builder->release(&error);
   assert(expression);
-  assert(expression_builder->push_column(&error, "Bool2"));
-  auto expression2 = expression_builder->release(&error);
-  assert(expression2);
+  assert(expression->filter(&error, &records));
+
+  // Apply an adjuster to the records.
+  assert(expression_builder->push_column(&error, float_name));
+  expression = expression_builder->release(&error);
+  assert(expression);
+  assert(expression->adjust(&error, &records));
+
+  return records;
+}
+
+grnxx::Array<grnxx::Record> create_input_records_1() {
+  return create_input_records("Bool", "Float");
+}
+
+grnxx::Array<grnxx::Record> create_input_records_2() {
+  return create_input_records("Bool2", "Float2");
+}
+
+void test_and() {
+  grnxx::Error error;
 
   // Create input records.
-  grnxx::Array<grnxx::Record> records;
-  assert(cursor->read_all(&error, &records) == test.table->num_rows());
-  assert(expression->filter(&error, &records));
-  grnxx::Array<grnxx::Record> records2;
-  assert(cursor2->read_all(&error, &records2) == test.table->num_rows());
-  assert(expression2->filter(&error, &records2));
+  auto records = create_input_records_1();
+  auto records2 = create_input_records_2();
 
   // Merge records.
-  auto merger = grnxx::Merger::create(&error);
+  grnxx::MergerOptions options;
+  options.type = grnxx::AND_MERGER;
+  options.operator_type = grnxx::PLUS_MERGER_OPERATOR;
+  auto merger = grnxx::Merger::create(&error, options);
   assert(merger);
   grnxx::Array<grnxx::Record> result_records;
   assert(merger->merge(&error, &records, &records2, &result_records));
@@ -141,30 +163,9 @@ void test_and() {
 void test_or() {
   grnxx::Error error;
 
-  // Create cursors to read all the records.
-  auto cursor = test.table->create_cursor(&error);
-  assert(cursor);
-  auto cursor2 = test.table->create_cursor(&error);
-  assert(cursor2);
-
-  // Create expressions to read values.
-  auto expression_builder =
-      grnxx::ExpressionBuilder::create(&error, test.table);
-  assert(expression_builder);
-  assert(expression_builder->push_column(&error, "Bool"));
-  auto expression = expression_builder->release(&error);
-  assert(expression);
-  assert(expression_builder->push_column(&error, "Bool2"));
-  auto expression2 = expression_builder->release(&error);
-  assert(expression2);
-
   // Create input records.
-  grnxx::Array<grnxx::Record> records;
-  assert(cursor->read_all(&error, &records) == test.table->num_rows());
-  assert(expression->filter(&error, &records));
-  grnxx::Array<grnxx::Record> records2;
-  assert(cursor2->read_all(&error, &records2) == test.table->num_rows());
-  assert(expression2->filter(&error, &records2));
+  auto records = create_input_records_1();
+  auto records2 = create_input_records_2();
 
   // Merge records.
   grnxx::MergerOptions options;
@@ -192,30 +193,9 @@ void test_or() {
 void test_xor() {
   grnxx::Error error;
 
-  // Create cursors to read all the records.
-  auto cursor = test.table->create_cursor(&error);
-  assert(cursor);
-  auto cursor2 = test.table->create_cursor(&error);
-  assert(cursor2);
-
-  // Create expressions to read values.
-  auto expression_builder =
-      grnxx::ExpressionBuilder::create(&error, test.table);
-  assert(expression_builder);
-  assert(expression_builder->push_column(&error, "Bool"));
-  auto expression = expression_builder->release(&error);
-  assert(expression);
-  assert(expression_builder->push_column(&error, "Bool2"));
-  auto expression2 = expression_builder->release(&error);
-  assert(expression2);
-
   // Create input records.
-  grnxx::Array<grnxx::Record> records;
-  assert(cursor->read_all(&error, &records) == test.table->num_rows());
-  assert(expression->filter(&error, &records));
-  grnxx::Array<grnxx::Record> records2;
-  assert(cursor2->read_all(&error, &records2) == test.table->num_rows());
-  assert(expression2->filter(&error, &records2));
+  auto records = create_input_records_1();
+  auto records2 = create_input_records_2();
 
   // Merge records.
   grnxx::MergerOptions options;
@@ -243,30 +223,9 @@ void test_xor() {
 void test_minus() {
   grnxx::Error error;
 
-  // Create cursors to read all the records.
-  auto cursor = test.table->create_cursor(&error);
-  assert(cursor);
-  auto cursor2 = test.table->create_cursor(&error);
-  assert(cursor2);
-
-  // Create expressions to read values.
-  auto expression_builder =
-      grnxx::ExpressionBuilder::create(&error, test.table);
-  assert(expression_builder);
-  assert(expression_builder->push_column(&error, "Bool"));
-  auto expression = expression_builder->release(&error);
-  assert(expression);
-  assert(expression_builder->push_column(&error, "Bool2"));
-  auto expression2 = expression_builder->release(&error);
-  assert(expression2);
-
   // Create input records.
-  grnxx::Array<grnxx::Record> records;
-  assert(cursor->read_all(&error, &records) == test.table->num_rows());
-  assert(expression->filter(&error, &records));
-  grnxx::Array<grnxx::Record> records2;
-  assert(cursor2->read_all(&error, &records2) == test.table->num_rows());
-  assert(expression2->filter(&error, &records2));
+  auto records = create_input_records_1();
+  auto records2 = create_input_records_2();
 
   // Merge records.
   grnxx::MergerOptions options;
@@ -294,30 +253,9 @@ void test_minus() {
 void test_lhs() {
   grnxx::Error error;
 
-  // Create cursors to read all the records.
-  auto cursor = test.table->create_cursor(&error);
-  assert(cursor);
-  auto cursor2 = test.table->create_cursor(&error);
-  assert(cursor2);
-
-  // Create expressions to read values.
-  auto expression_builder =
-      grnxx::ExpressionBuilder::create(&error, test.table);
-  assert(expression_builder);
-  assert(expression_builder->push_column(&error, "Bool"));
-  auto expression = expression_builder->release(&error);
-  assert(expression);
-  assert(expression_builder->push_column(&error, "Bool2"));
-  auto expression2 = expression_builder->release(&error);
-  assert(expression2);
-
   // Create input records.
-  grnxx::Array<grnxx::Record> records;
-  assert(cursor->read_all(&error, &records) == test.table->num_rows());
-  assert(expression->filter(&error, &records));
-  grnxx::Array<grnxx::Record> records2;
-  assert(cursor2->read_all(&error, &records2) == test.table->num_rows());
-  assert(expression2->filter(&error, &records2));
+  auto records = create_input_records_1();
+  auto records2 = create_input_records_2();
 
   // Merge records.
   grnxx::MergerOptions options;
@@ -345,30 +283,9 @@ void test_lhs() {
 void test_rhs() {
   grnxx::Error error;
 
-  // Create cursors to read all the records.
-  auto cursor = test.table->create_cursor(&error);
-  assert(cursor);
-  auto cursor2 = test.table->create_cursor(&error);
-  assert(cursor2);
-
-  // Create expressions to read values.
-  auto expression_builder =
-      grnxx::ExpressionBuilder::create(&error, test.table);
-  assert(expression_builder);
-  assert(expression_builder->push_column(&error, "Bool"));
-  auto expression = expression_builder->release(&error);
-  assert(expression);
-  assert(expression_builder->push_column(&error, "Bool2"));
-  auto expression2 = expression_builder->release(&error);
-  assert(expression2);
-
   // Create input records.
-  grnxx::Array<grnxx::Record> records;
-  assert(cursor->read_all(&error, &records) == test.table->num_rows());
-  assert(expression->filter(&error, &records));
-  grnxx::Array<grnxx::Record> records2;
-  assert(cursor2->read_all(&error, &records2) == test.table->num_rows());
-  assert(expression2->filter(&error, &records2));
+  auto records = create_input_records_1();
+  auto records2 = create_input_records_2();
 
   // Merge records.
   grnxx::MergerOptions options;
@@ -396,44 +313,9 @@ void test_rhs() {
 void test_plus() {
   grnxx::Error error;
 
-  // Create the first input records.
-  auto cursor = test.table->create_cursor(&error);
-  assert(cursor);
-
-  auto expression_builder =
-      grnxx::ExpressionBuilder::create(&error, test.table);
-  assert(expression_builder);
-  assert(expression_builder->push_column(&error, "Bool"));
-  auto expression = expression_builder->release(&error);
-  assert(expression);
-
-  grnxx::Array<grnxx::Record> records;
-  assert(cursor->read_all(&error, &records) == test.table->num_rows());
-  assert(expression->filter(&error, &records));
-
-  assert(expression_builder->push_column(&error, "Float"));
-  expression = expression_builder->release(&error);
-  assert(expression);
-
-  assert(expression->adjust(&error, &records));
-
-  // Create the second input records.
-  cursor = test.table->create_cursor(&error);
-  assert(cursor);
-
-  assert(expression_builder->push_column(&error, "Bool2"));
-  expression = expression_builder->release(&error);
-  assert(expression);
-
-  grnxx::Array<grnxx::Record> records2;
-  assert(cursor->read_all(&error, &records2) == test.table->num_rows());
-  assert(expression->filter(&error, &records2));
-
-  assert(expression_builder->push_column(&error, "Float2"));
-  expression = expression_builder->release(&error);
-  assert(expression);
-
-  assert(expression->adjust(&error, &records2));
+  // Create input records.
+  auto records = create_input_records_1();
+  auto records2 = create_input_records_2();
 
   // Merge records.
   grnxx::MergerOptions options;
-------------- next part --------------
HTML����������������������������...
Download 



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