81 lines
2.9 KiB
Python
Raw Normal View History

2025-11-04 05:57:23 +01:00
import pytest
from pr.core.advanced_context import AdvancedContextManager
def test_adaptive_context_window_simple():
mgr = AdvancedContextManager()
messages = [{'content': 'short'}, {'content': 'this is a longer message with more words'}]
window = mgr.adaptive_context_window(messages, 'simple')
assert isinstance(window, int)
assert window >= 10
def test_adaptive_context_window_medium():
mgr = AdvancedContextManager()
messages = [{'content': 'short'}, {'content': 'this is a longer message with more words'}]
window = mgr.adaptive_context_window(messages, 'medium')
assert isinstance(window, int)
assert window >= 20
def test_adaptive_context_window_complex():
mgr = AdvancedContextManager()
messages = [{'content': 'short'}, {'content': 'this is a longer message with more words'}]
window = mgr.adaptive_context_window(messages, 'complex')
assert isinstance(window, int)
assert window >= 35
def test_analyze_message_complexity():
mgr = AdvancedContextManager()
messages = [{'content': 'hello world'}, {'content': 'hello again'}]
score = mgr._analyze_message_complexity(messages)
assert 0 <= score <= 1
def test_analyze_message_complexity_empty():
mgr = AdvancedContextManager()
messages = []
score = mgr._analyze_message_complexity(messages)
assert score == 0
def test_extract_key_sentences():
mgr = AdvancedContextManager()
text = "This is the first sentence. This is the second sentence. This is a longer third sentence with more words."
sentences = mgr.extract_key_sentences(text, 2)
assert len(sentences) <= 2
assert all(isinstance(s, str) for s in sentences)
def test_extract_key_sentences_empty():
mgr = AdvancedContextManager()
text = ""
sentences = mgr.extract_key_sentences(text, 5)
assert sentences == []
def test_advanced_summarize_messages():
mgr = AdvancedContextManager()
messages = [{'content': 'Hello'}, {'content': 'How are you?'}]
summary = mgr.advanced_summarize_messages(messages)
assert isinstance(summary, str)
def test_advanced_summarize_messages_empty():
mgr = AdvancedContextManager()
messages = []
summary = mgr.advanced_summarize_messages(messages)
assert summary == "No content to summarize."
def test_score_message_relevance():
mgr = AdvancedContextManager()
message = {'content': 'hello world'}
context = 'world hello'
score = mgr.score_message_relevance(message, context)
assert 0 <= score <= 1
def test_score_message_relevance_no_overlap():
mgr = AdvancedContextManager()
message = {'content': 'hello'}
context = 'world'
score = mgr.score_message_relevance(message, context)
assert score == 0
def test_score_message_relevance_empty():
mgr = AdvancedContextManager()
message = {'content': ''}
context = ''
score = mgr.score_message_relevance(message, context)
assert score == 0