TEST(CollectionUtilsTest, vecRemoveAndDelete) { typedef std::vector<TestObject*> TestVec; static const size_t count = 4; TestVec vec; bool deleted[count]; for (size_t i = 0; i < count; i++) vec.push_back(new TestObject(deleted[i])); VectorUtils::removeAndDelete(vec, vec[2]); ASSERT_EQ(count - 1, vec.size()); ASSERT_TRUE(deleted[2]); VectorUtils::clearAndDelete(vec); }
TEST(CollectionUtilsTest, vecEraseAndDelete1InRange) { typedef std::vector<TestObject*> TestVec; static const size_t count = 3; TestVec vec; bool deleted[count]; for (size_t i = 0; i < count; i++) vec.push_back(new TestObject(deleted[i])); VectorUtils::eraseAndDelete(vec, vec.begin() + 1, vec.end() - 1); ASSERT_EQ(2u, vec.size()); ASSERT_FALSE(deleted[0]); ASSERT_TRUE(deleted[1]); ASSERT_FALSE(deleted[2]); VectorUtils::clearAndDelete(vec); }