98 lines
3.7 KiB
Python
Raw Normal View History

2025-11-04 05:57:23 +01:00
from pr.core.advanced_context import AdvancedContextManager
2025-11-04 08:09:12 +01:00
class TestAdvancedContextManager:
def setup_method(self):
self.manager = AdvancedContextManager()
def test_init(self):
manager = AdvancedContextManager(knowledge_store="test", conversation_memory="test")
assert manager.knowledge_store == "test"
assert manager.conversation_memory == "test"
def test_adaptive_context_window_simple(self):
messages = [{"content": "short message"}]
result = self.manager.adaptive_context_window(messages, "simple")
assert result >= 10
def test_adaptive_context_window_medium(self):
messages = [{"content": "medium length message with some content"}]
result = self.manager.adaptive_context_window(messages, "medium")
assert result >= 20
def test_adaptive_context_window_complex(self):
messages = [
{
"content": "very long and complex message with many words and detailed information about various topics"
}
]
result = self.manager.adaptive_context_window(messages, "complex")
assert result >= 35
def test_adaptive_context_window_very_complex(self):
messages = [
{
"content": "extremely long and very complex message with extensive vocabulary and detailed explanations"
}
]
result = self.manager.adaptive_context_window(messages, "very_complex")
assert result >= 50
def test_adaptive_context_window_unknown_complexity(self):
messages = [{"content": "test"}]
result = self.manager.adaptive_context_window(messages, "unknown")
assert result >= 20
def test_analyze_message_complexity(self):
messages = [{"content": "This is a test message with some words."}]
result = self.manager._analyze_message_complexity(messages)
assert 0.0 <= result <= 1.0
def test_analyze_message_complexity_empty(self):
messages = []
result = self.manager._analyze_message_complexity(messages)
assert result == 0.0
def test_extract_key_sentences(self):
text = "First sentence. Second sentence is longer and more detailed. Third sentence."
result = self.manager.extract_key_sentences(text, top_k=2)
assert len(result) <= 2
assert all(isinstance(s, str) for s in result)
def test_extract_key_sentences_empty(self):
text = ""
result = self.manager.extract_key_sentences(text)
assert result == []
def test_advanced_summarize_messages(self):
messages = [
{"content": "First message with important information."},
{"content": "Second message with more details."},
]
result = self.manager.advanced_summarize_messages(messages)
assert isinstance(result, str)
assert len(result) > 0
def test_advanced_summarize_messages_empty(self):
messages = []
result = self.manager.advanced_summarize_messages(messages)
assert result == "No content to summarize."
def test_score_message_relevance(self):
message = {"content": "test message"}
context = "test context"
result = self.manager.score_message_relevance(message, context)
assert 0.0 <= result <= 1.0
def test_score_message_relevance_no_overlap(self):
message = {"content": "apple banana"}
context = "orange grape"
result = self.manager.score_message_relevance(message, context)
assert result == 0.0
def test_score_message_relevance_empty(self):
message = {"content": ""}
context = ""
result = self.manager.score_message_relevance(message, context)
assert result == 0.0