void DeleteCases() { std::string error; Dynamic table = TABLE; nkit::TableIndex::Ptr index; nkit::TableIndex::ConstIterator it; COMMON_TABLE_INIT(table); index = table.CreateIndex("name,name1,name3", &error); // Fail cases tests NKIT_TEST_ASSERT(index); NKIT_TEST_ASSERT(index->GetEqual(Dynamic(3), Dynamic(1)) == index->end()); NKIT_TEST_ASSERT(index->GetEqual(Dynamic("A3"), Dynamic(3)) == index->end()); // Good cases tests for (size_t ops = 0; ops < TABLE_GROW_SIZE; ++ops) { DynamicVector vargs; vargs.push_back(Dynamic("A3")); vargs.push_back(Dynamic(3)); vargs.push_back(Dynamic(false)); vargs.push_back(Dynamic(1)); vargs.push_back(Dynamic(double(2.0 + ops))); NKIT_TEST_ASSERT(table.InsertRow(0, vargs)); } for (size_t ops = 0; ops < TABLE_GROW_SIZE; ++ops) NKIT_TEST_ASSERT(table.DeleteRow(0)); it = index->GetEqual(Dynamic("A3"), Dynamic(3), Dynamic(1)); NKIT_TEST_ASSERT(it != index->end()); for (; it != index->end(); ++it) { #if defined(MY_TRACE_) print(it[4]); #endif // MY_TRACE_ } NKIT_TEST_ASSERT(table == e); }
void InsertCases() { std::string error; Dynamic table = TABLE; nkit::TableIndex::Ptr index; nkit::TableIndex::ConstIterator it; COMMON_TABLE_INIT(table); // Fail cases tests for (size_t ops = 0; ops < TABLE_GROW_SIZE; ++ops) // wrong type { DynamicVector vargs; vargs.push_back(Dynamic(1)); vargs.push_back(Dynamic(3)); vargs.push_back(Dynamic(false)); vargs.push_back(Dynamic(1)); vargs.push_back(Dynamic("name")); NKIT_TEST_ASSERT(table.InsertRow(0, vargs) == false); } NKIT_TEST_ASSERT(table == e); index = table.CreateIndex("name,name1,name3", &error); NKIT_TEST_ASSERT(index); NKIT_TEST_ASSERT(index->GetEqual(Dynamic(3), Dynamic(1)) == index->end()); NKIT_TEST_ASSERT(index->GetEqual(Dynamic("A3"), Dynamic(3)) == index->end()); // Good cases tests for (size_t ops = 0; ops < TABLE_GROW_SIZE; ++ops) { DynamicVector vargs; vargs.push_back(Dynamic("A3")); vargs.push_back(Dynamic(3)); vargs.push_back(Dynamic(false)); vargs.push_back(Dynamic(1)); vargs.push_back(Dynamic(double(2.0 + ops))); NKIT_TEST_ASSERT(table.InsertRow(0, vargs)); } it = index->GetEqual(Dynamic("A3"), Dynamic(3), Dynamic(1)); NKIT_TEST_ASSERT(it != index->end()); for (; it != index->end(); ++it) { #if defined(MY_TRACE_) print(it[4]); #endif // MY_TRACE_ } for (size_t ops = 0; ops < TABLE_GROW_SIZE; ++ops) { DynamicVector vargs; vargs.push_back(Dynamic("A10")); vargs.push_back(Dynamic(3)); vargs.push_back(Dynamic(false)); vargs.push_back(Dynamic(1)); vargs.push_back(Dynamic(double(1.0 + ops))); NKIT_TEST_ASSERT(table.InsertRow(table.height() / 2, vargs)); } it = index->GetEqual(Dynamic("A10"), Dynamic(3), Dynamic(1)); NKIT_TEST_ASSERT(it != index->end()); for (; it != index->end(); ++it) { #if defined(MY_TRACE_) print(it[4]); #endif // MY_TRACE_ } it = index->GetEqual(Dynamic("A"), Dynamic(1), Dynamic(1)); NKIT_TEST_ASSERT(it != index->end()); NKIT_TEST_ASSERT(it[4] == Dynamic(99.0)); it = index->GetEqual(Dynamic("A2"), Dynamic(2), Dynamic::GetDefault(detail::INTEGER)); NKIT_TEST_ASSERT(it != index->end()); it = index->GetEqual(Dynamic("A1"), Dynamic(1), Dynamic::GetDefault(detail::INTEGER)); NKIT_TEST_ASSERT(it != index->end()); }