idea147-greekshub-federated.../tests/test_greeks_hub.py

28 lines
1004 B
Python

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