fix(sim): 빈 인카운터 즉시 승리·타겟 타이브레이크 결정성·주석·draw/empty 테스트

This commit is contained in:
2026-06-10 00:57:53 +09:00
parent 4ef3d1811d
commit de23829439
2 changed files with 22 additions and 2 deletions

View File

@@ -90,6 +90,23 @@ test('simulateCombat: 강한 다수 적이면 패배 가능', () => {
assert.ok(losses >= 1, `강한 적엔 패배가 나와야 함, 실제 패 ${losses}/30`);
});
test('simulateCombat: 턴 상한 초과 시 draw 반환', () => {
const immortal = {
cards: { Defend: { name: '방어', cost: 1, kind: 'Skill', block: 5 } },
starterDeck: Array(10).fill('Defend'),
monsters: [{ name: '불사', maxHp: 9999, intents: [{ kind: 'Attack', value: 1 }] }],
};
const r = simulateCombat(immortal, mulberry32(1));
assert.equal(r.draw, true);
assert.equal(r.win, false);
});
test('simulateCombat: 몬스터 없으면 즉시 승리', () => {
const r = simulateCombat({ cards: {}, starterDeck: [], monsters: [] }, mulberry32(1));
assert.equal(r.win, true);
assert.equal(r.turns, 0);
});
test('runBatch: 집계 필드·승률 범위', () => {
const r = runBatch(100, 1);
assert.equal(r.N, 100);