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.32 矩阵:琳琅乙组', () => { it.each(Array.from({ length: 50 }, (_, k) => [k * 3 + 303] as const))( 'seed %d:辰11·四验', (seed) => { const w = mk(`琳琅乙组-0-${seed}`) for (let m = 0; m < 9; m++) w.advanceMonth() expect(Number.isFinite(w.state.seq)).toBe(true) expect(w.state.family.inventory).toBeTruthy() expect(w.state.stats).toBeTruthy() expect(Number.isFinite(w.state.totalTicks)).toBe(true) }) it.each(Array.from({ length: 50 }, (_, k) => [k * 3 + 304] as const))( 'seed %d:辰12·四验', (seed) => { const w = mk(`琳琅乙组-1-${seed}`) for (let m = 0; m < 18; m++) w.advanceMonth() expect(Number.isFinite(w.state.seq)).toBe(true) expect(w.state.family.inventory).toBeTruthy() expect(w.state.stats).toBeTruthy() expect(Number.isFinite(w.state.totalTicks)).toBe(true) }) it.each(Array.from({ length: 50 }, (_, k) => [k * 3 + 305] as const))( 'seed %d:辰13·四验', (seed) => { const w = mk(`琳琅乙组-2-${seed}`) for (let m = 0; m < 27; m++) w.advanceMonth() expect(Number.isFinite(w.state.seq)).toBe(true) expect(w.state.family.inventory).toBeTruthy() expect(w.state.stats).toBeTruthy() expect(Number.isFinite(w.state.totalTicks)).toBe(true) }) it.each(Array.from({ length: 50 }, (_, k) => [k * 3 + 306] as const))( 'seed %d:辰14·四验', (seed) => { const w = mk(`琳琅乙组-3-${seed}`) for (let m = 0; m < 36; m++) w.advanceMonth() expect(Number.isFinite(w.state.seq)).toBe(true) expect(w.state.family.inventory).toBeTruthy() expect(w.state.stats).toBeTruthy() expect(Number.isFinite(w.state.totalTicks)).toBe(true) }) it.each(Array.from({ length: 50 }, (_, k) => [k * 3 + 307] as const))( 'seed %d:辰15·四验', (seed) => { const w = mk(`琳琅乙组-4-${seed}`) for (let m = 0; m < 45; m++) w.advanceMonth() expect(Number.isFinite(w.state.seq)).toBe(true) expect(w.state.family.inventory).toBeTruthy() expect(w.state.stats).toBeTruthy() expect(Number.isFinite(w.state.totalTicks)).toBe(true) }) it.each(Array.from({ length: 50 }, (_, k) => [k * 3 + 308] as const))( 'seed %d:辰16·四验', (seed) => { const w = mk(`琳琅乙组-5-${seed}`) for (let m = 0; m < 54; m++) w.advanceMonth() expect(Number.isFinite(w.state.seq)).toBe(true) expect(w.state.family.inventory).toBeTruthy() expect(w.state.stats).toBeTruthy() expect(Number.isFinite(w.state.totalTicks)).toBe(true) }) it.each(Array.from({ length: 50 }, (_, k) => [k * 3 + 309] as const))( 'seed %d:辰17·四验', (seed) => { const w = mk(`琳琅乙组-6-${seed}`) for (let m = 0; m < 63; m++) w.advanceMonth() expect(Number.isFinite(w.state.seq)).toBe(true) expect(w.state.family.inventory).toBeTruthy() expect(w.state.stats).toBeTruthy() expect(Number.isFinite(w.state.totalTicks)).toBe(true) }) it.each(Array.from({ length: 50 }, (_, k) => [k * 3 + 310] as const))( 'seed %d:辰18·四验', (seed) => { const w = mk(`琳琅乙组-7-${seed}`) for (let m = 0; m < 72; m++) w.advanceMonth() expect(Number.isFinite(w.state.seq)).toBe(true) expect(w.state.family.inventory).toBeTruthy() expect(w.state.stats).toBeTruthy() expect(Number.isFinite(w.state.totalTicks)).toBe(true) }) it.each(Array.from({ length: 50 }, (_, k) => [k * 3 + 311] as const))( 'seed %d:辰19·四验', (seed) => { const w = mk(`琳琅乙组-8-${seed}`) for (let m = 0; m < 81; m++) w.advanceMonth() expect(Number.isFinite(w.state.seq)).toBe(true) expect(w.state.family.inventory).toBeTruthy() expect(w.state.stats).toBeTruthy() expect(Number.isFinite(w.state.totalTicks)).toBe(true) }) })