#include #include using Vector3 = LinearAlgebra::Vector3; TEST(Vector3Test, V3_Constructor_Default) { EXPECT_EQ(Vector3(), Vector3::Zero); } TEST(Vector3Test, V3_Constructor_XYZ) { Vector3 Input {0, 1, 0}; EXPECT_EQ(Input, Vector3::Down); } TEST(Vector3Test, V3_Addition_Op) { Vector3 A {}; Vector3 B {}; Vector3 ExpectedResult {}; EXPECT_EQ(A + B, ExpectedResult); } TEST(Vector3Test, V3_Addition_Method) { Vector3 A {}; Vector3 B {}; Vector3 ExpectedResult {}; EXPECT_EQ(A.Add(B), ExpectedResult); } TEST(Vector3Test, V3_Addition_Static) { Vector3 A {}; Vector3 B {}; Vector3 ExpectedResult {}; EXPECT_EQ(Vector3::Add(A, B), ExpectedResult); } TEST(Vector3Test, V3_Subtract_Op) { Vector3 A {}; Vector3 B {}; Vector3 ExpectedResult {}; EXPECT_EQ(A - B, ExpectedResult); } TEST(Vector3Test, V3_Subtract_Method) { Vector3 A {}; Vector3 B {}; Vector3 ExpectedResult {}; EXPECT_EQ(A.Sub(B), ExpectedResult); } TEST(Vector3Test, V3_Subtract_Static) { Vector3 A {}; Vector3 B {}; Vector3 ExpectedResult {}; EXPECT_EQ(Vector3::Sub(A, B), ExpectedResult); } TEST(Vector3Test, V3_Scalar_Mult_Op) { Vector3 A { }; float B = 1.5f; Vector3 ExpectedResult {}; EXPECT_EQ(A * B, ExpectedResult); } TEST(Vector3Test, V3_Scalar_Mult_Method) { Vector3 A { }; float B = 1.5f; Vector3 ExpectedResult {}; EXPECT_EQ(A.Mul(B), ExpectedResult); } TEST(Vector3Test, V3_Scalar_Mult_Static) { Vector3 A { }; float B = 1.5f; Vector3 ExpectedResult {}; EXPECT_EQ(Vector3::Mul(A, B), ExpectedResult); } TEST(Vector3Test, V3_Scalar_Div_Op) { Vector3 A {}; float B = 1.5f; Vector3 ExpectedResult { }; EXPECT_EQ(A / B, ExpectedResult); } TEST(Vector3Test, V3_Scalar_Div_Method) { Vector3 A { }; float B = 1.5f; Vector3 ExpectedResult { }; EXPECT_EQ(A.Div(B), ExpectedResult); } TEST(Vector3Test, V3_Scalar_Div_Static) { Vector3 A { }; float B = 1.5f; Vector3 ExpectedResult { }; EXPECT_EQ(Vector3::Div(A, B), ExpectedResult); } TEST(Vector3Test, V3_Sizeof) { EXPECT_EQ(sizeof(Vector3), 12); } TEST(Vector3Test, V3_NaN) { EXPECT_NE(Vector3(0, 0, 0), Vector3::NaN); } TEST(Vector3Test, V3_Min) {} TEST(Vector3Test, V3_Max) {} TEST(Vector3Test, V3_Clamp) {} TEST(Vector3Test, V3_DotProduct) {} TEST(Vector3Test, V3_CrossProduct) {} TEST(Vector3Test, V3_Project) {} TEST(Vector3Test, V3_Normalize) {} TEST(Vector3Test, V3_Lerp) {} TEST(Vector3Test, V3_AngleBetween) {}