idea65-edgemarketsignal-edg.../tests/test_core.py

29 lines
895 B
Python

import math
import sys, os
# Ensure src is on sys.path for test imports when running from repo root
SRC_PATH = os.path.abspath(os.path.join(os.path.dirname(__file__), "..", "src"))
if SRC_PATH not in sys.path:
sys.path.insert(0, SRC_PATH)
try:
from edgemarketsignal.core import EdgeSignalProcessor, SharedSignals
except Exception:
from edgemarketsignal.core import EdgeSignalProcessor, SharedSignals
def test_extract_signals_basic():
feed = {
"venue": "A",
"best_bid": (100.0, 5), # price, size
"best_ask": (100.5, 6),
"last_trade": (100.2, 1),
}
sig = EdgeSignalProcessor.extract_signals(feed)
assert isinstance(sig, SharedSignals)
# mid-price should be average of bid/ask
assert math.isclose(sig.mid_price, 100.25, rel_tol=1e-6)
# liquidity is sum of sizes
assert sig.liquidity == 11
assert sig.venue == "A"