[Groonga-commit] groonga/grnxx at 852a1a2 [master] Add a test to find a division failure.

アーカイブの一覧に戻る

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����������������������������...
ダウンロード 



More information about the Groonga-commit mailing list
アーカイブの一覧に戻る