# 测试用例 ## 目录 1. [TC-01:Point 基础运算](#tc-01point-基础运算) 2. [TC-02:Delaunay 三角剖分](#tc-02delaunay-三角剖分) 3. [TC-03:NURBS 曲线求值](#tc-03nurbs-曲线求值) 4. [TC-04:半边网格拓扑](#tc-04半边网格拓扑) 5. [TC-05:GJK 碰撞检测](#tc-05gjk-碰撞检测) 6. [TC-06:网格简化](#tc-06网格简化) 7. [TC-07:2D 多边形布尔运算](#tc-072d-多边形布尔运算) 8. [TC-08:BVH 空间查询](#tc-08bvh-空间查询) --- ## TC-01:Point 基础运算 | 项目 | 内容 | |------|------| | **模块** | 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-02:Delaunay 三角剖分 | 项目 | 内容 | |------|------| | **模块** | 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-03:NURBS 曲线求值 | 项目 | 内容 | |------|------| | **模块** | 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-05:GJK 碰撞检测 | 项目 | 内容 | |------|------| | **模块** | 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-07:2D 多边形布尔运算 | 项目 | 内容 | |------|------| | **模块** | boolean | | **优先级** | P1 | | 编号 | 输入 | 预期 | |------|------|------| | TC-07.1 | 两个相交矩形,求交集 | 交集区域,面积正确 | | TC-07.2 | 两个分离矩形,求交集 | 结果为空 | | TC-07.3 | 大矩形包含小矩形,求差集 | 带孔矩形 | --- ## TC-08:BVH 空间查询 | 项目 | 内容 | |------|------| | **模块** | spatial | | **优先级** | P1 | | 编号 | 输入 | 预期 | |------|------|------| | TC-08.1 | 射线穿过三角形 | 返回该三角形 | | TC-08.2 | 射线不穿过任何三角形 | 返回空 | | TC-08.3 | 空 BVH 查询 | 返回空 |