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