[Groonga-commit] groonga/grnxx at f8379cc [master] Enable a test for Table's bitmap.

Zurück zum Archiv-Index

susumu.yata null+****@clear*****
Tue Dec 16 10:40:33 JST 2014


susumu.yata	2014-11-05 20:40:18 +0900 (Wed, 05 Nov 2014)

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

  Message:
    Enable a test for Table's bitmap.

  Modified files:
    test/test_table.cpp

  Modified: test/test_table.cpp (+62 -73)
===================================================================
--- test/test_table.cpp    2014-11-05 20:28:57 +0900 (8cbb74d)
+++ test/test_table.cpp    2014-11-05 20:40:18 +0900 (2b682e2)
@@ -141,82 +141,71 @@ void test_rows() {
   assert(!table->test_row(grnxx::Int(3)));
 }
 
-//void test_bitmap() {
-//  constexpr int NUM_ROWS = 1 << 16;
+void test_bitmap() {
+  constexpr size_t NUM_ROWS = 1 << 16;
 
-//  grnxx::Error error;
+  // Create a database with the default options.
+  auto db = grnxx::open_db("");
 
-//  // Create a database with the default options.
-//  auto db = grnxx::open_db(&error, "");
-//  assert(db);
+  // Create a table named "Table".
+  auto table = db->create_table("Table");
 
-//  // Create a table named "Table".
-//  auto table = db->create_table(&error, "Table");
-//  assert(table);
+  // Insert rows.
+  for (size_t i = 0; i < NUM_ROWS; ++i) {
+    grnxx::Int row_id(i);
+    assert(table->insert_row() == row_id);
+  }
+  assert(table->num_rows() == NUM_ROWS);
+  assert(table->max_row_id() == grnxx::Int(NUM_ROWS - 1));
 
-//  // Create rows.
-//  for (int i = 0; i < NUM_ROWS; ++i) {
-//    grnxx::Int row_id;
-//    assert(table->insert_row(&error, grnxx::NULL_ROW_ID,
-//                             grnxx::Datum(), &row_id));
-//    assert(row_id == (i + 1));
-//  }
-//  assert(table->num_rows() == NUM_ROWS);
-//  assert(table->max_row_id() == NUM_ROWS);
-
-//  // Remove all rows.
-//  for (int i = 0; i < NUM_ROWS; ++i) {
-//    grnxx::Int row_id = i + 1;
-//    assert(table->remove_row(&error, row_id));
-//  }
-//  assert(table->num_rows() == 0);
-//  assert(table->max_row_id() == (grnxx::MIN_ROW_ID - 1));
-
-//  // Recreate rows.
-//  for (int i = 0; i < NUM_ROWS; ++i) {
-//    grnxx::Int row_id;
-//    assert(table->insert_row(&error, grnxx::NULL_ROW_ID,
-//                             grnxx::Datum(), &row_id));
-//    assert(row_id == (i + 1));
-//  }
-//  assert(table->num_rows() == NUM_ROWS);
-//  assert(table->max_row_id() == NUM_ROWS);
-
-//  // Remove rows with odd IDs.
-//  for (int i = 0; i < NUM_ROWS; i += 2) {
-//    grnxx::Int row_id = i + 1;
-//    assert(table->remove_row(&error, row_id));
-//  }
-//  assert(table->num_rows() == (NUM_ROWS / 2));
-//  assert(table->max_row_id() == NUM_ROWS);
-
-//  // Recreate rows.
-//  for (int i = 0; i < NUM_ROWS; i += 2) {
-//    grnxx::Int row_id;
-//    assert(table->insert_row(&error, grnxx::NULL_ROW_ID,
-//                             grnxx::Datum(), &row_id));
-//    assert(row_id == (i + 1));
-//  }
-//  assert(table->num_rows() == NUM_ROWS);
-//  assert(table->max_row_id() == NUM_ROWS);
-
-//  // Remove rows in reverse order.
-//  for (int i = 0; i < NUM_ROWS; ++i) {
-//    grnxx::Int row_id = NUM_ROWS - i;
-//    assert(table->remove_row(&error, row_id));
-//    assert(table->max_row_id() == (row_id - 1));
-//  }
-
-//  // Recreate rows.
-//  for (int i = 0; i < NUM_ROWS; ++i) {
-//    grnxx::Int row_id;
-//    assert(table->insert_row(&error, grnxx::NULL_ROW_ID,
-//                             grnxx::Datum(), &row_id));
-//    assert(row_id == (i + 1));
-//  }
-//  assert(table->num_rows() == NUM_ROWS);
-//  assert(table->max_row_id() == NUM_ROWS);
-//}
+  // Remove all rows.
+  for (size_t i = 0; i < NUM_ROWS; ++i) {
+    grnxx::Int row_id(i);
+    table->remove_row(row_id);
+  }
+  assert(table->num_rows() == 0);
+  assert(table->max_row_id().is_na());
+
+  // Insert rows again.
+  for (size_t i = 0; i < NUM_ROWS; ++i) {
+    grnxx::Int row_id(i);
+    assert(table->insert_row() == row_id);
+  }
+  assert(table->num_rows() == NUM_ROWS);
+  assert(table->max_row_id() == grnxx::Int(NUM_ROWS - 1));
+
+  // Remove rows with even IDs.
+  for (size_t i = 0; i < NUM_ROWS; i += 2) {
+    grnxx::Int row_id(i);
+    table->remove_row(row_id);
+  }
+  assert(table->num_rows() == (NUM_ROWS / 2));
+  assert(table->max_row_id() == grnxx::Int(NUM_ROWS - 1));
+
+  // Insert rows again.
+  for (size_t i = 0; i < NUM_ROWS; i += 2) {
+    grnxx::Int row_id(i);
+    assert(table->insert_row() == row_id);
+  }
+  assert(table->num_rows() == NUM_ROWS);
+  assert(table->max_row_id() == grnxx::Int(NUM_ROWS - 1));
+
+  // Remove rows in reverse order.
+  for (size_t i = 0; i < NUM_ROWS; ++i) {
+    grnxx::Int row_id(NUM_ROWS - i - 1);
+    assert(table->max_row_id() == row_id);
+    table->remove_row(row_id);
+  }
+  assert(table->max_row_id().is_na());
+
+  // Insert rows again.
+  for (size_t i = 0; i < NUM_ROWS; ++i) {
+    grnxx::Int row_id(i);
+    assert(table->insert_row() == row_id);
+  }
+  assert(table->num_rows() == NUM_ROWS);
+  assert(table->max_row_id() == grnxx::Int(NUM_ROWS - 1));
+}
 
 //void test_int_key() {
 //  // TODO: find_row() is not supported yet.
@@ -497,7 +486,7 @@ void test_cursor() {
 int main() {
   test_table();
   test_rows();
-//  test_bitmap();
+  test_bitmap();
 //  test_int_key();
 //  test_text_key();
   test_cursor();
-------------- next part --------------
HTML����������������������������...
Download 



More information about the Groonga-commit mailing list
Zurück zum Archiv-Index