This commit is contained in:
2026-03-14 01:29:40 +08:00
parent 4f083e23dd
commit 4f58de86fb
8 changed files with 3241 additions and 9 deletions
+146
View File
@@ -0,0 +1,146 @@
"""
测试铝泡沫模具分模功能
"""
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())