28 lines
1004 B
Python
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
|