There are no benchmark tests for core operations like string parsing, bytes parsing, string formatting, or protocol iteration.
Proposed Solution
Add tests/test_benchmarks.py:
import pytest
from multiaddr import Multiaddr
BENCH_ADDR = "/ip4/1.2.3.4/tcp/80/p2p/QmSoLV4Bbm51jM9C4gDYZQ9Cy3U6aXMJDAbzgu2fkaDs"
@pytest.mark.benchmark
def test_bench_from_string(benchmark):
benchmark(Multiaddr, BENCH_ADDR)
@pytest.mark.benchmark
def test_bench_to_string(benchmark):
ma = Multiaddr(BENCH_ADDR)
benchmark(str, ma)
@pytest.mark.benchmark
def test_bench_to_bytes(benchmark):
ma = Multiaddr(BENCH_ADDR)
benchmark(ma.to_bytes)
@pytest.mark.benchmark
def test_bench_protocols(benchmark):
ma = Multiaddr(BENCH_ADDR)
benchmark(lambda: list(ma.protocols()))
@pytest.mark.benchmark
def test_bench_encapsulate(benchmark):
ma1 = Multiaddr("/ip4/1.2.3.4")
ma2 = Multiaddr("/tcp/80")
benchmark(ma1.encapsulate, ma2)
@pytest.mark.benchmark
def test_bench_decapsulate(benchmark):
ma = Multiaddr("/ip4/1.2.3.4/tcp/80")
benchmark(ma.decapsulate, "/tcp/80")
Related
- Dev dependency to add:
pytest-benchmark
There are no benchmark tests for core operations like string parsing, bytes parsing, string formatting, or protocol iteration.
Proposed Solution
Add
tests/test_benchmarks.py:Related
pytest-benchmark