| from sgjm.harness.runner import HarnessConfig, HarnessRunner | |
| from sgjm.modules.backbone import StubBackbone | |
| from sgjm.modules.drafter import StubDrafter | |
| from sgjm.modules.judge import StubJudge | |
| def test_smoke_run_records_metrics(): | |
| backbone = StubBackbone(latent_dim=16, seed=3) | |
| drafter = StubDrafter(backbone=backbone, vocab_size=16, seed=5) | |
| judge = StubJudge() | |
| runner = HarnessRunner( | |
| backbone=backbone, | |
| drafter=drafter, | |
| judge=judge, | |
| config=HarnessConfig(branches_per_step=3, block_size=2, max_steps=3, keep_top_k=2), | |
| ) | |
| snap = runner.run(prompt_tokens=[1, 2, 3]) | |
| assert snap.steps > 0 | |
| assert snap.drafted >= snap.accepted | |
| assert snap.committed >= 1 | |
| assert 0.0 <= snap.acceptance_rate <= 1.0 | |
| assert len(runner.graph) >= 2 | |