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

139 lines
3.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 测试用例
## 目录
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 查询 | 返回空 |