idea83-mercuriusmesh-cross-.../tests/test_partitioned_delivery.py

28 lines
953 B
Python

from mercuriusmesh.adapters import ToyVenueAdapter
from mercuriusmesh.contracts import OrderEvent
from mercuriusmesh.simulator import DeterministicSimulator
def test_partitioned_orders_flush_after_reconnect():
sim = DeterministicSimulator(seed=7)
sim.add_adapter(ToyVenueAdapter("V1", initial_bid=100.0, initial_ask=100.5))
sim.set_link("V1", connected=False)
order = OrderEvent(order_id="queued-1", venue_id="V1", asset="TEST/USD", side="buy", price=None, size=3)
queued = sim.submit_order(order)
assert queued.status == "queued"
before = sim.compute_shared_signals()
sim.set_link("V1", connected=True, latency_ms=2)
assert queued.status == "accepted"
sim.advance(1)
mid = sim.compute_shared_signals()
assert mid.mid_price == before.mid_price
sim.advance(1)
after = sim.compute_shared_signals()
assert after.mid_price != before.mid_price
assert after.liquidity == before.liquidity