"""
测试数据示例
提供各种测试场景的示例数据
"""

# 正常的施工方案内容
NORMAL_REVIEW_CONTENT = """
第一章 工程概况

1.1 项目基本信息
本工程为四川省会理至禄劝高速公路项目，路线全长约120公里，设计速度80km/h，
路基宽度24.5米，双向四车道。主要工程内容包括路基工程、桥梁工程、隧道工程等。

1.2 施工范围
本标段起讫桩号为K0+000～K30+000，主要包括：
- 路基土石方工程约200万立方米
- 桥梁工程5座，总长约2000米
- 涵洞工程20道
- 路面工程约30公里

1.3 工期安排
计划工期：24个月
开工日期：2024年3月1日
竣工日期：2026年2月28日
"""

# 带有逻辑问题的内容
LOGIC_ERROR_CONTENT = """
第二章 施工方案

2.1 施工顺序
本工程采用先上后下的施工顺序，首先进行桥梁上部结构施工，然后进行桥墩基础施工。
（注：这里存在逻辑错误，应该先施工基础再施工上部结构）

2.2 工期安排
本工程计划工期为6个月，但根据施工内容分析，实际需要至少12个月才能完成。
（注：工期安排不合理）
"""

# 空内容
EMPTY_CONTENT = ""

# 超长内容
VERY_LONG_CONTENT = """
第三章 施工技术方案
""" + "\n".join([f"3.{i} 施工工艺详细说明第{i}条，包含大量技术细节和参数..." * 10 for i in range(1, 1001)])

# 特殊字符内容
SPECIAL_CHARS_CONTENT = """
特殊字符测试：
- 符号：@#$%^&*()_+-={}[]|\\:;"'<>,.?/~`
- 数学符号：±×÷≈≠≤≥∞∑∫√
- 单位符号：℃、㎡、㎥、㎏、㎜
- 其他：①②③④⑤⑥⑦⑧⑨⑩
"""

# Unicode 多语言内容
UNICODE_CONTENT = """
多语言测试：
- 中文：施工方案审查
- English: Construction Plan Review
- 日本語：建設計画レビュー
- 한국어: 건설 계획 검토
- Русский: Обзор плана строительства
- العربية: مراجعة خطة البناء
- Emoji: 🚧🏗️👷‍♂️📋✅❌
"""

# 参考标准示例
REFERENCE_STANDARDS = """
参考标准：
1. 《公路工程技术标准》JTG B01-2014
2. 《公路桥涵施工技术规范》JTG/T 3650-2020
3. 《公路路基施工技术规范》JTG/T 3610-2019
4. 《公路工程质量检验评定标准》JTG F80/1-2017
"""

# 审查位置标签示例
REVIEW_LOCATIONS = [
    "第一章 工程概况",
    "第二章 施工方案",
    "第三章 质量保证措施",
    "第四章 安全保证措施",
    "第五章 环境保护措施",
]

# Trace ID 示例
TRACE_IDS = [
    "semantic_check_001",
    "semantic_check_002",
    "semantic_check_003",
]

# 模拟的 API 响应
MOCK_API_RESPONSES = {
    "success": "审查结果：内容逻辑清晰，结构合理，符合规范要求。未发现明显问题。",
    "with_issues": """
审查结果：发现以下问题：
1. 施工顺序存在逻辑错误，应先进行基础施工再进行上部结构施工
2. 工期安排不合理，建议调整为12个月
3. 缺少安全措施的详细说明
    """,
    "empty": "内容为空，无法进行审查。",
    "error": "审查失败：API 连接超时",
}

# 状态字典示例
def create_mock_state():
    """创建模拟的状态字典"""
    from unittest.mock import AsyncMock
    
    mock_progress_manager = AsyncMock()
    mock_progress_manager.update_stage_progress = AsyncMock()
    
    return {
        "progress_manager": mock_progress_manager,
        "callback_task_id": "test_callback_task_123",
        "session_id": "test_session_456",
    }

# 测试场景配置
TEST_SCENARIOS = {
    "normal": {
        "content": NORMAL_REVIEW_CONTENT,
        "references": REFERENCE_STANDARDS,
        "location": REVIEW_LOCATIONS[0],
        "expected_success": True,
    },
    "logic_error": {
        "content": LOGIC_ERROR_CONTENT,
        "references": REFERENCE_STANDARDS,
        "location": REVIEW_LOCATIONS[1],
        "expected_success": True,
    },
    "empty": {
        "content": EMPTY_CONTENT,
        "references": "",
        "location": REVIEW_LOCATIONS[0],
        "expected_success": True,
    },
    "long": {
        "content": VERY_LONG_CONTENT,
        "references": REFERENCE_STANDARDS,
        "location": REVIEW_LOCATIONS[2],
        "expected_success": True,
    },
    "special_chars": {
        "content": SPECIAL_CHARS_CONTENT,
        "references": "",
        "location": REVIEW_LOCATIONS[3],
        "expected_success": True,
    },
    "unicode": {
        "content": UNICODE_CONTENT,
        "references": "",
        "location": REVIEW_LOCATIONS[4],
        "expected_success": True,
    },
}

