147 lines
3.8 KiB
Python
147 lines
3.8 KiB
Python
"""
|
|
测试铝泡沫模具分模功能
|
|
"""
|
|
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())
|