[Groonga-commit] groonga/grnxx at b850bc3 [master] Add tests for Vector<Int/Float> columns.

Back to archive index

susumu.yata null+****@clear*****
Thu Aug 28 13:55:09 JST 2014


susumu.yata	2014-08-28 13:55:09 +0900 (Thu, 28 Aug 2014)

  New Revision: b850bc3be9dff6e8b4d77557680008a165a7829f
  https://github.com/groonga/grnxx/commit/b850bc3be9dff6e8b4d77557680008a165a7829f

  Message:
    Add tests for Vector<Int/Float> columns.

  Modified files:
    test/test_column.cpp

  Modified: test/test_column.cpp (+53 -7)
===================================================================
--- test/test_column.cpp    2014-08-28 13:49:21 +0900 (862ea70)
+++ test/test_column.cpp    2014-08-28 13:55:09 +0900 (d84b667)
@@ -85,17 +85,39 @@ void test_column() {
   assert(!text_column->has_key_attribute());
   assert(text_column->num_indexes() == 0);
 
-  // Create a column named "VectorBoolColumn".
+  // Create a column named "BoolVectorColumn".
   // The column stores Text values.
-  auto bool_vector_column = table->create_column(&error, "VectorBoolColumn",
+  auto bool_vector_column = table->create_column(&error, "BoolVectorColumn",
                                                  grnxx::BOOL_VECTOR_DATA);
   assert(bool_vector_column);
   assert(bool_vector_column->table() == table);
-  assert(bool_vector_column->name() == "VectorBoolColumn");
+  assert(bool_vector_column->name() == "BoolVectorColumn");
   assert(bool_vector_column->data_type() == grnxx::BOOL_VECTOR_DATA);
   assert(!bool_vector_column->has_key_attribute());
   assert(bool_vector_column->num_indexes() == 0);
 
+  // Create a column named "IntVectorColumn".
+  // The column stores Text values.
+  auto int_vector_column = table->create_column(&error, "IntVectorColumn",
+                                                 grnxx::INT_VECTOR_DATA);
+  assert(int_vector_column);
+  assert(int_vector_column->table() == table);
+  assert(int_vector_column->name() == "IntVectorColumn");
+  assert(int_vector_column->data_type() == grnxx::INT_VECTOR_DATA);
+  assert(!int_vector_column->has_key_attribute());
+  assert(int_vector_column->num_indexes() == 0);
+
+  // Create a column named "FloatVectorColumn".
+  // The column stores Text values.
+  auto float_vector_column = table->create_column(&error, "FloatVectorColumn",
+                                                  grnxx::FLOAT_VECTOR_DATA);
+  assert(float_vector_column);
+  assert(float_vector_column->table() == table);
+  assert(float_vector_column->name() == "FloatVectorColumn");
+  assert(float_vector_column->data_type() == grnxx::FLOAT_VECTOR_DATA);
+  assert(!float_vector_column->has_key_attribute());
+  assert(float_vector_column->num_indexes() == 0);
+
   grnxx::Datum datum;
 
   // Check that the default values are stored.
@@ -117,7 +139,15 @@ void test_column() {
 
   assert(bool_vector_column->get(&error, 1, &datum));
   assert(datum.type() == grnxx::BOOL_VECTOR_DATA);
-  assert(datum.force_bool_vector() == grnxx::Vector<grnxx::Bool>{});
+  assert(datum.force_bool_vector() == grnxx::BoolVector{});
+
+  assert(int_vector_column->get(&error, 1, &datum));
+  assert(datum.type() == grnxx::INT_VECTOR_DATA);
+  assert(datum.force_int_vector() == grnxx::IntVector(nullptr, 0));
+
+  assert(float_vector_column->get(&error, 1, &datum));
+  assert(datum.type() == grnxx::FLOAT_VECTOR_DATA);
+  assert(datum.force_float_vector() == grnxx::FloatVector(nullptr, 0));
 
   // Set and get values.
   assert(bool_column->set(&error, 1, grnxx::Bool(true)));
@@ -125,7 +155,13 @@ void test_column() {
   assert(float_column->set(&error, 1, grnxx::Float(0.25)));
   assert(text_column->set(&error, 1, grnxx::Text("Hello, world!")));
   assert(bool_vector_column->set(&error, 1,
-         grnxx::Vector<grnxx::Bool>{ true, false, true }));
+                                 grnxx::BoolVector{ true, false, true }));
+  grnxx::Int int_vector_value[] = { 123, -456, 789 };
+  assert(int_vector_column->set(&error, 1,
+                                grnxx::IntVector(int_vector_value, 3)));
+  grnxx::Float float_vector_value[] = { 1.23, -4.56, 7.89 };
+  assert(float_vector_column->set(&error, 1,
+                                  grnxx::FloatVector(float_vector_value, 3)));
 
   assert(bool_column->get(&error, 1, &datum));
   assert(datum.type() == grnxx::BOOL_DATA);
@@ -145,8 +181,18 @@ void test_column() {
 
   assert(bool_vector_column->get(&error, 1, &datum));
   assert(datum.type() == grnxx::BOOL_VECTOR_DATA);
-  assert((datum.force_bool_vector() ==
-          grnxx::Vector<grnxx::Bool>{ true, false, true }));
+  assert(datum.force_bool_vector() ==
+         grnxx::BoolVector({ true, false, true }));
+
+  assert(int_vector_column->get(&error, 1, &datum));
+  assert(datum.type() == grnxx::INT_VECTOR_DATA);
+  assert(datum.force_int_vector() ==
+         grnxx::IntVector(int_vector_value, 3));
+
+  assert(float_vector_column->get(&error, 1, &datum));
+  assert(datum.type() == grnxx::FLOAT_VECTOR_DATA);
+  assert(datum.force_float_vector() ==
+         grnxx::FloatVector(float_vector_value, 3));
 }
 
 int main() {
-------------- next part --------------
HTML����������������������������...
Descargar 



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