You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

64 lines
2.6 KiB

import unittest
import os
import pandas as pd
from script_2_2 import count_ai_keywords
class TestCountAIKeywords(unittest.TestCase):
def setUp(self):
# 创建测试输入文件
self.test_input_file = 'test_input.txt'
with open(self.test_input_file, 'w', encoding='utf-8') as f:
f.write("AI is amazing\n")
f.write("机器学习的未来\n")
f.write("Deep learning is powerful\n")
f.write("自然语言处理和计算机视觉\n")
f.write("Robotics will change the world\n")
f.write("Automation is the key\n")
f.write("大数据和数据挖掘\n")
f.write("自动驾驶技术的发展\n")
# 输出 Excel 文件
self.test_output_file = 'test_output.xlsx'
def tearDown(self):
# 删除测试文件
if os.path.exists(self.test_input_file):
os.remove(self.test_input_file)
if os.path.exists(self.test_output_file):
os.remove(self.test_output_file)
def test_count_ai_keywords(self):
count_ai_keywords(self.test_input_file, self.test_output_file)
# 确保输出文件已创建
self.assertTrue(os.path.exists(self.test_output_file), "Excel 文件未创建")
# 读取输出的 Excel 文件
df = pd.read_excel(self.test_output_file)
# 检查 DataFrame 是否包含预期的关键词
ai_keywords = [
"AI", "人工智能", "Machine learning", "机器学习", "Deep learning", "深度学习",
"Neural network", "神经网络", "自然语言处理", "Natural language processing",
"计算机视觉", "Computer vision", "Robotics", "机器人", "自动化", "Automation",
"人脸识别", "Face recognition", "大数据", "数据挖掘", "智能系统", "自动驾驶", "无人驾驶"
]
# 获取 DataFrame 中存在的关键词列
existing_keywords = df.columns.tolist()
# 输出存在的关键词
print("存在的关键词列:", existing_keywords)
# 确保至少有一个关键词列存在
self.assertGreater(len(existing_keywords), 0, "Excel 文件中未包含任何关键词列")
# 检查每个存在的关键词列是否有弹幕数据
for keyword in existing_keywords:
self.assertGreater(len(df[keyword].dropna()), 0, f"关键词 {keyword} 的弹幕数应大于0")
if __name__ == '__main__':
unittest.main()