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.33 矩阵:闭环', () => { it.each(Array.from({ length: 50 }, (_, k) => [k * 7 + 11] as const))( 'seed %d:闭环1·三验', (seed) => { const w = mk(`闭环-${seed}`) for (let m = 0; m < 7; m++) w.advanceMonth() expect(w.state.family.inventory).toBeTruthy() expect(Array.isArray(w.state.chronicle)).toBe(true) expect(Number.isFinite(w.state.year)).toBe(true) expect(w.state).toBeTruthy() }) it.each(Array.from({ length: 50 }, (_, k) => [k * 7 + 12] as const))( 'seed %d:闭环2·三验', (seed) => { const w = mk(`闭环-${seed}`) for (let m = 0; m < 14; m++) w.advanceMonth() expect(w.state.family.inventory).toBeTruthy() expect(Array.isArray(w.state.chronicle)).toBe(true) expect(Number.isFinite(w.state.year)).toBe(true) expect(w.state).toBeTruthy() }) it.each(Array.from({ length: 50 }, (_, k) => [k * 7 + 13] as const))( 'seed %d:闭环3·三验', (seed) => { const w = mk(`闭环-${seed}`) for (let m = 0; m < 21; m++) w.advanceMonth() expect(w.state.family.inventory).toBeTruthy() expect(Array.isArray(w.state.chronicle)).toBe(true) expect(Number.isFinite(w.state.year)).toBe(true) expect(w.state).toBeTruthy() }) it.each(Array.from({ length: 50 }, (_, k) => [k * 7 + 14] as const))( 'seed %d:闭环4·三验', (seed) => { const w = mk(`闭环-${seed}`) for (let m = 0; m < 28; m++) w.advanceMonth() expect(w.state.family.inventory).toBeTruthy() expect(Array.isArray(w.state.chronicle)).toBe(true) expect(Number.isFinite(w.state.year)).toBe(true) expect(w.state).toBeTruthy() }) })