Exemplo n.º 1
0
void VectorTest::testReserve()
{
	static const size_type staticSize = 10;
	static const size_type maxSize = staticSize * 2;
	typedef Vector<int, staticSize> Vector_t;

	Vector_t mutableVector;

	TS_ASSERT_EQUALS(staticSize, mutableVector.capacity());
	
	mutableVector.reserve(staticSize + 1);
	TS_ASSERT_EQUALS(staticSize + 1, mutableVector.capacity());

	mutableVector.reserve(maxSize);
	TS_ASSERT_EQUALS(maxSize, mutableVector.capacity());
}
Exemplo n.º 2
0
void VectorTest::testAddAndRead()
{
	static const size_type staticSize = 10;
	static const int maxSize = static_cast<int>(staticSize * 2);
	typedef Vector<int, staticSize> Vector_t;

	Vector_t mutableVector;

	TS_ASSERT(mutableVector.empty());
	TS_ASSERT_EQUALS(staticSize, mutableVector.capacity());

	for (int i = 0; i < maxSize; ++i) {
		mutableVector.push_back(i);

		const Vector_t constVector = mutableVector;

		TS_ASSERT(! mutableVector.empty());
		TS_ASSERT(! constVector.empty());

		TS_ASSERT_EQUALS(0, mutableVector.front());
		TS_ASSERT_EQUALS(i, mutableVector.back());

		TS_ASSERT_EQUALS(0, constVector.front());
		TS_ASSERT_EQUALS(i, constVector.back());

		for (int j = 0; j <= i; ++j) {
			TS_ASSERT_EQUALS(j, mutableVector[j]);
			TS_ASSERT_EQUALS(j, constVector[j]);
		}

		int ix = 0;
		Vector_t::const_iterator ii = constVector.begin();
		for (Vector_t::iterator jj = mutableVector.begin(); jj != mutableVector.end(); ++jj, ++ii) {
			TS_ASSERT_EQUALS(ix, *jj);
			TS_ASSERT_EQUALS(ix, *ii);
			++ix;
		}
	}
}