import numpy as np import pytest from semantica.export.vector_exporter import VectorExporter @pytest.mark.benchmark(group="vector_io") @pytest.mark.parametrize("count", [1000, 10000]) def test_numpy_compression_speed(benchmark, tmp_path, generate_vectors, count): """ Measures cost of np.savez_compressed. """ vectors = generate_vectors(count) exporter = VectorExporter(format="numpy") output_file = tmp_path / "vectors.npz" def run(): exporter.export(vectors, output_file) benchmark(run) @pytest.mark.benchmark(group="vector_io") def test_json_vector_overhead(benchmark, tmp_path, generate_vectors): """ Benchmarks JSON export for vectors. """ vectors = generate_vectors(2000) exporter = VectorExporter(format="json") output_file = tmp_path / "vectors.json" def run(): exporter.export(vectors, output_file) benchmark(run) @pytest.mark.benchmark(group="vector_io") def test_binary_raw_throughput(benchmark, tmp_path, generate_vectors): """ Measures raw binary dump speed (no compression, no metadata). """ vectors = generate_vectors(10000) exporter = VectorExporter(format="binary") output_file = tmp_path / "vectors.bin" def run(): exporter.export(vectors, output_file) benchmark(run)