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