#!/usr/bin/env python3
"""
测试LA方括号识别修复
验证"棕色LA[SJ788]_8.5[/39]"能正确识别为LA
"""

from app.services.procurement_order_service_v2 import ProcurementOrderServiceV2 as ProcurementOrderService

def test_la_bracket_recognition():
    """测试LA方括号识别"""
    
    test_cases = [
        # 原有的测试用例
        ("测试商品", "棕色LA_6.5[/37]", "", "LA"),
        ("测试商品", "黑色LA_7[/38]", "", "LA"),
        
        # 新增的测试用例 
        ("测试商品", "棕色LA[SJ788]_8.5[/39]", "", "LA"),
        ("测试商品", "白色LA[ABC123]_9[/40]", "", "LA"),
        ("测试商品", "蓝色LA[XYZ789]_10", "", "LA"),
        
        # 确保不会误匹配
        ("测试商品", "LATTE咖啡色", "", "NY"),  # LATTE不应该被识别为LA
        ("测试商品", "LARGE尺寸", "", "NY"),    # LARGE不应该被识别为LA
    ]
    
    print("=" * 70)
    print("🧪 测试LA方括号识别修复")
    print("=" * 70)
    
    all_passed = True
    
    for i, (product_name, sales_attrs, brand, expected) in enumerate(test_cases, 1):
        result = ProcurementOrderService._determine_procurement_method(
            product_name, sales_attrs, brand
        )
        
        status = "✅ PASS" if result == expected else "❌ FAIL"
        if result != expected:
            all_passed = False
            
        print(f"测试 {i}: {status}")
        print(f"  商品名称: {product_name}")
        print(f"  销售属性: {sales_attrs}")
        print(f"  品牌: {brand}")
        print(f"  期望结果: {expected}")
        print(f"  实际结果: {result}")
        print()
    
    print("=" * 70)
    if all_passed:
        print("🎉 所有测试通过！LA方括号识别修复成功")
    else:
        print("❌ 部分测试失败，需要进一步调试")
    print("=" * 70)
    
    return all_passed

if __name__ == "__main__":
    test_la_bracket_recognition()