#!/usr/bin/env python3
"""
测试包含小数点的货号格式
"""

import sys
import os

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

from app.utils.text_parser import ProductCodeExtractor

def test_decimal_code():
    """测试包含小数点的货号"""
    extractor = ProductCodeExtractor()
    
    test_case = {
        'name': "On昂跑 Cloud X 3女款缓震日常训练运动鞋60.98098代购3.12",
        'expected': "60.98098",
        'format': "数字.数字格式"
    }
    
    print("=== 小数点货号格式测试 ===")
    print(f"商品名称: {test_case['name']}")
    print(f"期望货号: {test_case['expected']}")
    
    product_code = extractor.extract_product_code(test_case['name'])
    print(f"实际货号: {product_code}")
    
    if product_code == test_case['expected']:
        print("✅ 匹配成功")
    else:
        print("❌ 不匹配！")
        
        # 详细调试
        print("\n=== 详细调试 ===")
        import re
        
        # 测试不同的小数模式
        patterns_to_test = [
            r'\d+\.\d+',           # 基本小数模式
            r'\b\d+\.\d+\b',       # 带边界的小数
            r'(?<!\d)\d+\.\d+(?!\d)', # 前后没有数字
            r'\d{2,}\.\d{3,}',     # 至少2位.至少3位
            r'60\.98098',          # 精确匹配
        ]
        
        clean_name = test_case['name']
        for i, pattern in enumerate(patterns_to_test, 1):
            matches = re.findall(pattern, clean_name)
            print(f"模式 {i} ({pattern}): {matches}")

if __name__ == "__main__":
    test_decimal_code()