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(ArrayDeathTest, AssignWithIllegalData)
{
    FloatArray a;
    EXPECT_DEATH(a.assign(NULL, 0), "Assertion");
    EXPECT_DEATH(a.assign(NULL, 1), "Assertion");
}