deltatrace-deterministic-re.../tests/test_replay.py

36 lines
1.1 KiB
Python

import pytest
from deltatrace.replay import DeterministicReplayEngine
def test_deterministic_ordering_same_input_yields_same_order():
delta = [
{"id": "b", "type": "OrderEvent", "timestamp": 1.0, "payload": {}},
{"id": "a", "type": "LocalEvent", "timestamp": 1.0, "payload": {}},
]
eng1 = DeterministicReplayEngine(delta, seed=123)
out1 = eng1.run()
eng2 = DeterministicReplayEngine(delta, seed=123)
out2 = eng2.run()
assert out1["ordered_events"] == out2["ordered_events"]
def test_deterministic_ordering_tie_breaker_consistent():
delta1 = [
{"id": "b", "type": "OrderEvent", "timestamp": 1.0, "payload": {}},
{"id": "a", "type": "LocalEvent", "timestamp": 1.0, "payload": {}},
]
delta2 = [
{"id": "a", "type": "LocalEvent", "timestamp": 1.0, "payload": {}},
{"id": "b", "type": "OrderEvent", "timestamp": 1.0, "payload": {}},
]
eng1 = DeterministicReplayEngine(delta1, seed=42)
out1 = eng1.run()
eng2 = DeterministicReplayEngine(delta2, seed=42)
out2 = eng2.run()
assert out1["ordered_events"] == out2["ordered_events"]