Skip to content

Commit

Permalink
Enable a test for Int key.
Browse files Browse the repository at this point in the history
  • Loading branch information
s-yata committed Nov 25, 2014
1 parent f283ede commit 37401ea
Showing 1 changed file with 57 additions and 68 deletions.
125 changes: 57 additions & 68 deletions test/test_table.cpp
Expand Up @@ -207,76 +207,65 @@ void test_bitmap() {
assert(table->max_row_id().value() == (NUM_ROWS - 1));
}

//void test_int_key() {
// // TODO: find_row() is not supported yet.
// grnxx::Error error;

// // 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(&error, "Table");
// assert(table);

// // Create a column named "Column".
// auto column = table->create_column(&error, "Column", grnxx::INT_DATA);
// assert(column);

// // Append three rows.
// grnxx::Int row_id;
// assert(table->insert_row(&error, grnxx::NULL_ROW_ID,
// grnxx::Datum(), &row_id));
// assert(column->set(&error, row_id, grnxx::Int(1)));
// assert(table->insert_row(&error, grnxx::NULL_ROW_ID,
// grnxx::Datum(), &row_id));
// assert(column->set(&error, row_id, grnxx::Int(10)));
// assert(table->insert_row(&error, grnxx::NULL_ROW_ID,
// grnxx::Datum(), &row_id));
// assert(column->set(&error, row_id, grnxx::Int(100)));

// // Set key column.
// assert(table->set_key_column(&error, "Column"));
// assert(table->key_column() == column);

// // Duplicate keys must be rejected.
// assert(!table->insert_row(&error, grnxx::NULL_ROW_ID,
// grnxx::Int(1), &row_id));
// assert(row_id == 1);
// assert(!table->insert_row(&error, grnxx::NULL_ROW_ID,
// grnxx::Int(10), &row_id));
// assert(row_id == 2);
// assert(!table->insert_row(&error, grnxx::NULL_ROW_ID,
// grnxx::Int(100), &row_id));
// assert(row_id == 3);
void test_int_key() {
// Create a database with the default options.
auto db = grnxx::open_db("");

// // Append new keys.
// grnxx::Datum datum;
// assert(table->insert_row(&error, grnxx::NULL_ROW_ID,
// grnxx::Int(2), &row_id));
// assert(column->get(&error, row_id, &datum));
// assert(datum.force_int() == 2);
// assert(table->insert_row(&error, grnxx::NULL_ROW_ID,
// grnxx::Int(20), &row_id));
// assert(column->get(&error, row_id, &datum));
// assert(datum.force_int() == 20);
// assert(table->insert_row(&error, grnxx::NULL_ROW_ID,
// grnxx::Int(200), &row_id));
// assert(column->get(&error, row_id, &datum));
// assert(datum.force_int() == 200);
// Create a table named "Table".
auto table = db->create_table("Table");

// // Find rows by key.
// assert(table->find_row(&error, grnxx::Int(1)) == 1);
// assert(table->find_row(&error, grnxx::Int(10)) == 2);
// assert(table->find_row(&error, grnxx::Int(100)) == 3);
// assert(table->find_row(&error, grnxx::Int(2)) == 4);
// assert(table->find_row(&error, grnxx::Int(20)) == 5);
// assert(table->find_row(&error, grnxx::Int(200)) == 6);
// Create a column named "Column".
auto column = table->create_column("Column", grnxx::INT_DATA);

// // Unset key column.
// assert(table->unset_key_column(&error));
// assert(!table->key_column());
//}
// Append three rows.
grnxx::Int row_id = table->insert_row();
column->set(row_id, grnxx::Int(1));
row_id = table->insert_row();
column->set(row_id, grnxx::Int(10));
row_id = table->insert_row();
column->set(row_id, grnxx::Int(100));

// Set key column.
table->set_key_column("Column");
assert(table->key_column() == column);

// Duplicate keys must be rejected.
bool inserted = true;
row_id = table->find_or_insert_row(grnxx::Int(1), &inserted);
assert(row_id.match(grnxx::Int(0)));
assert(!inserted);
row_id = table->find_or_insert_row(grnxx::Int(10), &inserted);
assert(row_id.match(grnxx::Int(1)));
assert(!inserted);
row_id = table->find_or_insert_row(grnxx::Int(100), &inserted);
assert(row_id.match(grnxx::Int(2)));
assert(!inserted);

// Append new keys.
grnxx::Datum datum;
row_id = table->find_or_insert_row(grnxx::Int(2), &inserted);
assert(inserted);
column->get(row_id, &datum);
assert(datum.as_int().value() == 2);
row_id = table->find_or_insert_row(grnxx::Int(20), &inserted);
column->get(row_id, &datum);
assert(datum.as_int().value() == 20);
row_id = table->find_or_insert_row(grnxx::Int(200), &inserted);
column->get(row_id, &datum);
assert(datum.as_int().value() == 200);

// Find rows by key.
assert(table->find_row(grnxx::Int(1)).value() == 0);
assert(table->find_row(grnxx::Int(10)).value() == 1);
assert(table->find_row(grnxx::Int(100)).value() == 2);
assert(table->find_row(grnxx::Int(2)).value() == 3);
assert(table->find_row(grnxx::Int(20)).value() == 4);
assert(table->find_row(grnxx::Int(200)).value() == 5);

// Unset key column.
table->unset_key_column();
assert(!table->key_column());
}

//void test_text_key() {
// // TODO: find_row() is not supported yet.
Expand Down Expand Up @@ -478,7 +467,7 @@ int main() {
test_table();
test_rows();
test_bitmap();
// test_int_key();
test_int_key();
// test_text_key();
test_cursor();
test_reference();
Expand Down

0 comments on commit 37401ea

Please sign in to comment.