kink-discovery / tests /test_two_user_flow_tree.py
Perplexed7675's picture
Sync from kink_cli (Docker Space)
6ff91d6 verified
Raw
History Blame Contribute Delete
1.05 kB
from __future__ import annotations
import importlib.util
import sys
from pathlib import Path
def _load_tree_module():
path = Path(__file__).resolve().parent.parent / "scripts" / "two_user_flow_tree.py"
spec = importlib.util.spec_from_file_location("two_user_flow_tree", path)
assert spec and spec.loader
mod = importlib.util.module_from_spec(spec)
sys.modules[spec.name] = mod
spec.loader.exec_module(mod)
return mod
def test_two_user_flow_tree_smoke(tmp_path: Path) -> None:
mod = _load_tree_module()
report = mod.run_simulation(
max_depth=1,
workdir=tmp_path / "tree",
seed_plays_per_user=50,
check_recommendations=True,
)
assert report["checked_edges"] >= 18
assert report["seed_plays_per_user"] == 50
assert report["check_recommendations"] is True
assert report["unique_states"] >= 10
assert any(edge["expected_ok"] is False and edge["actual_ok"] is False for edge in report["edges"])
assert all(edge["invariants_ok"] for edge in report["edges"])