mirror of
https://github.com/rr-/pq-cli.git
synced 2026-11-12 22:40:36 -07:00
tests: add a recipe to re-record parity traces
This commit is contained in:
3 files changed
+21
-8
No files matched your search
@@ -1,5 +1,6 @@
|
||||
import datetime
|
||||
import typing as T
|
||||
from pathlib import Path
|
||||
|
||||
from pqcli import random
|
||||
from pqcli.config import StatType
|
||||
@@ -67,3 +68,15 @@ def run_trace(seed: str, ticks: int = 3000) -> T.List[str]:
|
||||
for quest in player.quest_book.quests:
|
||||
lines.append(f"quest: {quest}")
|
||||
return lines
|
||||
|
||||
|
||||
SEEDS = ["alpha", "beta", "gamma"]
|
||||
FIXTURES = Path(__file__).parent / "fixtures"
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
# Re-record the parity fixtures. Only do this on purpose, when a change
|
||||
# is meant to alter gameplay.
|
||||
for seed in SEEDS:
|
||||
lines = run_trace(seed)
|
||||
(FIXTURES / f"parity_{seed}.txt").write_text("\n".join(lines) + "\n")
|
||||
@@ -1,14 +1,10 @@
|
||||
from pathlib import Path
|
||||
|
||||
import pytest
|
||||
from game_trace import run_trace
|
||||
|
||||
FIXTURES = Path(__file__).parent / "fixtures"
|
||||
from game_trace import FIXTURES, SEEDS, run_trace
|
||||
|
||||
|
||||
@pytest.mark.parametrize("seed", ["alpha", "beta", "gamma"])
|
||||
@pytest.mark.parametrize("seed", SEEDS)
|
||||
def test_gameplay_matches_recorded_trace(seed: str) -> None:
|
||||
# The fixtures were recorded before the word lists moved to data files;
|
||||
# stock data must reproduce them exactly, RNG stream included.
|
||||
# The fixtures pin down gameplay, RNG stream included. When a change is
|
||||
# meant to alter gameplay, re-record them with `just record-traces`.
|
||||
expected = (FIXTURES / f"parity_{seed}.txt").read_text().splitlines()
|
||||
assert run_trace(seed) == expected
|
||||
Reference in new issue
Block a user