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"