Add Vector4 to tests.
This commit is contained in:
parent
d47b4076a9
commit
6f3fd9053d
@ -343,4 +343,135 @@ namespace VectorTests
|
||||
EXPECT_TRUE(PMath::Project(v0, v1) == PMath::Vector3(3.657324613f, 1.792806183f, 5.163281807f));
|
||||
EXPECT_TRUE(PMath::Reject(v0, v1) == PMath::Vector3(-1.257324613f, 1.307193817f, 0.436718193f));
|
||||
}
|
||||
|
||||
TEST(Vector4, OperatorTests)
|
||||
{
|
||||
PMath::Vector4 v0(2.4f, 3.1f, 5.6f, -3.7f);
|
||||
PMath::Vector4 v1(5.1f, 2.5f, 7.2f, 2.6f);
|
||||
|
||||
|
||||
v0 += v1;
|
||||
EXPECT_TRUE(v0 == PMath::Vector4(7.5f, 5.6f, 12.8f, -1.1f));
|
||||
|
||||
v0 -= v1;
|
||||
EXPECT_TRUE(v0 == PMath::Vector4(2.4f, 3.1f, 5.6f, -3.7f));
|
||||
|
||||
v0 *= v1;
|
||||
EXPECT_TRUE(v0 == PMath::Vector4(12.24f, 7.75f, 40.32f, -9.62f));
|
||||
|
||||
v0 /= v1;
|
||||
EXPECT_TRUE(v0 == PMath::Vector4(2.4f, 3.1f, 5.6f, -3.7f));
|
||||
|
||||
|
||||
v0 += 4.0f;
|
||||
EXPECT_TRUE(v0 == PMath::Vector4(6.4f, 7.1f, 9.6f, 0.3f));
|
||||
|
||||
v0 -= 4.0f;
|
||||
EXPECT_TRUE(v0 == PMath::Vector4(2.4f, 3.1f, 5.6f, -3.7f));
|
||||
|
||||
v0 *= 4.0f;
|
||||
EXPECT_TRUE(v0 == PMath::Vector4(9.6f, 12.4f, 22.4f, -14.8f));
|
||||
|
||||
v0 /= 4.0f;
|
||||
EXPECT_TRUE(v0 == PMath::Vector4(2.4f, 3.1f, 5.6f, -3.7f));
|
||||
|
||||
// ------------------------------------------
|
||||
|
||||
PMath::Vector4 r;
|
||||
|
||||
r = v0 + v1;
|
||||
EXPECT_TRUE(r == PMath::Vector4(7.5f, 5.6f, 12.8f, -1.1f));
|
||||
|
||||
r = v0 - v1;
|
||||
EXPECT_TRUE(r == PMath::Vector4(-2.7f, 0.6f, -1.6f, -6.3f));
|
||||
|
||||
r = v0 * v1;
|
||||
EXPECT_TRUE(r == PMath::Vector4(12.24f, 7.75f, 40.32f, -9.62f));
|
||||
|
||||
r = v0 / v1;
|
||||
EXPECT_TRUE(r == PMath::Vector4(0.470588f, 1.24f, 0.777777777777f, -1.423076923076f));
|
||||
|
||||
|
||||
|
||||
r = v0 + 4.0f;
|
||||
EXPECT_TRUE(r == PMath::Vector4(6.4f, 7.1f, 9.6f, 0.3f));
|
||||
|
||||
r = v0 - 4.0f;
|
||||
EXPECT_TRUE(r == PMath::Vector4(-1.6f, -0.9f, 1.6f, -7.7f));
|
||||
|
||||
r = v0 * 4.0f;
|
||||
EXPECT_TRUE(r == PMath::Vector4(9.6f, 12.4f, 22.4f, -14.8f));
|
||||
|
||||
r = v0 / 4.0f;
|
||||
EXPECT_TRUE(r == PMath::Vector4(0.6f, 0.775f, 1.4f, -0.925f));
|
||||
|
||||
// --------------------------------------------
|
||||
|
||||
EXPECT_TRUE(r != PMath::Vector4(0.480588f, 3.24f, 34.5f, 73.3f));
|
||||
|
||||
EXPECT_FALSE(r != PMath::Vector4(0.6f, 0.775f, 1.4f, -0.925f));
|
||||
}
|
||||
|
||||
TEST(Vector4, FunctionTest)
|
||||
{
|
||||
PMath::Vector4 v0(2.4f, 3.1f, 5.6f, -3.7f);
|
||||
PMath::Vector4 v1(5.1f, 2.5f, 7.2f, 2.6f);
|
||||
PMath::Vector4 n(0.535037f, 0.262273f, 0.755346f, 0.272764f);
|
||||
|
||||
|
||||
EXPECT_FLOAT_EQ(PMath::Magnitude(v0), 7.773030297f);
|
||||
|
||||
EXPECT_FLOAT_EQ(PMath::SqrMagnitude(v0), 60.42f);
|
||||
|
||||
EXPECT_FLOAT_EQ(PMath::Angle(v0, v1), 46.83191757_deg);
|
||||
|
||||
EXPECT_FLOAT_EQ(PMath::CosineAngle(v0, v1), 0.68414091f);
|
||||
|
||||
EXPECT_FLOAT_EQ(PMath::Magnitude(PMath::NormalizeV(v0)), 1.0f);
|
||||
|
||||
v0 = PMath::Vector4(2.4f, 3.1f, 5.6f, -3.7f);
|
||||
EXPECT_FLOAT_EQ(PMath::DotP(v0, v1), 50.69f);
|
||||
|
||||
EXPECT_TRUE(PMath::MaxV(v0, v1) == PMath::Vector4(5.1f, 3.1f, 7.2f, 2.6f)) << PMath::ToString(v0);
|
||||
|
||||
v0 = PMath::Vector4(2.4f, 3.1f, 5.6f, -3.7f);
|
||||
EXPECT_TRUE(PMath::MinV(v0, v1) == PMath::Vector4(2.4f, 2.5f, 5.6f, -3.7f)) << PMath::ToString(v0);
|
||||
|
||||
EXPECT_TRUE(PMath::NegateV(v0) == PMath::Vector4(-2.4f, -2.5f, -5.6f, 3.7f)) << PMath::ToString(v0);
|
||||
|
||||
EXPECT_TRUE(PMath::CompInverseV(v0) == PMath::Vector4(1.0f / -2.4f, 1.0f / -2.5f, 1.0f / -5.6f, 1.0f / 3.7f)) << PMath::ToString(v0);
|
||||
|
||||
v0 = PMath::Vector4(2.4f, 3.1f, 5.6f, -3.7f);
|
||||
EXPECT_TRUE(PMath::ClampToMagnitudeV(v0, 6.0f, 7.0f) == PMath::Vector4(2.1613193f, 2.791704135f, 5.043078439f, -3.332034f)) << PMath::ToString(v0);
|
||||
|
||||
v0 = PMath::Vector4(2.4f, 3.1f, 5.6f, -3.7f);
|
||||
EXPECT_TRUE(PMath::ScaleToMagnitudeV(v0, 7.0f) == PMath::Vector4(2.1613193f, 2.791704135f, 5.043078439f, -3.332034f)) << PMath::ToString(v0);
|
||||
|
||||
v0 = PMath::Vector4(2.4f, 3.1f, 5.6f, -3.7f);
|
||||
EXPECT_TRUE(PMath::ReflectV(v0, n) == PMath::Vector4(3.290488f, -0.310545f, 2.433628f, 6.601034f));
|
||||
|
||||
v0 = PMath::Vector4(2.4f, 3.1f, 5.6f, -3.7f);
|
||||
EXPECT_TRUE(PMath::ProjectV(v0, v1) == PMath::Vector4(2.845245432533568f, 1.394728153202729f, 4.016817081223861f, 1.450517279330839f));
|
||||
|
||||
v0 = PMath::Vector4(2.4f, 3.1f, 5.6f, -3.7f);
|
||||
EXPECT_TRUE(PMath::RejectV(v0, v1) == PMath::Vector4(-0.445245432533f, 1.705271846797271f, 1.583182918776139f, -5.150517279330839f));
|
||||
|
||||
v0 = PMath::Vector4(2.4f, 3.1f, 5.6f, -3.7f);
|
||||
EXPECT_TRUE(PMath::PerspectiveDivideV(v0) == PMath::Vector4(1.0f / 2.4f, 1.0f / 3.1f, 1.0f / 5.6f, 1.0f / -3.7f));
|
||||
|
||||
|
||||
v0 = PMath::Vector4(2.4f, 3.1f, 5.6f, -3.7f);
|
||||
// EXPECT_FLOAT_EQ(PMath::SqrMagnitude(PMath::Normalize(v0)), 1.0f);
|
||||
// EXPECT_TRUE(PMath::Max(v0, v1) == PMath::Vector4(5.1f, 3.1f, 7.2f, 2.6f));
|
||||
// EXPECT_TRUE(PMath::Min(v0, v1) == PMath::Vector4(2.4f, 2.5f, 5.6f, -3.7f));
|
||||
// EXPECT_TRUE(PMath::ClampToMagnitude(v0, 6.0f, 7.0f) == PMath::Vector4(2.1613193f, 2.791704135f, 5.043078439f, -3.332034f)) << PMath::ToString(v0);
|
||||
// EXPECT_TRUE(PMath::ScaleToMagnitude(v0, 7.0f) == PMath::Vector4(2.1613193f, 2.791704135f, 5.043078439f, -3.332034f)) << PMath::ToString(v0);
|
||||
// EXPECT_TRUE(PMath::Reflect(v0, n) == PMath::Vector4(3.290488f, -0.310545f, 2.433628f, 6.601034f));
|
||||
// EXPECT_TRUE(PMath::Project(v0, v1) == PMath::Vector4(2.845245432533568f, 1.394728153202729f, 4.016817081223861f, 1.450517279330839f));
|
||||
// EXPECT_TRUE(PMath::Reject(v0, v1) == PMath::Vector4(2.845245432533568f, 1.394728153202729f, 4.016817081223861f, 1.450517279330839f));
|
||||
// EXPECT_TRUE(PMath::PerspectiveDivide(v0) == PMath::Vector4(1.0f / 2.4f, 1.0f / 3.1f, 1.0f / 5.6f, 1.0f / -3.7f));
|
||||
|
||||
// EXPECT_TRUE(PMath::CompInverseV(v0) == PMath::Vector4(1.0f / -2.4f, 1.0f / -2.5f, 1.0f / -5.6f, 1.0f / 3.7f));
|
||||
}
|
||||
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user