Files
semantica/benchmarks/core_processing/test_graph_building.py
T

57 lines
1.4 KiB
Python

from unittest.mock import MagicMock
import pytest
from semantica.context.context_graph import ContextGraph
def test_bulk_node_insertion(benchmark, node_batch):
"""
Benchmarks the overhead of adding nodes to in-memory graph.
"""
def setup_graph():
return (ContextGraph(),), {}
def run(graph_instance):
graph_instance.add_nodes(node_batch)
benchmark.pedantic(target=run, setup=setup_graph, rounds=50, iterations=1)
def test_bulk_edge_insertion(benchmark, node_batch, edge_batch):
"""
Benchmarks adding edges.
"""
def setup_graph_with_nodes():
g = ContextGraph()
g.add_nodes(node_batch)
return (g,), {}
def run(graph_instance):
graph_instance.add_edges(edge_batch)
benchmark.pedantic(
target=run, setup=setup_graph_with_nodes, rounds=50, iterations=1
)
def test_conversation_to_graph_conversion(benchmark, conversation_data):
"""
Benchmarks parsing conversation dicts into graph structures.
"""
def setup_clean_builder():
g = ContextGraph()
g.entity_linker = MagicMock()
return (g,), {}
def run(graph_instance):
return graph_instance.build_from_conversations(
conversation_data, link_entities=False
)
benchmark.pedantic(target=run, setup=setup_clean_builder, rounds=20, iterations=1)