import { describe, expect, it } from 'vitest' import { World } from '../src/renderer/game/engine/runtime/World' function mk(seed: string): World { return World.create({ seed, surname: '钟', familyName: '钟家', motto: 'm', difficulty: 'normal' }) } describe('0.1.35 矩阵:荡涤长跑A', () => { it.each(Array.from({ length: 50 }, (_, k) => [k * 7 + 1 + 0] as const))( 'seed %d:五载行舟·世界不崩', (seed) => { const w = mk(`荡涤长跑A-${seed}`) for (let m = 0; m < 66; m++) w.advanceMonth() expect(Number.isFinite(w.state.seq)).toBe(true) expect(Number.isNaN(w.state.family.stones)).toBe(false) for (const c of Object.values(w.state.members)) expect(Number.isNaN(c.health)).toBe(false) expect(Array.isArray(w.state.chronicle)).toBe(true) expect(w.state.totalTicks).toBeGreaterThan(50) }) it.each(Array.from({ length: 50 }, (_, k) => [k * 7 + 1 + 1] as const))( 'seed %d:世鉴无碍·annals 存在', (seed) => { const w = mk(`荡涤长跑A-${seed}`) for (let m = 0; m < 66; m++) w.advanceMonth() const ws = (w.state.worldSim as any) expect(Array.isArray(ws?.worldAnnals)).toBe(true) expect(typeof (ws?.era ?? "pingshi")).toBe("string") }) it.each(Array.from({ length: 50 }, (_, k) => [k * 7 + 1 + 2] as const))( 'seed %d:军备不动·装备世界平安', (seed) => { const w = mk(`荡涤长跑A-${seed}`) for (let m = 0; m < 66; m++) w.advanceMonth() for (const c of Object.values(w.state.members)) if (c.equipment) expect(typeof c.equipment).toBe("string") expect(w.state.family.inventory).toBeTruthy() }) })