Files
dataClean/tests/test_scorer.py
T
2026-06-12 16:04:03 +08:00

47 lines
1.6 KiB
Python

"""打分模块测试"""
from datetime import datetime
from app.scorer import compute_heat_score, compute_importance_score, compute_duplication_score, compute_composite_score, score_articles
from models import EnrichedArticle, Taxonomy, DuplicateGroup
def test_compute_heat_score():
rules = [Taxonomy(name="AI", kind="heat_rule", keywords=["AI", "大模型"], weight=1.5)]
article = EnrichedArticle(title="OpenAI 发布 GPT-5 大模型")
score = compute_heat_score(article, rules)
assert score > 0
def test_compute_importance_score():
rules = [Taxonomy(name="政策", kind="importance_rule", keywords=["政策", "监管"], weight=2.0)]
article = EnrichedArticle(title="新政策发布,加强 AI 监管")
score = compute_importance_score(article, rules)
assert score > 0
def test_compute_duplication_score():
assert compute_duplication_score(1) == 0.0
assert compute_duplication_score(5) == 100.0
def test_compute_composite_score():
score = compute_composite_score(50, 80, 30)
expected = 50 * 0.3 + 80 * 0.5 + 30 * 0.2
assert score == round(expected, 2)
def test_score_articles_integration(db):
db.add_all([
Taxonomy(name="AI", kind="heat_rule", keywords=["AI"], weight=1.5),
Taxonomy(name="政策", kind="importance_rule", keywords=["政策"], weight=2.0),
])
article = EnrichedArticle(rk_article_id=1, title="AI 新政策发布")
db.add(article)
db.commit()
score_articles(db, article_ids=[article.id])
assert article.heat_score > 0
assert article.importance_score > 0
assert article.composite_score > 0