-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtest_word_ai.py
More file actions
121 lines (91 loc) · 3.38 KB
/
test_word_ai.py
File metadata and controls
121 lines (91 loc) · 3.38 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Word AI Agent 测试脚本
"""
import os
import sys
from word_ai_agent import WordAIAgent, FormatRuleParser, MarkdownProcessor
def test_format_rule_parser():
"""测试排版规则解析器"""
print("测试排版规则解析器...")
parser = FormatRuleParser()
# 测试字号解析
result = parser.parse_font_size("小四")
assert abs(result.pt - 12) < 0.1
result = parser.parse_font_size("三号")
assert abs(result.pt - 16) < 0.1
result = parser.parse_font_size("14磅")
assert abs(result.pt - 14) < 0.1
# 测试间距解析
spacing = parser.parse_spacing("1行", 12)
assert abs(spacing.pt - 14.4) < 0.1 # 12 * 1.2
# 测试缩进解析
indent = parser.parse_indent("2字符", 12)
assert abs(indent.pt - 12) < 0.1 # 2 * 12 * 0.5
# 测试完整规则解析
rules_text = """标题一:字体 宋体,字号 小一,对齐方式 居中
正文:字体 宋体,字号 小四,首行缩进 2字符"""
rules = parser.parse_format_rules(rules_text)
assert "标题一" in rules
assert "正文" in rules
assert rules["标题一"]["font_name"] == "宋体"
assert rules["标题一"]["font_size"] == "小一"
assert rules["正文"]["first_line_indent"] == "2字符"
print("✓ 排版规则解析器测试通过")
def test_markdown_processor():
"""测试 Markdown 处理器"""
print("测试 Markdown 处理器...")
processor = MarkdownProcessor()
md_text = """# 标题一
这是正文。
## 标题二
另一段正文。"""
elements = processor.parse_markdown(md_text)
assert len(elements) == 4
assert elements[0]["type"] == "heading"
assert elements[0]["level"] == 1
assert elements[0]["text"] == "标题一"
assert elements[1]["type"] == "paragraph"
assert elements[1]["text"] == "这是正文。"
print("✓ Markdown 处理器测试通过")
def test_integration():
"""测试完整流程"""
print("测试完整流程...")
rules_text = """标题一:字体 宋体,字号 小一,对齐方式 居中
正文:字体 宋体,字号 小四,首行缩进 2字符"""
md_text = """# 测试文档
这是测试内容。"""
agent = WordAIAgent()
# 测试不会抛出异常
try:
# 只测试解析功能,不实际生成文档避免依赖问题
rules = agent.rule_parser.parse_format_rules(rules_text)
elements = agent.md_processor.parse_markdown(md_text)
assert "标题一" in rules
assert "正文" in rules
assert len(elements) == 2
print("✓ 完整流程测试通过")
return True
except Exception as e:
print(f"✗ 完整流程测试失败: {e}")
return False
def run_all_tests():
"""运行所有测试"""
print("Word AI Agent 测试套件")
print("=" * 30)
try:
test_format_rule_parser()
test_markdown_processor()
test_integration()
print("\n所有测试通过!")
return True
except AssertionError as e:
print(f"\n测试失败: {e}")
return False
except Exception as e:
print(f"\n测试过程中发生错误: {e}")
return False
if __name__ == "__main__":
success = run_all_tests()
sys.exit(0 if success else 1)