//-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- TEST(ArrayTest, SetSizeZero) { FloatArray a; a.reserve(3); a.add(1.0f); a.add(3.3f); a.add(5.5f); float* before = a.ptr(); a.setSizeZero(); float* after = a.ptr(); ASSERT_EQ(before, after); ASSERT_EQ(0u, a.size()); ASSERT_TRUE(3 <= a.capacity()); a.add(1.1f); a.add(3.4f); a.add(5.6f); ASSERT_EQ(3u, a.size()); ASSERT_EQ(1.1f, a[0]); ASSERT_EQ(3.4f, a[1]); ASSERT_EQ(5.6f, a[2]); }
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 } }