susumu.yata
null+****@clear*****
Wed Nov 26 17:23:50 JST 2014
susumu.yata 2014-11-26 17:23:50 +0900 (Wed, 26 Nov 2014) New Revision: 7f5951e0bf4fc8c43eb221655f19752a1f0064cd https://github.com/groonga/grnxx/commit/7f5951e0bf4fc8c43eb221655f19752a1f0064cd Message: Add a test for subexpression returning Vector<Text>. Modified files: test/test_expression.cpp Modified: test/test_expression.cpp (+24 -0) =================================================================== --- test/test_expression.cpp 2014-11-26 17:23:32 +0900 (2539007) +++ test/test_expression.cpp 2014-11-26 17:23:50 +0900 (ff8eb9b) @@ -2720,6 +2720,30 @@ void test_subexpression() { assert(int_vector_results[i][j].match(int_value)); } } + + // Test an expression (RefVector.Text). + builder->push_column("RefVector"); + builder->begin_subexpression(); + builder->push_column("Text"); + builder->end_subexpression(); + expression = builder->release(); + + records = create_input_records(); + + grnxx::Array<grnxx::TextVector> text_vector_results; + expression->evaluate(records, &text_vector_results); + assert(text_vector_results.size() == test.table->num_rows()); + for (size_t i = 0; i < text_vector_results.size(); ++i) { + size_t row_id = records[i].row_id.raw(); + const auto ref_vector_value = test.ref_vector_values[row_id]; + assert(text_vector_results[i].size().match(ref_vector_value.size())); + size_t value_size = ref_vector_value.raw_size(); + for (size_t j = 0; j < value_size; ++j) { + grnxx::Int ref_value = ref_vector_value[j]; + const auto text_value = test.text_values[ref_value.raw()]; + assert(text_vector_results[i][j].match(text_value)); + } + } } void test_sequential_filter() { -------------- next part -------------- HTML����������������������������...Download