v0.1.0: 初始工程骨架 — 7模块 40头文件 32源文件 17文档 Apache-2.0

This commit is contained in:
ViewDesignEngine
2026-07-23 05:27:51 +00:00
commit 02d0520aa5
133 changed files with 5350 additions and 0 deletions
+4
View File
@@ -0,0 +1,4 @@
add_vde_test(test_point)
add_vde_test(test_convex_hull)
add_vde_test(test_transform)
add_vde_test(test_distance)
+21
View File
@@ -0,0 +1,21 @@
#include <gtest/gtest.h>
#include "vde/core/convex_hull.h"
using namespace vde::core;
TEST(ConvexHullTest, ThreePoints_ReturnsTriangle) {
std::vector<Point2D> pts = {{0,0}, {1,0}, {0,1}};
auto hull = convex_hull_2d(pts);
EXPECT_EQ(hull.size(), 3u);
}
TEST(ConvexHullTest, CollinearPoints_ReturnsEndpoints) {
std::vector<Point2D> pts = {{0,0}, {1,1}, {2,2}, {3,3}};
auto hull = convex_hull_2d(pts);
EXPECT_GE(hull.size(), 2u);
}
TEST(ConvexHullTest, Empty_ReturnsEmpty) {
auto hull = convex_hull_2d({});
EXPECT_TRUE(hull.empty());
}
+13
View File
@@ -0,0 +1,13 @@
#include <gtest/gtest.h>
#include "vde/core/distance.h"
using namespace vde::core;
TEST(DistanceTest, PointToPoint) {
EXPECT_DOUBLE_EQ(distance(Point3D(0,0,0), Point3D(1,0,0)), 1.0);
}
TEST(DistanceTest, PointToPlane) {
Plane3D plane(Point3D(0,0,0), Vector3D(0,0,1));
EXPECT_DOUBLE_EQ(distance(Point3D(0,0,5), plane), 5.0);
}
+38
View File
@@ -0,0 +1,38 @@
#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_IsZero) {
Point3D p;
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)));
}
+22
View File
@@ -0,0 +1,22 @@
#include <gtest/gtest.h>
#include "vde/core/transform.h"
using namespace vde::core;
TEST(TransformTest, Translate) {
auto T = translate(1, 2, 3);
Point3D p(0, 0, 0);
Point3D q = T * p;
EXPECT_DOUBLE_EQ(q.x(), 1.0);
EXPECT_DOUBLE_EQ(q.y(), 2.0);
EXPECT_DOUBLE_EQ(q.z(), 3.0);
}
TEST(TransformTest, Scale) {
auto S = scale(2.0);
Point3D p(1, 2, 3);
Point3D q = S * p;
EXPECT_DOUBLE_EQ(q.x(), 2.0);
EXPECT_DOUBLE_EQ(q.y(), 4.0);
EXPECT_DOUBLE_EQ(q.z(), 6.0);
}