Files
ViewDesignEngine/docs/05-测试验证/02-测试用例.md
T

139 lines
3.5 KiB
Markdown
Raw Normal View History

# 测试用例
## 目录
1. [TC-01Point 基础运算](#tc-01point-基础运算)
2. [TC-02Delaunay 三角剖分](#tc-02delaunay-三角剖分)
3. [TC-03NURBS 曲线求值](#tc-03nurbs-曲线求值)
4. [TC-04:半边网格拓扑](#tc-04半边网格拓扑)
5. [TC-05GJK 碰撞检测](#tc-05gjk-碰撞检测)
6. [TC-06:网格简化](#tc-06网格简化)
7. [TC-072D 多边形布尔运算](#tc-072d-多边形布尔运算)
8. [TC-08BVH 空间查询](#tc-08bvh-空间查询)
---
## TC-01Point 基础运算
| 项目 | 内容 |
|------|------|
| **模块** | core |
| **被测函数** | Point3D 算术与距离 |
| **优先级** | P0 |
| 编号 | 输入 | 预期输出 |
|------|------|---------|
| TC-01.1 | a(0,0,0), b(0,0,0) | 距离 = 0 |
| TC-01.2 | a(0,0,0), b(3,4,0) | 距离 = 5.0 |
| TC-01.3 | a(1,1,1) + Vector(4,5,6) | Point(5,6,7) |
| TC-01.4 | equals(a, a+1e-7, tol=1e-6) | true |
---
## TC-02Delaunay 三角剖分
| 项目 | 内容 |
|------|------|
| **模块** | mesh |
| **优先级** | P0 |
| 编号 | 输入 | 预期 |
|------|------|------|
| TC-02.1 | 3 个非共线点 | 1 个三角形 |
| TC-02.2 | 4 个点(正方形顶点) | 2 个三角形,满足空外接圆 |
| TC-02.3 | 100 个随机点 | 所有三角形满足 Delaunay 条件 |
| TC-02.4 | 0 个点 | 返回空集合 |
| TC-02.5 | 大规模:10⁵ 个点 | 完成时间 ≤ 5 秒 |
---
## TC-03NURBS 曲线求值
| 项目 | 内容 |
|------|------|
| **模块** | curves |
| **优先级** | P0 |
| 编号 | 输入 | 预期 |
|------|------|------|
| TC-03.1 | 3 阶 NURBS, t = domain.min | 接近首个控制点 |
| TC-03.2 | 3 阶 NURBS, t = domain.max | 接近末个控制点 |
| TC-03.3 | 权重全为 1 的 NURBS | 与 B-Spline 求值结果一致 |
| TC-03.4 | t 超出 domain | 返回域边界值 |
---
## TC-04:半边网格拓扑
| 项目 | 内容 |
|------|------|
| **模块** | mesh |
| **优先级** | P0 |
| 编号 | 输入 | 预期 |
|------|------|------|
| TC-04.1 | 单个三角形 | 3 顶点, 1 面, 全部为边界 |
| TC-04.2 | 两个相邻三角形 | 4 顶点, 2 面, 1 条内部边 |
| TC-04.3 | 遍历面的边 | 半边顺序正确 |
| TC-04.4 | 法向量计算 | 面法向为单位向量 |
---
## TC-05GJK 碰撞检测
| 项目 | 内容 |
|------|------|
| **模块** | collision |
| **优先级** | P0 |
| 编号 | 输入 | 预期 |
|------|------|------|
| TC-05.1 | 两个分离球体 | 返回 false |
| TC-05.2 | 两个相交球体 | 返回 true |
| TC-05.3 | 小球在大球内部 | 返回 true |
---
## TC-06:网格简化
| 项目 | 内容 |
|------|------|
| **模块** | mesh |
| **优先级** | P1 |
| 编号 | 输入 | 预期 |
|------|------|------|
| TC-06.1 | 简化率 0.5 | 面数 ≈ 原面数 × 0.5 |
| TC-06.2 | 简化率 0 | 返回原始网格 |
| TC-06.3 | 简化后检查 | 无退化面(面积 > 0) |
---
## TC-072D 多边形布尔运算
| 项目 | 内容 |
|------|------|
| **模块** | boolean |
| **优先级** | P1 |
| 编号 | 输入 | 预期 |
|------|------|------|
| TC-07.1 | 两个相交矩形,求交集 | 交集区域,面积正确 |
| TC-07.2 | 两个分离矩形,求交集 | 结果为空 |
| TC-07.3 | 大矩形包含小矩形,求差集 | 带孔矩形 |
---
## TC-08BVH 空间查询
| 项目 | 内容 |
|------|------|
| **模块** | spatial |
| **优先级** | P1 |
| 编号 | 输入 | 预期 |
|------|------|------|
| TC-08.1 | 射线穿过三角形 | 返回该三角形 |
| TC-08.2 | 射线不穿过任何三角形 | 返回空 |
| TC-08.3 | 空 BVH 查询 | 返回空 |