import os import sys import time # Ensure the package can be imported when tests run from repo root without installation ROOT = os.path.abspath(os.path.join(os.path.dirname(__file__), "..")) SRC = os.path.join(ROOT, "src") if SRC not in sys.path: sys.path.insert(0, SRC) from idea147_greekshub_federated_cross.core import LocalHedgeProblem, SharedGreeks, PlanDelta from idea147_greekshub_federated_cross.coordinator import AdmmLiteCoordinator def test_coordinator_accumulates_signals_and_creates_delta(): # Minimal integration test for MVP coord = AdmmLiteCoordinator() # Two venues produce signals sig1 = SharedGreeks(total_delta=1.25, total_gamma=0.5, total_vega=0.2) sig2 = SharedGreeks(total_delta=-0.75, total_gamma=0.3, total_vega=0.1) coord.ingest(sig1) coord.ingest(sig2) # Create a delta plan for a cross-venue hedge action pd = coord.plan_delta(delta_change=0.5, venue=None) assert isinstance(pd, PlanDelta) assert coord.delta_log[-1] is pd