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