import pytest from semantica.export.graph_exporter import GraphExporter @pytest.mark.benchmark(group="vis_export") @pytest.mark.parametrize("format", ["graphml", "gexf"]) def test_graph_conversion_overhead( benchmark, tmp_path, generate_knowledge_graph, format ): """ Measures the cost of converting internal KG structure to XML-based graph formats. Includes dictionary traversal and XML string building. """ kg = generate_knowledge_graph(2000) exporter = GraphExporter(format=format) output_file = tmp_path / f"graph.{format}" def run(): exporter.export_knowledge_graph(kg, output_file) benchmark(run)