Add tests

This commit is contained in:
Artem Zyktin 2026-06-03 17:47:22 +08:00
parent 260c166e68
commit d8c6064695
2 changed files with 103 additions and 0 deletions

View File

@ -283,4 +283,40 @@ TEST(naive_vec4, neg_compound)
EXPECT_TRUE(approx_eq(a + (-b), a - b));
}
TEST(naive_vec4, dot4_basic)
{
vec4 a = { 1.0f, 2.0f, 3.0f, 4.0f };
vec4 b = { 1.0f, 2.0f, 3.0f, 4.0f };
EXPECT_FLOAT_EQ(dot4(a, b), 30.0f);
}
TEST(naive_vec4, dot4_w_matters)
{
vec4 a = { 1.0f, 2.0f, 3.0f, 4.0f };
vec4 b = { 1.0f, 2.0f, 3.0f, 4.0f };
EXPECT_FLOAT_EQ(dot3(a, b), 14.0f);
EXPECT_FLOAT_EQ(dot4(a, b), 30.0f);
}
TEST(naive_vec4, dot4_w_only)
{
vec4 a = { 0.0f, 0.0f, 0.0f, 5.0f };
vec4 b = { 0.0f, 0.0f, 0.0f, 3.0f };
EXPECT_FLOAT_EQ(dot4(a, b), 15.0f);
}
TEST(naive_vec4, dot4_commutative)
{
vec4 a = { 1.0f, 2.0f, 3.0f, 4.0f };
vec4 b = { 4.0f, 3.0f, 2.0f, 1.0f };
EXPECT_FLOAT_EQ(dot4(a, b), dot4(b, a));
}
TEST(naive_vec4, dot4_w_zero_matches_dot3)
{
vec4 a = { 1.0f, 2.0f, 3.0f, 0.0f };
vec4 b = { 4.0f, 5.0f, 6.0f, 0.0f };
EXPECT_FLOAT_EQ(dot4(a, b), dot3(a, b));
}
}

View File

@ -337,4 +337,71 @@ TEST(vec4, neg_scalar_in_expression)
EXPECT_TRUE(approx_eq(check, result));
}
TEST(vec4, dot4_basic)
{
vec4 a = { 1.0f, 2.0f, 3.0f, 4.0f };
vec4 b = { 1.0f, 2.0f, 3.0f, 4.0f };
float check = 30.0f;
float result = dot4(a, b);
EXPECT_FLOAT_EQ(check, result);
}
TEST(vec4, dot4_w_zero_matches_dot3)
{
vec4 a = { 1.0f, 2.0f, 3.0f, 0.0f };
vec4 b = { 4.0f, 5.0f, 6.0f, 0.0f };
EXPECT_FLOAT_EQ(float(dot4(a, b)), float(dot3(a, b)));
}
TEST(vec4, dot4_w_matters)
{
vec4 a = { 1.0f, 2.0f, 3.0f, 4.0f };
vec4 b = { 1.0f, 2.0f, 3.0f, 4.0f };
float check1 = 14.0f;
float result1 = dot3(a, b);
float check2 = 30.0f;
float result2 = dot4(a, b);
EXPECT_FLOAT_EQ(check1, result1);
EXPECT_FLOAT_EQ(check2, result2);
}
TEST(vec4, dot4_w_only)
{
vec4 a = { 0.0f, 0.0f, 0.0f, 5.0f };
vec4 b = { 0.0f, 0.0f, 0.0f, 3.0f };
float check = 15.0f;
float result = dot4(a, b);
EXPECT_FLOAT_EQ(check, result);
}
TEST(vec4, dot4_perpendicular)
{
vec4 a = { 1.0f, 0.0f, 0.0f, 0.0f };
vec4 b = { 0.0f, 1.0f, 0.0f, 0.0f };
float check = 0.0f;
float result = dot4(a, b);
EXPECT_FLOAT_EQ(check, result);
}
TEST(vec4, dot4_commutative)
{
vec4 a = { 1.0f, 2.0f, 3.0f, 4.0f };
vec4 b = { 4.0f, 3.0f, 2.0f, 1.0f };
EXPECT_FLOAT_EQ(float(dot4(a, b)), float(dot4(b, a)));
}
TEST(vec4, dot4_collapses)
{
vec4 a = { 1.0f, 0.0f, 0.0f, 0.0f };
vec4 b = { 0.0f, 1.0f, 0.0f, 0.0f };
EXPECT_TRUE((scalar_expr<decltype(dot4(a, b) * 2.0f)>));
}
}