SPB Git forge

spb/hfmarketdata

Public

Open high-frequency market data platform — FirstRate full-history downloader, DuckDB/Parquet lake, open REST API and React docs platform (www.hfmarketdata.io)

127commits 1branches 0releases
24.7 MBsize
maindefault branch
11 days agolast push
JavaScript 53.7% Python 38.3% CSS 4.6% TypeScript 3.1%
1.6 KB · 47 lines python
Raw Blame History
1"""Performance smoke check — 10 000 bars of one contract (and of a continuous series) under 300 ms (p95 target)."""2from __future__ import annotations34import time5from datetime import date67import pytest89BUDGET_MS = 300101112@pytest.fixture13def warm(client_hu, app):14    from futures.backfill import run_backfill15    run_backfill(today=date(2025, 7, 1))16    client_hu.get("/v1/futures/contract/ESU25/bars?interval=1m&limit=10")          # warm DuckDB / caches17    client_hu.get("/v1/futures/ES/continuous?interval=1m&from=2025-05-01&limit=10")18    return True192021def _timed(client_hu, url: str, runs: int = 5) -> float:22    best = float("inf")23    for _ in range(runs):24        t = time.perf_counter()25        r = client_hu.get(url)26        best = min(best, (time.perf_counter() - t) * 1000)27        assert r.status_code == 200 and r.headers["X-Row-Count"] == "10000"28    return best293031@pytest.mark.slow32def test_contract_10k_bars_under_budget(client_hu, warm):33    ms = _timed(client_hu, "/v1/futures/contract/ESU25/bars?interval=1m&limit=10000")34    assert ms < BUDGET_MS, f"10 000 contract bars took {ms:.0f} ms"353637@pytest.mark.slow38def test_continuous_10k_bars_under_budget(client_hu, warm):39    ms = _timed(client_hu, "/v1/futures/ES/continuous?interval=1m&from=2025-05-01&limit=10000")40    assert ms < BUDGET_MS, f"10 000 continuous bars took {ms:.0f} ms"414243@pytest.mark.slow44def test_parquet_10k_under_budget(client_hu, warm):45    ms = _timed(client_hu, "/v1/futures/contract/ESU25/bars?interval=1m&limit=10000&format=parquet")46    assert ms < BUDGET_MS, f"10 000 parquet bars took {ms:.0f} ms"47