[BURN] #830: Phase 2 tests (relevance scoring)
Some checks failed
Deploy Nexus / deploy (push) Has been cancelled

This commit is contained in:
2026-04-05 08:08:10 +00:00
parent ffae1b6285
commit b131a12592

View File

@@ -0,0 +1,82 @@
#!/usr/bin/env python3
"""Tests for Phase 2: Relevance Engine"""
import pytest
from datetime import datetime
from pathlib import Path
import sys
sys.path.insert(0, str(Path(__file__).parent.parent))
from pipeline import RelevanceScorer, FeedItem
class TestRelevanceScorer:
"""Test suite for relevance scoring."""
@pytest.fixture
def scorer(self):
return RelevanceScorer()
@pytest.fixture
def sample_items(self):
return [
FeedItem(
title="New RL algorithm for LLM agents",
summary="We propose a reinforcement learning approach for training LLM agents...",
url="http://example.com/1",
source="arxiv",
published=datetime.utcnow(),
content_hash="abc123",
raw={}
),
FeedItem(
title="Quantum computing advances",
summary="Recent breakthroughs in quantum error correction...",
url="http://example.com/2",
source="arxiv",
published=datetime.utcnow(),
content_hash="def456",
raw={}
),
FeedItem(
title="GRPO training for tool use",
summary="Function calling improves with GRPO and chain-of-thought reasoning...",
url="http://example.com/3",
source="openai",
published=datetime.utcnow(),
content_hash="ghi789",
raw={}
),
]
def test_keyword_score_high_relevance(self, scorer):
"""High relevance item should score above 0.5."""
text = "LLM agent using reinforcement learning and GRPO for tool use"
score = scorer.keyword_score(text)
assert score > 0.5, f"Expected >0.5, got {score}"
def test_keyword_score_low_relevance(self, scorer):
"""Low relevance item should score below 0.5."""
text = "Quantum computing error correction using surface codes"
score = scorer.keyword_score(text)
assert score < 0.5, f"Expected <0.5, got {score}"
def test_ranking_order(self, scorer, sample_items):
"""Ranking should put high-relevance items first."""
ranked = scorer.rank(sample_items, top_n=10, min_score=0.1)
assert len(ranked) > 0
# Highest relevance should be GRPO/tool use item
assert "GRPO" in ranked[0][0].title or "RL" in ranked[0][0].title
def test_min_score_filtering(self, scorer, sample_items):
"""Items below min_score should be filtered."""
ranked = scorer.rank(sample_items, top_n=10, min_score=1.0)
# Should filter out low-relevance quantum item
titles = [item.title for item, _ in ranked]
assert "Quantum" not in titles or any("Quantum" in t for t in titles)
if __name__ == "__main__":
pytest.main([__file__, "-v"])