""" GASKET 분류 테스트 """ from .gasket_classifier import ( classify_gasket, get_gasket_purchase_info, is_high_temperature_gasket, is_high_pressure_gasket ) def test_gasket_classification(): """GASKET 분류 테스트""" test_cases = [ { "name": "스파이럴 와운드 가스켓", "dat_file": "SWG_150", "description": "SPIRAL WOUND GASKET, GRAPHITE FILLER, SS316 WINDING, 150LB", "main_nom": "4\"" }, { "name": "링 조인트 가스켓", "dat_file": "RTJ_600", "description": "RING JOINT GASKET, RTJ, SS316, 600LB", "main_nom": "6\"" }, { "name": "풀 페이스 가스켓", "dat_file": "FF_150", "description": "FULL FACE GASKET, RUBBER, 150LB", "main_nom": "8\"" }, { "name": "레이즈드 페이스 가스켓", "dat_file": "RF_300", "description": "RAISED FACE GASKET, PTFE, 300LB, -200°C TO 260°C", "main_nom": "3\"" }, { "name": "오링", "dat_file": "OR_VITON", "description": "O-RING, VITON, ID 50MM, THK 3MM", "main_nom": "50mm" }, { "name": "시트 가스켓", "dat_file": "SHEET_150", "description": "SHEET GASKET, GRAPHITE, 150LB, MAX 650°C", "main_nom": "10\"" }, { "name": "캄프로파일 가스켓", "dat_file": "KAMM_600", "description": "KAMMPROFILE GASKET, GRAPHITE FACING, SS304 CORE, 600LB", "main_nom": "12\"" }, { "name": "특수 가스켓", "dat_file": "CUSTOM_SPEC", "description": "CUSTOM GASKET, SPECIAL SHAPE, PTFE, -50°C TO 200°C", "main_nom": "특수" } ] print("🔧 GASKET 분류 테스트 시작\n") print("=" * 80) for i, test in enumerate(test_cases, 1): print(f"\n테스트 {i}: {test['name']}") print("-" * 60) result = classify_gasket( test["dat_file"], test["description"], test["main_nom"] ) purchase_info = get_gasket_purchase_info(result) print(f"📋 입력:") print(f" DAT_FILE: {test['dat_file']}") print(f" DESCRIPTION: {test['description']}") print(f" SIZE: {result['size_info']['size_description']}") print(f"\n🔧 분류 결과:") print(f" 가스켓타입: {result['gasket_type']['type']}") print(f" 특성: {result['gasket_type']['characteristics']}") print(f" 가스켓재질: {result['gasket_material']['material']}") print(f" 재질특성: {result['gasket_material']['characteristics']}") print(f" 압력등급: {result['pressure_rating']['rating']}") print(f" 온도범위: {result['temperature_info']['range']}") print(f" 용도: {result['gasket_type']['applications']}") # 특수 조건 표시 conditions = [] if is_high_temperature_gasket(result): conditions.append("🔥 고온용") if is_high_pressure_gasket(result): conditions.append("💪 고압용") if conditions: print(f" 특수조건: {' '.join(conditions)}") print(f"\n📊 신뢰도:") print(f" 전체신뢰도: {result['overall_confidence']}") print(f" 가스켓타입: {result['gasket_type']['confidence']}") print(f" 가스켓재질: {result['gasket_material']['confidence']}") print(f" 압력등급: {result['pressure_rating']['confidence']}") print(f"\n🛒 구매 정보:") print(f" 공급업체: {purchase_info['supplier_type']}") print(f" 예상납기: {purchase_info['lead_time_estimate']}") print(f" 구매단위: {purchase_info['purchase_unit']}") print(f" 구매카테고리: {purchase_info['purchase_category']}") print(f"\n💾 저장될 데이터:") print(f" GASKET_TYPE: {result['gasket_type']['type']}") print(f" GASKET_MATERIAL: {result['gasket_material']['material']}") print(f" PRESSURE_RATING: {result['pressure_rating']['rating']}") print(f" SIZE_INFO: {result['size_info']['size_description']}") print(f" TEMPERATURE_RANGE: {result['temperature_info']['range']}") if i < len(test_cases): print("\n" + "=" * 80) if __name__ == "__main__": test_gasket_classification()