idea144-crossvenuearbx-fede.../tests/test_core.py

32 lines
976 B
Python

import time
import os
import sys
BASE = os.path.abspath(os.path.join(os.path.dirname(__file__), ".."))
if BASE not in sys.path:
sys.path.insert(0, BASE)
from crossvenue_arbx.core import LocalArbProblem, SharedSignals, PlanDelta
def test_local_arb_problem_serialization():
p = LocalArbProblem(
id="v1-p1",
venue="VenueA",
assets=["AAPL", "MSFT"],
target_misprice=0.001,
max_exposure=1000.0,
latency_budget=0.1,
)
d = p.to_dict()
assert d["id"] == "v1-p1"
assert d["venue"] == "VenueA"
assert d["assets"] == ["AAPL", "MSFT"]
def test_shared_signals_merge_basic():
s1 = SharedSignals(version=1, price_delta_by_asset={"AAPL": 0.001, "MSFT": -0.0003})
s2 = SharedSignals(version=2, price_delta_by_asset={"AAPL": 0.0008, "MSFT": -0.0005})
merged = s1.merge(s2)
assert merged.version >= 2
assert "AAPL" in merged.price_delta_by_asset
assert "MSFT" in merged.price_delta_by_asset