TEST(CollectionUtilsTest, vecContainsPtr) { typedef std::vector<int*> TestVec; TestVec vec; vec.push_back(new int(10)); vec.push_back(new int(4)); vec.push_back(new int(-232)); vec.push_back(new int(11111)); const int* i10 = new int(10); const int* i4 = new int(4); const int* i232 = new int(-232); const int* i11111 = new int(11111); const int* i11 = new int(11); const int* i0 = new int(0); const int* i110 = new int(110); ASSERT_TRUE(VectorUtils::contains(vec, i10)); ASSERT_TRUE(VectorUtils::contains(vec, i4)); ASSERT_TRUE(VectorUtils::contains(vec, i232)); ASSERT_TRUE(VectorUtils::contains(vec, i11111)); ASSERT_FALSE(VectorUtils::contains(vec, i11)); ASSERT_FALSE(VectorUtils::contains(vec, i0)); ASSERT_FALSE(VectorUtils::contains(vec, i110)); VectorUtils::clearAndDelete(vec); delete i10; delete i4; delete i232; delete i11111; delete i11; delete i0; delete i110; }
TEST(CollectionUtilsTest, vecContains) { typedef std::vector<int> TestVec; TestVec vec; vec.push_back(10); vec.push_back(4); vec.push_back(-232); vec.push_back(11111); ASSERT_TRUE(VectorUtils::contains(vec, 10)); ASSERT_TRUE(VectorUtils::contains(vec, 4)); ASSERT_TRUE(VectorUtils::contains(vec, -232)); ASSERT_TRUE(VectorUtils::contains(vec, 11111)); ASSERT_FALSE(VectorUtils::contains(vec, 11)); ASSERT_FALSE(VectorUtils::contains(vec, 0)); ASSERT_FALSE(VectorUtils::contains(vec, 110)); }
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); }