|
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 |