TEST(Vector3, ConstructionAndEqualityCheck) {

    // Doubles:
    Vector3<double> vd1(0, 0, 0); Vector3<double> vd2;
    EXPECT_TRUE(vd1 == vd2);
    Vector3<double> vd3(3.1, 0, 0); Vector3<double> vd4(0, -2.5, 0);
    Vector3<double> vd5(0, 0, -0.1);
    EXPECT_TRUE(vd1 != vd3);  EXPECT_TRUE(vd1 != vd4); EXPECT_TRUE(vd1 != vd5);

    // Integers:
    Vector3<int> vi1(0, 0, 0); Vector3<int> vi2;
    EXPECT_TRUE(vi1 == vi2);
    Vector3<int> vi3(3, 0, 0); Vector3<int> vi4(0, -2, 0);
    Vector3<int> vi5(0, 0, -1);
    EXPECT_TRUE(vi1 != vi3);  EXPECT_TRUE(vi1 != vi4); EXPECT_TRUE(vi1 != vi5);
}
Exemple #2
0
TEST(SharedValueTest, value)
{
    // bool
    Value vb = false;
    EXPECT_EQ(vb.as<bool>(), false);
    EXPECT_EQ(bool(vb), false);
    EXPECT_EQ(static_cast<bool>(vb), false);
    EXPECT_NO_THROW(bool b = vb);

    Value vb1(false);
    Value vb2(true);
    EXPECT_EQ(bool(vb1), false);
    EXPECT_EQ(bool(vb2), true);

    bool b = vb;
    EXPECT_EQ(b, false);

    EXPECT_NO_THROW(vb = true);

    EXPECT_EQ(vb.as<bool>(), true);
    EXPECT_EQ(bool(vb), true);
    EXPECT_EQ(static_cast<bool>(vb), true);

    b = vb;
    EXPECT_EQ(b, true);

    // float
    Value vf = 1 / 3.;

    EXPECT_EQ(vf.as<float>(), 1 / 3.f);
    EXPECT_EQ(float(vf), 1 / 3.f);
    EXPECT_EQ(static_cast<float>(vf), 1 / 3.f);

    EXPECT_EQ(vf.as<double>(), 1 / 3.f);
    EXPECT_EQ(double(vf), 1 / 3.f);
    EXPECT_EQ(static_cast<double>(vf), 1 / 3.f);

    Value vf2(1.0 / 7);
    Value vf3(1 / 8.f);
    Value vf4(vf3);
    EXPECT_EQ(float(vf2), 1.f / 7);
    EXPECT_EQ(float(vf3), 1.f / 8);
    EXPECT_EQ(float(vf4), 1.f / 8);

    EXPECT_NO_THROW(vf = 1 / 7.f);
    EXPECT_NO_THROW(float f = vf);
    EXPECT_NO_THROW(double d = vf);
    float f = vf;
    double d = vf;

    EXPECT_EQ(f, 1 / 7.f);
    EXPECT_EQ(d, 1 / 7.f);

    EXPECT_NO_THROW(vf = 14.245f);
    EXPECT_EQ(float(vf), 14.245f);
    EXPECT_EQ(double(vf), 14.245f);

    EXPECT_EQ(double(vf), double(14.245f));
    EXPECT_NE(double(vf), double(14.245));
    EXPECT_TRUE(float(vf) == float(14.245));

    // int
    Value vi = -56;

    EXPECT_EQ(vi.as<int>(), -56);
    EXPECT_EQ(int(vi), -56);
    EXPECT_EQ(static_cast<int>(vi), -56);
    EXPECT_NO_THROW(int i = vi);

    Value vi2(32);
    Value vi3(3530454);
    Value vi4(0xFF1110u);
    EXPECT_EQ(int(vi2), 32);
    EXPECT_EQ(int(vi3), 3530454);
    EXPECT_EQ(unsigned(vi4), 0xFF1110u);

    int i = vi;
    EXPECT_EQ(i, -56);

    EXPECT_NO_THROW(vi = 17);
    EXPECT_EQ(int(vi), 17);
    EXPECT_EQ(char(vi), 17);
    EXPECT_EQ(short(vi), 17);
    EXPECT_EQ(unsigned(vi), 17u);

    // pointer
    int test = 1;
    int test2 = 2;
    EXPECT_NO_THROW(Value vp(&test));
    Value vp(static_cast<void*>(&test));
    EXPECT_NO_THROW(const void* p = vp);
    const void* p = vp;
    EXPECT_EQ(static_cast<const void*>(vp), &test);
    EXPECT_ANY_THROW(vp = &test2);
    EXPECT_NO_THROW(vp = static_cast<const void *>(&test2));
    EXPECT_EQ(static_cast<const void*>(vp), &test2);
}