Exercise Homeworld games across two to six seats
This commit is contained in:
1 parent
628c536218
commit
6124618d42
3 files changed
+52
-23
No files matched your search
@@ -180,8 +180,8 @@ void test('Homeworld and Nexus sample snapshots resume only their matching modul
|
||||
['nexus', 39, 'nexusCards', 'homeworlds'],
|
||||
] as const) {
|
||||
const out = join(area, profile);
|
||||
const name = profile === 'nexus' ? 'nexus-6-advanced' : 'homeworld-advanced';
|
||||
const playerFilter = profile === 'nexus' ? ['--players', '6'] : [];
|
||||
const name = profile === 'nexus' ? 'nexus-6-advanced' : 'homeworld-4-advanced';
|
||||
const playerFilter = ['--players', profile === 'nexus' ? '6' : '4'];
|
||||
assert.equal(run(out, '--profile', profile, '--rules', 'advanced', ...playerFilter, '--seed', '1000', '--max-actions', '1').status, 1);
|
||||
assertFailedEvidence(out, name, 1000 + ordinal, false);
|
||||
const snapshot = join(out, `failed-${name}.json`);
|
||||
@@ -200,6 +200,26 @@ void test('Homeworld and Nexus sample snapshots resume only their matching modul
|
||||
}
|
||||
});
|
||||
|
||||
void test('Homeworld samples cover each two-to-six-seat roster under both rules and resume the two-seat configuration', (t) => {
|
||||
const area = temporary(t);
|
||||
const out = join(area, 'homeworld');
|
||||
assert.equal(run(out, '--profile', 'homeworld', '--seed', '1000', '--max-actions', '1').status, 1);
|
||||
assert.deepEqual(json<{ results: CliResult[] }>(join(out, 'results.json')).results.map(({ name, seed }) => [name, seed]), [
|
||||
['homeworld-2-basic', 1048], ['homeworld-2-advanced', 1049],
|
||||
['homeworld-3-basic', 1050], ['homeworld-3-advanced', 1051],
|
||||
['homeworld-4-basic', 1036], ['homeworld-4-advanced', 1037],
|
||||
['homeworld-5-basic', 1054], ['homeworld-5-advanced', 1055],
|
||||
['homeworld-6-basic', 1056], ['homeworld-6-advanced', 1057],
|
||||
]);
|
||||
const snapshot = join(out, 'failed-homeworld-2-advanced.json');
|
||||
const game = json<{ players: unknown[]; homeworlds: unknown }>(snapshot);
|
||||
assert.equal(game.players.length, 2);
|
||||
assert.ok(game.homeworlds);
|
||||
const resumed = join(area, 'resumed');
|
||||
assert.equal(run(resumed, '--resume', snapshot, '--seed', '1000', '--max-actions', '1').status, 1);
|
||||
assertFailedEvidence(resumed, 'homeworld-2-advanced', 1049, true);
|
||||
});
|
||||
|
||||
void test('three-seat Nexus samples preserve their module and roster across saved continuation', (t) => {
|
||||
const area = temporary(t);
|
||||
for (const [rules, ordinal] of [['basic', 42], ['advanced', 43]] as const) {
|
||||
|
||||
Reference in new issue
Block a user