TEST(ArrayDeathTest, IllegalUsageWithSharedData) { float* f = new float[2]; f[0] = 1; f[1] = 2; { FloatArray a; a.setSharedPtr(f, 2); std::vector<float> sv; sv.push_back(1); EXPECT_DEATH(a.assign(&sv[0], 1), "Assertion"); EXPECT_DEATH(a.assign(sv), "Assertion"); EXPECT_DEATH(a.resize(10), "Assertion"); EXPECT_DEATH(a.setPtr(&sv[0], 1), "Assertion"); EXPECT_DEATH(a.reserve(10), "Assertion"); EXPECT_DEATH(a.squeeze(), "Assertion"); #if CVF_ENABLE_TIGHT_ASSERTS == 1 EXPECT_DEATH(a.setSizeZero(), "Assertion"); #endif } }
//-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- TEST(ArrayTest, SqueezeEmptyArray) { FloatArray a; a.reserve(5); ASSERT_EQ(0, a.size()); ASSERT_TRUE(5 <= a.capacity()); a.squeeze(); ASSERT_EQ(0, a.size()); ASSERT_EQ(0, a.capacity()); }
//-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- TEST(ArrayTest, Squeeze) { FloatArray a; a.reserve(5); a.add(1.0f); a.add(3.3f); a.add(5.5f); ASSERT_EQ(3u, a.size()); ASSERT_TRUE(5 <= a.capacity()); a.squeeze(); ASSERT_EQ(3u, a.size()); ASSERT_EQ(3u, a.capacity()); ASSERT_EQ(1.0f, a[0]); ASSERT_EQ(3.3f, a[1]); ASSERT_EQ(5.5f, a[2]); }