36 lines
1.1 KiB
Python
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"]
|