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 矩阵:荡涤长跑B', () => { it.each(Array.from({ length: 50 }, (_, k) => [k * 7 + 1 + 0] as const))( 'seed %d:四方风雨·npc 数与纪年在', (seed) => { const w = mk(`荡涤长跑B-${seed}`) for (let m = 0; m < 66; m++) w.advanceMonth() expect(Object.keys(w.state.npcFamilies).length).toBeGreaterThan(0) expect(typeof w.state.family.reputation).toBe("number") expect(w.state.year).toBeGreaterThanOrEqual(1) }) it.each(Array.from({ length: 50 }, (_, k) => [k * 7 + 1 + 1] as const))( 'seed %d:尘缘不忘·婚旅双柱', (seed) => { const w = mk(`荡涤长跑B-${seed}`) for (let m = 0; m < 66; m++) w.advanceMonth() expect(w.state.members).toBeTruthy() expect(Array.isArray(w.state.eventQueue)).toBe(true) expect(Array.isArray(w.state.completedEvents)).toBe(true) }) it.each(Array.from({ length: 50 }, (_, k) => [k * 7 + 1 + 2] as const))( 'seed %d:历法在照·月限合法', (seed) => { const w = mk(`荡涤长跑B-${seed}`) for (let m = 0; m < 66; m++) w.advanceMonth() expect(w.state.month).toBeGreaterThanOrEqual(1) expect(w.state.month).toBeLessThanOrEqual(12) expect(w.state.seq).toBeGreaterThan(0) }) })