Build latest book artifacts / build (push) Canceled after 0s
dependency resolution / resolve (3.11) (push) Canceled after 0s
dependency resolution / resolve (3.13) (push) Canceled after 0s
deploy-pages / build (push) Canceled after 0s
deploy-pages / deploy (push) Canceled after 0s
i18n consistency check / check (push) Canceled after 0s
provider adoption tests / test (chapter2/context-compression) (push) Canceled after 0s
provider adoption tests / test (chapter2/prompt-injection) (push) Canceled after 0s
provider adoption tests / test (chapter2/system-hint) (push) Canceled after 0s
provider adoption tests / test (chapter3/log-sanitization) (push) Canceled after 0s
web-search-agent tests / test (push) Canceled after 0s
web-search-agent tests / agentbook (push) Canceled after 0s
23 lines
677 B
Python
23 lines
677 B
Python
"""Regression: one-person puzzles must not IndexError in _random_stmt."""
|
|
import random
|
|
import sys
|
|
import types
|
|
|
|
sys.modules.setdefault("constraint", types.ModuleType("constraint"))
|
|
sys.modules["constraint"].Problem = object
|
|
cs = types.ModuleType("csp_solver")
|
|
cs.render_nl = lambda *a, **k: ""
|
|
cs.solve = lambda *a, **k: [{}]
|
|
cs.solve_labeled = lambda *a, **k: {}
|
|
sys.modules["csp_solver"] = cs
|
|
|
|
from build_puzzles import _random_stmt # noqa: E402
|
|
|
|
|
|
def test_random_stmt_one_person_returns_count():
|
|
rng = random.Random(0)
|
|
for _ in range(20):
|
|
stmt = _random_stmt("A", ["A"], rng)
|
|
assert stmt[0] == "count"
|
|
assert stmt[1] in ("knight", "knave")
|