""" 测试铝泡沫模具分模功能 """ import sys sys.path.insert(0, "src") def test_imports(): """测试模块导入""" print("测试模块导入...") try: from core.aluminum_foam_mold import AluminumFoamMoldGenerator print("✅ AluminumFoamMoldGenerator 导入成功") from core.mold_quality_inspector import AluminumFoamMoldQualityInspector print("✅ AluminumFoamMoldQualityInspector 导入成功") return True except Exception as e: print(f"❌ 导入失败: {e}") import traceback traceback.print_exc() return False def test_foam_materials(): """测试铝泡沫材料数据库""" print("\n测试铝泡沫材料数据库...") from core.aluminum_foam_mold import AluminumFoamMoldGenerator gen = AluminumFoamMoldGenerator() # 检查材料数据库 expected_materials = ["AlSi10Mg", "AlSi12", "Pure Al Foam", "AlSi7Mg"] for material in expected_materials: if material in gen.foam_materials: props = gen.foam_materials[material] print(f"✅ {material}: 密度={props['density']}, 发泡倍率={props['expansion_ratio']}") else: print(f"❌ 缺少材料: {material}") return False return True def test_material_setting(): """测试材料设置""" print("\n测试材料设置...") from core.aluminum_foam_mold import AluminumFoamMoldGenerator gen = AluminumFoamMoldGenerator() # 测试设置铝泡沫材料 gen.set_foam_material("AlSi10Mg") if gen.material_density == 0.45 and gen.shrinkage_rate == 0.015: print("✅ 材料设置正确: AlSi10Mg") else: print(f"❌ 材料参数不正确: density={gen.material_density}, shrinkage={gen.shrinkage_rate}") return False # 测试塑料材料 gen.set_material("ABS") if gen.material_density == 1.05: print("✅ 塑料材料设置正确: ABS") else: print("❌ 塑料材料设置失败") return False return True def test_quality_inspector(): """测试质量检测器""" print("\n测试质量检测器...") from core.mold_quality_inspector import AluminumFoamMoldQualityInspector inspector = AluminumFoamMoldQualityInspector() # 测试数据结构 test_data = { "parting_line": [[0,0,0], [10,0,0], [10,10,0], [0,10,0], [0,0,0]], "cavity": True, "core": True, "parting_surface": True, "analysis": { "volume": 1000000, "bounding_box": {"dimensions": [100, 80, 50]} }, "undercut_regions": [] } result = inspector.inspect_surface_quality(test_data) if "overall_score" in result: print(f"✅ 质量检测正常工作, 评分: {result['overall_score']:.1f}") return True else: print("❌ 质量检测返回数据格式错误") return False def main(): """运行所有测试""" print("="*50) print("铝泡沫模具分模功能测试") print("="*50) tests = [ test_imports, test_foam_materials, test_material_setting, test_quality_inspector, ] results = [] for test in tests: try: results.append(test()) except Exception as e: print(f"❌ 测试异常: {e}") results.append(False) print("\n" + "="*50) print("测试结果汇总") print("="*50) passed = sum(results) total = len(results) print(f"通过: {passed}/{total}") if passed == total: print("\n🎉 所有测试通过!") return 0 else: print(f"\n⚠️ {total - passed} 个测试失败") return 1 if __name__ == "__main__": sys.exit(main())