[Groonga-commit] groonga/grnxx at 11625ff [new_data_types] Enable a test for reference columns.

Back to archive index

susumu.yata null+****@clear*****
Sat Nov 15 02:30:14 JST 2014


susumu.yata	2014-11-15 02:30:14 +0900 (Sat, 15 Nov 2014)

  New Revision: 11625ff3b0443895d4cdfd7d615ab0766479159b
  https://github.com/groonga/grnxx/commit/11625ff3b0443895d4cdfd7d615ab0766479159b

  Message:
    Enable a test for reference columns.

  Modified files:
    test/test_expression.cpp

  Modified: test/test_expression.cpp (+27 -31)
===================================================================
--- test/test_expression.cpp    2014-11-14 18:41:03 +0900 (8e6c2b0)
+++ test/test_expression.cpp    2014-11-15 02:30:14 +0900 (0af223a)
@@ -61,8 +61,8 @@ struct {
 //  grnxx::Array<grnxx::TextVector> text_vector2_values;
 //  grnxx::Array<grnxx::Array<grnxx::Text>> text_vector_bodies;
 //  grnxx::Array<grnxx::Array<grnxx::Text>> text_vector2_bodies;
-//  grnxx::Array<grnxx::Int> ref_values;
-//  grnxx::Array<grnxx::Int> ref2_values;
+  grnxx::Array<grnxx::Int> ref_values;
+  grnxx::Array<grnxx::Int> ref2_values;
 //  grnxx::Array<grnxx::IntVector> ref_vector_values;
 //  grnxx::Array<grnxx::IntVector> ref_vector2_values;
 //  grnxx::Array<grnxx::Array<grnxx::Int>> ref_vector_bodies;
@@ -148,15 +148,11 @@ void init_test() try {
 //  assert(text_vector_column);
 //  assert(text_vector2_column);
 
-//  data_type = grnxx::INT_DATA;
-//  grnxx::ColumnOptions options;
-//  options.ref_table_name = "Table";
-//  auto ref_column =
-//      test.table->create_column(&error, "Ref", data_type, options);
-//  auto ref2_column =
-//      test.table->create_column(&error, "Ref2", data_type, options);
-//  assert(ref_column);
-//  assert(ref2_column);
+  data_type = grnxx::INT_DATA;
+  grnxx::ColumnOptions options;
+  options.reference_table_name = "Table";
+  auto ref_column = test.table->create_column("Ref", data_type, options);
+  auto ref2_column = test.table->create_column("Ref2", data_type, options);
 
 //  data_type = grnxx::INT_VECTOR_DATA;
 //  auto ref_vector_column =
@@ -211,8 +207,8 @@ void init_test() try {
 //  assert(test.text_vector2_values.resize(&error, NUM_ROWS + 1));
 //  assert(test.text_vector_bodies.resize(&error, NUM_ROWS + 1));
 //  assert(test.text_vector2_bodies.resize(&error, NUM_ROWS + 1));
-//  assert(test.ref_values.resize(&error, NUM_ROWS + 1));
-//  assert(test.ref2_values.resize(&error, NUM_ROWS + 1));
+  test.ref_values.resize(NUM_ROWS + 1);
+  test.ref2_values.resize(NUM_ROWS + 1);
 //  assert(test.ref_vector_values.resize(&error, NUM_ROWS + 1));
 //  assert(test.ref_vector2_values.resize(&error, NUM_ROWS + 1));
 //  assert(test.ref_vector_bodies.resize(&error, NUM_ROWS + 1));
@@ -315,8 +311,8 @@ void init_test() try {
 //    test.text_vector2_values.set(
 //        i, grnxx::TextVector(test.text_vector2_bodies[i].data(), size));
 
-//    test.ref_values.set(i, 1 + (mersenne_twister() % NUM_ROWS));
-//    test.ref2_values.set(i, 1 + (mersenne_twister() % NUM_ROWS));
+    test.ref_values.set(i, grnxx::Int(mersenne_twister() % NUM_ROWS));
+    test.ref2_values.set(i, grnxx::Int(mersenne_twister() % NUM_ROWS));
 
 //    size = mersenne_twister() % (MAX_SIZE + 1);
 //    assert(test.ref_vector_bodies[i].resize(&error, size));
@@ -371,12 +367,13 @@ void init_test() try {
 //                                    test.text_vector2_values[i]));
   }
 
-//  for (grnxx::Int i = 1; i <= NUM_ROWS; ++i) {
-//    assert(ref_column->set(&error, i, test.ref_values[i]));
-//    assert(ref2_column->set(&error, i, test.ref2_values[i]));
+  for (size_t i = 0; i < NUM_ROWS; ++i) {
+    grnxx::Int row_id(i);
+    ref_column->set(row_id, test.ref_values[i]);
+    ref2_column->set(row_id, test.ref2_values[i]);
 //    assert(ref_vector_column->set(&error, i, test.ref_vector_values[i]));
 //    assert(ref_vector2_column->set(&error, i, test.ref_vector2_values[i]));
-//  }
+  }
 } catch (const char *msg) {
   std::cout << msg << std::endl;
   throw;
@@ -770,20 +767,19 @@ void test_column() {
 //    assert(text_vector_results[i] == test.text_vector_values[row_id]);
 //  }
 
-//  // Test an expression (Ref).
-//  assert(builder->push_column(&error, "Ref"));
-//  expression = builder->release(&error);
-//  assert(expression);
+  // Test an expression (Ref).
+  builder->push_column("Ref");
+  expression = builder->release();
 
-//  records = create_input_records();
+  records = create_input_records();
 
-//  grnxx::Array<grnxx::Int> ref_results;
-//  assert(expression->evaluate(&error, records, &ref_results));
-//  assert(ref_results.size() == test.table->num_rows());
-//  for (grnxx::Int i = 0; i < ref_results.size(); ++i) {
-//    grnxx::Int row_id = records.get_row_id(i);
-//    assert(ref_results[i] == test.ref_values[row_id]);
-//  }
+  grnxx::Array<grnxx::Int> ref_results;
+  expression->evaluate(records, &ref_results);
+  assert(ref_results.size() == test.table->num_rows());
+  for (size_t i = 0; i < ref_results.size(); ++i) {
+    size_t row_id = records[i].row_id.value();
+    assert(ref_results[i].value() == test.ref_values[row_id].value());
+  }
 
 //  // Test an expression (RefVector).
 //  assert(builder->push_column(&error, "RefVector"));
-------------- next part --------------
HTML����������������������������...
下載 



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