void testFind(const Timeline<int>& timeline, FindMode findMode, const initializer_list<Timed<int>*> expectedResults) { int i = -1; for (Timed<int>* expectedResult : expectedResults) { auto it = timeline.find(centiseconds(++i), findMode); if (expectedResult != nullptr) { EXPECT_NE(it, timeline.end()) << "Timeline: " << timeline << "; findMode: " << static_cast<int>(findMode) << "; i: " << i; if (it != timeline.end()) { EXPECT_EQ(*expectedResult, *it) << "Timeline: " << timeline << "; findMode: " << static_cast<int>(findMode) << "; i: " << i; } } else { EXPECT_EQ(timeline.end(), it) << "Timeline: " << timeline << "; findMode: " << static_cast<int>(findMode) << "; i: " << i; } } }
bool Timelines::Get(const string& key, Timeline& results) { int size = (int)sizeof(double); void* records = tcbdbget(this->database, key.c_str(), key.size(), &size); if(records != NULL) { size_t count = size / sizeof(double); results.insert(results.end(), (double*)records, (double*)records + count); free(records); return true; } else { return false; } }