#!/usr/bin/env python3
"""
测试Maison Margiela和MM6品牌提取逻辑
"""

import sys
import os
sys.path.append(os.path.join(os.path.dirname(__file__), 'backend'))

from app.utils.text_parser import BrandExtractor

def test_maison_margiela_extraction():
    """测试Maison Margiela和MM6品牌提取"""
    
    extractor = BrandExtractor()
    
    test_cases = [
        # MM6相关 - 应该都返回MM6
        ("MM6 Maison Margiela 女款黑色连衣裙", "MM6"),
        ("Maison Margiela MM6 白色运动鞋", "MM6"),
        ("MM6 黑色手提包", "MM6"),
        ("女款 MM6 MAISON MARGIELA 连帽卫衣", "MM6"),
        ("mm6 maison margiela 小写测试", "MM6"),
        ("【现货】MM6 Maison Margiela 2024春夏新款", "MM6"),
        
        # 纯Maison Margiela - 应该返回Maison Margiela
        ("Maison Margiela 女款黑色连衣裙", "Maison Margiela"),
        ("MAISON MARGIELA 白色运动鞋", "Maison Margiela"),
        ("maison margiela 小写测试", "Maison Margiela"),
        ("拍小1码！Maison Margiela 足球鞋", "Maison Margiela"),
        ("【现货】Maison Margiela 2024春夏新款", "Maison Margiela"),
        ("Maison Margiela Tabi分趾鞋", "Maison Margiela"),
        
        # 其他Maison品牌 - 不应该返回Maison Margiela
        ("Maison Kitsune 狐狸T恤", None),  # 应该提取Maison Kitsune
        ("Maison Francis Kurkdjian 香水", None),  # 应该提取Maison Francis Kurkdjian
        
        # 其他品牌测试
        ("Vince 女款连衣裙", "Vince"),
        ("Kenzo 老虎头T恤", "Kenzo"),
        ("Alexander Wang 手提包", "Alexander Wang"),
    ]
    
    print("=" * 60)
    print("Maison Margiela和MM6品牌提取测试")
    print("=" * 60)
    
    passed = 0
    failed = 0
    
    for product_name, expected in test_cases:
        result = extractor.extract_brand(product_name)
        
        # 对于None期望值，只要不是Maison Margiela就算通过
        if expected is None:
            is_pass = result != 'Maison Margiela'
        else:
            is_pass = result == expected
        
        if is_pass:
            passed += 1
            status = "✅"
        else:
            failed += 1
            status = "❌"
        
        print(f"{status} 输入: {product_name}")
        print(f"   期望: {expected if expected else '不是Maison Margiela'}")
        print(f"   结果: {result}")
        print()
    
    print("=" * 60)
    print(f"测试结果: {passed} 通过, {failed} 失败")
    
    if failed == 0:
        print("✅ 所有测试通过！")
        print("   - MM6相关产品 → MM6")
        print("   - 纯Maison Margiela → Maison Margiela")
        print("   - 其他Maison品牌 → 各自品牌")
    else:
        print("❌ 存在测试失败，需要检查逻辑。")
    print("=" * 60)

if __name__ == "__main__":
    test_maison_margiela_extraction()