susumu.yata
null+****@clear*****
Tue Mar 4 18:24:15 JST 2014
susumu.yata 2014-03-04 18:24:15 +0900 (Tue, 04 Mar 2014) New Revision: 852a1a2064e2a524167e7ff631ea1e4df651045a https://github.com/groonga/grnxx/commit/852a1a2064e2a524167e7ff631ea1e4df651045a Message: Add a test to find a division failure. Modified files: test/test_grnxx.cpp Modified: test/test_grnxx.cpp (+27 -1) =================================================================== --- test/test_grnxx.cpp 2014-03-04 18:05:08 +0900 (290c8dd) +++ test/test_grnxx.cpp 2014-03-04 18:24:15 +0900 (439bf15) @@ -278,6 +278,7 @@ void test_calc() { assert(calc); std::vector<grnxx::RowID> row_ids(all_row_ids); grnxx::Int64 num_row_ids = calc->filter(&*row_ids.begin(), row_ids.size()); + assert(num_row_ids != 0); grnxx::Int64 count = 0; for (grnxx::Int64 i = 0; i < 1000; ++i) { grnxx::RowID row_id = grnxx::MIN_ROW_ID + i; @@ -295,6 +296,7 @@ void test_calc() { assert(calc); std::vector<grnxx::RowID> row_ids(all_row_ids); grnxx::Int64 num_row_ids = calc->filter(&*row_ids.begin(), row_ids.size()); + assert(num_row_ids != 0); grnxx::Int64 count = 0; for (grnxx::Int64 i = 0; i < 1000; ++i) { grnxx::RowID row_id = grnxx::MIN_ROW_ID + i; @@ -313,6 +315,7 @@ void test_calc() { assert(calc); std::vector<grnxx::RowID> row_ids(all_row_ids); grnxx::Int64 num_row_ids = calc->filter(&*row_ids.begin(), row_ids.size()); + assert(num_row_ids != 0); grnxx::Int64 count = 0; for (grnxx::Int64 i = 0; i < 1000; ++i) { grnxx::RowID row_id = grnxx::MIN_ROW_ID + i; @@ -331,6 +334,7 @@ void test_calc() { assert(calc); std::vector<grnxx::RowID> row_ids(all_row_ids); grnxx::Int64 num_row_ids = calc->filter(&*row_ids.begin(), row_ids.size()); + assert(num_row_ids != 0); grnxx::Int64 count = 0; for (grnxx::Int64 i = 0; i < 1000; ++i) { grnxx::RowID row_id = grnxx::MIN_ROW_ID + i; @@ -350,6 +354,7 @@ void test_calc() { assert(calc); std::vector<grnxx::RowID> row_ids(all_row_ids); grnxx::Int64 num_row_ids = calc->filter(&*row_ids.begin(), row_ids.size()); + assert(num_row_ids != 0); grnxx::Int64 count = 0; for (grnxx::Int64 i = 0; i < 1000; ++i) { grnxx::RowID row_id = grnxx::MIN_ROW_ID + i; @@ -361,12 +366,33 @@ void test_calc() { assert(count == num_row_ids); } + // Integer の演算結果で絞り込む. + { + std::unique_ptr<grnxx::Calc> calc( + table->create_calc("(Integer == 0) || (100 / Integer) > 10")); + assert(calc); + std::vector<grnxx::RowID> row_ids(all_row_ids); + grnxx::Int64 num_row_ids = calc->filter(&*row_ids.begin(), row_ids.size()); + assert(num_row_ids != 0); + grnxx::Int64 count = 0; + for (grnxx::Int64 i = 0; i < 1000; ++i) { + grnxx::RowID row_id = grnxx::MIN_ROW_ID + i; + if ((integer_data[i] == 0) || ((100 / integer_data[i]) > 10)) { + assert(row_ids[count] == row_id); + assert(++count <= num_row_ids); + } + } + assert(count == num_row_ids); + } + // Float の演算結果で絞り込む. { - std::unique_ptr<grnxx::Calc> calc(table->create_calc("(Float + 1.0) < 1.5")); + std::unique_ptr<grnxx::Calc> calc( + table->create_calc("(Float + 1.0) < 1.5")); assert(calc); std::vector<grnxx::RowID> row_ids(all_row_ids); grnxx::Int64 num_row_ids = calc->filter(&*row_ids.begin(), row_ids.size()); + assert(num_row_ids != 0); grnxx::Int64 count = 0; for (grnxx::Int64 i = 0; i < 1000; ++i) { grnxx::RowID row_id = grnxx::MIN_ROW_ID + i; -------------- next part -------------- HTML����������������������������...ダウンロード