#!/usr/bin/env python3
"""
测试HILLY O42格式货号：字母+空格+字母+数字
"""

import sys
import os

# 添加项目根目录到路径
sys.path.insert(0, os.path.join(os.path.dirname(__file__)))

from app.utils.text_parser import ProductCodeExtractor

def test_hilly_format():
    """测试HILLY O42格式货号"""
    extractor = ProductCodeExtractor()
    
    test_cases = [
        {
            'name': "小王国Bogner博格纳女款夹克HILLY O42代购8.16",
            'expected': "HILLY O42",
            'format': "字母+空格+字母+数字"
        },
        # 类似格式的其他例子
        {
            'name': "品牌商品名称ALPHA B25测试8.15",
            'expected': "ALPHA B25", 
            'format': "字母+空格+字母+数字"
        }
    ]
    
    print("=== HILLY O42格式测试 ===")
    print("格式：字母+空格+字母+数字（数字不是日期）")
    print()
    
    for i, case in enumerate(test_cases, 1):
        print(f"测试 {i}: [{case['format']}]")
        print(f"商品名称: {case['name']}")
        print(f"期望货号: {case['expected']}")
        
        product_code = extractor.extract_product_code(case['name'])
        print(f"实际货号: {product_code}")
        
        if product_code == case['expected']:
            print("✅ 匹配成功")
        else:
            print("❌ 不匹配！")
            
            # 详细调试
            print("\n=== 详细调试 ===")
            import re
            
            # 测试不同的模式
            patterns_to_test = [
                r'[A-Z]+\s+[A-Z]\d+',           # 字母+空格+字母+数字
                r'[A-Z]{3,}\s+[A-Z]\d{2,}',     # 至少3个字母+空格+1个字母+至少2个数字
                r'HILLY O42',                    # 精确匹配
                r'[A-Z]+\s+[A-Z]+\d+',          # 字母+空格+字母+数字（更宽泛）
            ]
            
            clean_name = case['name']
            for j, pattern in enumerate(patterns_to_test, 1):
                matches = re.findall(pattern, clean_name)
                print(f"模式 {j} ({pattern}): {matches}")
        print()

if __name__ == "__main__":
    test_hilly_format()