#include #include using Vector2 = LinearAlgebra::Vector2; TEST(Vector2Test, V2_Constructor_Default) { EXPECT_EQ(Vector2(), Vector2::Zero); } TEST(Vector2Test, V2_Constructor_XY) { Vector2 vec {1, 0}; EXPECT_EQ(vec, Vector2::Right); } TEST(Vector2Test, V2_Addition_Op) { Vector2 A {1,1}; Vector2 B {2,2}; Vector2 C {3, 3}; EXPECT_EQ(A+B, C); } TEST(Vector2Test, V2_Subtraction_Op) { Vector2 A {1,1}; Vector2 B {2,2}; Vector2 C {-1, -1}; EXPECT_EQ(A-B, C); } TEST(Vector2Test, V2_Scalar_Multiplication) { Vector2 A {5, 1}; float B = 0.5f; Vector2 C = {2.5f, .5f}; EXPECT_EQ(A*B, C); } TEST(Vector2Test, V2_Size) { EXPECT_EQ(sizeof(Vector2), 8); } TEST(Vector2Test, V2_NaN) { EXPECT_NE(Vector2::Zero, Vector2::NaN); EXPECT_NE(Vector2::Up, Vector2::NaN); EXPECT_NE(Vector2::Left, Vector2::NaN); EXPECT_NE(Vector2::Down, Vector2::NaN); EXPECT_NE(Vector2::Right, Vector2::NaN); EXPECT_NE(Vector2::NaN, Vector2::NaN); } TEST(Vector2Test, V2_MarginOfError) { Vector2 A {2,2}; Vector2 B {1.85, 1.85}; EXPECT_TRUE(A.IsWithinMarginOfError(B, 0.5f)); } TEST(Vector2Test, V2_Min) { Vector2 A {2,2}; Vector2 B {1.85, 1.85}; EXPECT_EQ( Vector2::Min(A, B), B); } TEST(Vector2Test, V2_Max) { Vector2 A {2,2}; Vector2 B {1.85, 1.85}; EXPECT_EQ( Vector2::Max(A, B), A); } TEST(Vector2Test, V2_Clamp) { } TEST(Vector2Test, V2_DotProduct) { } TEST(Vector2Test, V2_Project) { } TEST(Vector2Test, V2_Normalize) { }