34 lines
1.0 KiB
Python
34 lines
1.0 KiB
Python
from crossvenue_arbx.fuzz import ScenarioGenerator, ReplayRunner
|
|
|
|
|
|
def test_replay_determinism_same_seed():
|
|
gen = ScenarioGenerator(seed=42)
|
|
events = gen.generate(steps=20)
|
|
|
|
runner1 = ReplayRunner()
|
|
log1, final1 = runner1.run(events)
|
|
|
|
runner2 = ReplayRunner()
|
|
# regenerate to ensure fresh objects but same seed
|
|
gen2 = ScenarioGenerator(seed=42)
|
|
events2 = gen2.generate(steps=20)
|
|
log2, final2 = runner2.run(events2)
|
|
|
|
assert log1 == log2, "Replay logs must be identical for same seed"
|
|
assert final1 == final2, "Final plan signature must match for same seed"
|
|
|
|
|
|
def test_replay_variation_different_seed():
|
|
gen = ScenarioGenerator(seed=1)
|
|
events = gen.generate(steps=20)
|
|
runner = ReplayRunner()
|
|
log1, final1 = runner.run(events)
|
|
|
|
genb = ScenarioGenerator(seed=2)
|
|
eventsb = genb.generate(steps=20)
|
|
runnerb = ReplayRunner()
|
|
log2, final2 = runnerb.run(eventsb)
|
|
|
|
# usually different seeds will produce different logs or final plan
|
|
assert (log1 != log2) or (final1 != final2)
|