myrmidon / python /tests /services /test_stats_service.py
tek Atrust
chore(deploy): build monolithic server for Hugging Face
d5ef46f
Raw
History Blame Contribute Delete
1.29 kB
from src.server.services.stats import StatsService
def test_calculate_ai_score_grounded_logic():
stats = StatsService()
# 1. Test basic quality (Word count based)
assert stats.calculate_ai_score("Very short content") == 50 # < 50 words penalty
long_content = "Word " * 201 # 200+ words to pass all length checks
assert stats.calculate_ai_score(long_content) == 100
# 2. Test Technical Metadata (Phase 4.6.15 Physical indicators)
meta_fail = {"returncode": 1, "lint_passed": False}
# Length passes (100) - technical penalty (40 + 15) = 45
score_fail = stats.calculate_ai_score("Word " * 201, meta_fail)
assert score_fail == 45
meta_pass = {"returncode": 0, "lint_passed": True}
score_pass = stats.calculate_ai_score("Word " * 201, meta_pass)
assert score_pass == 100
# 3. Test required terms
meta_terms = {"required_terms": ["Archon"]}
# Length passes (100) - Missing keyword (10) = 90
assert stats.calculate_ai_score("Word " * 201, meta_terms) == 90
# Length passes (100) + Keyword (0 penalty) = 100
assert stats.calculate_ai_score("Word " * 201 + " Archon", meta_terms) == 100
# 4. Test Safety
assert stats.calculate_ai_score("This contains CONFIDENTIAL information." + " Word" * 200) == 50