mirror of
https://github.com/semantica-agi/semantica.git
synced 2026-08-29 04:26:20 +00:00
41 lines
1.1 KiB
Python
41 lines
1.1 KiB
Python
import pytest
|
|
|
|
from semantica.context.agent_memory import AgentMemory
|
|
|
|
|
|
@pytest.mark.benchmark(group="memory_io")
|
|
def test_memory_storage_overhead(benchmark, mock_vector_store):
|
|
"""
|
|
Benchmarks storing a memory item.
|
|
"""
|
|
memory = AgentMemory(vector_store=mock_vector_store)
|
|
content = "This is nothing burger for benchmarking this memory thingy."
|
|
metadata = {"type": "conversation", "user": "u_1"}
|
|
|
|
def run():
|
|
return memory.store(content, metadata=metadata)
|
|
|
|
benchmark.pedantic(run, iterations=10, rounds=10)
|
|
|
|
|
|
@pytest.mark.benchmark(group="memory_io")
|
|
def test_short_term_pruning(benchmark, mock_vector_store):
|
|
"""
|
|
Benchmarks the pruning logic when short-term memory
|
|
limit is hit.
|
|
"""
|
|
|
|
def setup_overfilled_memory():
|
|
memory = AgentMemory(vector_store=mock_vector_store, short_term_limit=50)
|
|
# Pre-fill
|
|
for i in range(55):
|
|
memory.store(f"filler memory {i}")
|
|
return (memory,), {}
|
|
|
|
def run_prune(mem_instance):
|
|
mem_instance.store("Trigger Pruning")
|
|
|
|
benchmark.pedantic(
|
|
target=run_prune, setup=setup_overfilled_memory, iterations=1, rounds=20
|
|
)
|