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