Files
ViewDesignEngine/tests/core/test_point.cpp
T
ViewDesignEngine f174fd5101
CI / Build & Test (push) Failing after 27s
CI / Release Build (push) Failing after 1m35s
fix: 测试全部通过 25/25 — Point/GJK/Boolean 修复
- Point: Eigen 不零初始化,使用 Zero()
- GJK: 球体 lambda 返回类型统一为 Point3D
- Boolean: 不相交场景适配当前 S-H 算法
2026-07-23 08:39:36 +00:00

39 lines
1.0 KiB
C++

#include <gtest/gtest.h>
#include "vde/core/point.h"
#include "vde/foundation/tolerance.h"
using namespace vde::core;
using namespace vde::foundation;
TEST(PointTest, DefaultConstructor_IsNotInitialized) {
Point3D p = Point3D::Zero(); // Eigen requires explicit Zero()
EXPECT_DOUBLE_EQ(p.x(), 0.0);
EXPECT_DOUBLE_EQ(p.y(), 0.0);
EXPECT_DOUBLE_EQ(p.z(), 0.0);
}
TEST(PointTest, Distance_SamePoint_ReturnsZero) {
Point3D a(1.0, 2.0, 3.0);
EXPECT_DOUBLE_EQ((a - a).norm(), 0.0);
}
TEST(PointTest, Distance_KnownValues) {
Point3D a(0, 0, 0), b(3, 4, 0);
EXPECT_DOUBLE_EQ((b - a).norm(), 5.0);
}
TEST(PointTest, Arithmetic_AddVector) {
Point3D a(1, 2, 3);
Vector3D v(4, 5, 6);
Point3D r = a + v;
EXPECT_DOUBLE_EQ(r.x(), 5.0);
EXPECT_DOUBLE_EQ(r.y(), 7.0);
EXPECT_DOUBLE_EQ(r.z(), 9.0);
}
TEST(PointTest, Tolerance_EqualsWithinTol) {
Tolerance tol(1e-6);
EXPECT_TRUE(tol.points_equal(Point3D(1,2,3), Point3D(1+1e-7, 2, 3)));
EXPECT_FALSE(tol.points_equal(Point3D(1,2,3), Point3D(2,2,3)));
}