#include #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))); }