llm-arena / tests /test_memory.py
IntimateUser6969's picture
feat{Gradio_UI + Frontier.+ OSS Model added}
45f3fab
Raw
History Blame Contribute Delete
2.4 kB
"""Unit tests for ConversationMemory."""
import sys
import os
sys.path.insert(0, os.path.join(os.path.dirname(__file__), ".."))
from src.memory.conversation_memory import ConversationMemory
def test_add_messages():
"""Messages added via add_user_message / add_assistant_message appear in get_history."""
mem = ConversationMemory(max_turns=5)
mem.add_user_message("Hello")
mem.add_assistant_message("Hi there!")
history = mem.get_history()
assert len(history) == 2
assert history[0] == {"role": "user", "content": "Hello"}
assert history[1] == {"role": "assistant", "content": "Hi there!"}
def test_max_turns_sliding_window():
"""When more than max_turns are added, the oldest messages are dropped."""
mem = ConversationMemory(max_turns=2)
# Add 3 complete turns (6 messages); maxlen = 4 → oldest 2 messages dropped
mem.add_user_message("turn1-user")
mem.add_assistant_message("turn1-assistant")
mem.add_user_message("turn2-user")
mem.add_assistant_message("turn2-assistant")
mem.add_user_message("turn3-user")
mem.add_assistant_message("turn3-assistant")
history = mem.get_history()
assert len(history) == 4 # only last 2 turns kept
assert history[0]["content"] == "turn2-user"
assert history[1]["content"] == "turn2-assistant"
assert history[2]["content"] == "turn3-user"
assert history[3]["content"] == "turn3-assistant"
def test_clear():
"""After clear(), get_history() returns an empty list."""
mem = ConversationMemory(max_turns=5)
mem.add_user_message("Hello")
mem.add_assistant_message("Hi!")
mem.clear()
assert mem.get_history() == []
assert len(mem) == 0
def test_turn_count():
"""turn_count property returns number of complete user-assistant pairs."""
mem = ConversationMemory(max_turns=10)
assert mem.turn_count == 0
mem.add_user_message("Q1")
assert mem.turn_count == 0 # incomplete turn
mem.add_assistant_message("A1")
assert mem.turn_count == 1
mem.add_user_message("Q2")
mem.add_assistant_message("A2")
assert mem.turn_count == 2
def test_len():
"""__len__ returns total number of individual messages."""
mem = ConversationMemory(max_turns=10)
assert len(mem) == 0
mem.add_user_message("Hello")
assert len(mem) == 1
mem.add_assistant_message("Hi")
assert len(mem) == 2