liurenchaxin/modules/legacy-support/test_enhanced_algorithm.py

76 lines
2.4 KiB
Python
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
增强版优先级算法测试脚本
"""
import sys
import os
from datetime import datetime
# 添加路径
sys.path.append(os.path.dirname(__file__))
try:
from src.jixia.debates.enhanced_priority_algorithm import EnhancedPriorityAlgorithm
print("✅ 算法导入成功!")
# 创建算法实例
algorithm = EnhancedPriorityAlgorithm()
print("✅ 算法实例创建成功!")
# 测试基本功能
context = {
"current_stage": "",
"stage_progress": 5,
"max_progress": 36,
"time_remaining": 0.7,
"topic_keywords": ["投资", "AI", "风险"],
"positive_team_score": 0.6,
"negative_team_score": 0.4
}
recent_speeches = [
{
"speaker": "正1",
"content": "根据最新数据显示AI投资确实带来了显著的收益增长",
"timestamp": datetime.now().isoformat(),
"team": "positive"
},
{
"speaker": "反1",
"content": "但是我们不能忽视其中的巨大风险,这种投资策略过于激进",
"timestamp": datetime.now().isoformat(),
"team": "negative"
}
]
available_speakers = ["正1", "正2", "正3", "正4", "反1", "反2", "反3", "反4"]
# 测试优先级计算
print("\n🧪 测试优先级计算...")
for speaker in available_speakers[:4]: # 测试前4个
priority = algorithm.calculate_speaker_priority(speaker, context, recent_speeches)
print(f" {speaker}: {priority:.3f}")
# 测试获取下一发言者
print("\n🎯 测试获取下一发言者...")
next_speaker, score, analysis = algorithm.get_next_speaker(available_speakers, context, recent_speeches)
print(f"推荐发言者: {next_speaker}")
print(f"优先级分数: {score:.3f}")
# 测试算法状态
print("\n📊 算法状态报告:")
status = algorithm.get_algorithm_status()
print(f"版本: {status['version']}")
print(f"跟踪发言者数量: {status['total_speakers_tracked']}")
print(f"算法组件: {status['algorithm_components']}")
print("\n🎉 所有测试通过!增强版优先级算法 v2.1.0 运行正常!")
except ImportError as e:
print(f"❌ 导入错误: {e}")
except Exception as e:
print(f"❌ 运行错误: {e}")
import traceback
traceback.print_exc()