import { describe, expect, it } from 'vitest' import { World } from '../src/renderer/game/engine/runtime/World' import { SEAWorlds } from '../src/renderer/game/data/registry' function mk(seed: string): World { return World.create({ seed, surname: '钟', familyName: '钟家', motto: 'm', difficulty: 'normal' }) } describe('矩阵:收官校验组(13 seed × 三验)', () => { it.each(Array.from({ length: 13 }, (_, i) => [i * 41 + 13] as const))( 'seed %d:收官三验(年/月/家)', (seed) => { const w = mk(`cp-${seed}`) w.advanceMonth() expect(w.state.year).toBe(1) expect(w.state.month).toBe(2) expect(w.state.family.name.length).toBeGreaterThan(0) }) it.each([ ['精一点'], ['简一点'], ['深一点'], ['疾一点'] ] as const)('%s:文化校验(archive 可读)', (label) => { const w = mk(`ac-${label}`) for (let i = 0; i < 30; i++) w.advanceMonth() expect(w.state.annals ?? w.state.yearlyReports).toBeTruthy() }) it.each([ ['正一'], ['正二'], ['正三'] ] as const)('%s:校验纯正(长跑不越)', (label) => { const w = mk(`vd-${label}`) for (let i = 0; i < 60; i++) w.advanceMonth() expect(Number.isFinite(w.state.family.reputation)).toBe(true) }) it.each([ ['临一'], ['临二'], ['临三'], ['临四'] ] as const)('临验 %s:正月立命', (label) => { const w = mk(`ly-${label}`) expect(w.state.members['x1']).toBeTruthy() expect(w.state.members['x2']).toBeTruthy() }) })