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.31 矩阵:辰宿乙组(冲刺)', () => { it.each(Array.from({ length: 45 }, (_, k) => [k * 5 + 101] as const))( 'seed %d:辰6 六合验', (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.month).toBeGreaterThanOrEqual(1) expect(w.state.month).toBeLessThanOrEqual(12) expect(Array.isArray(w.state.battles)).toBe(true) expect(Array.isArray(w.state.completedEvents)).toBe(true) expect(w.state.finance).toBeTruthy() }) it.each(Array.from({ length: 45 }, (_, k) => [k * 5 + 102] as const))( 'seed %d:辰7 六合验', (seed) => { const w = mk(`辰宿乙组-1-${seed}`) for (let m = 0; m < 15; m++) w.advanceMonth() expect(Number.isFinite(w.state.seq)).toBe(true) expect(w.state.month).toBeGreaterThanOrEqual(1) expect(w.state.month).toBeLessThanOrEqual(12) expect(Array.isArray(w.state.battles)).toBe(true) expect(Array.isArray(w.state.completedEvents)).toBe(true) expect(w.state.finance).toBeTruthy() }) it.each(Array.from({ length: 45 }, (_, k) => [k * 5 + 103] as const))( 'seed %d:辰8 六合验', (seed) => { const w = mk(`辰宿乙组-2-${seed}`) for (let m = 0; m < 21; m++) w.advanceMonth() expect(Number.isFinite(w.state.seq)).toBe(true) expect(w.state.month).toBeGreaterThanOrEqual(1) expect(w.state.month).toBeLessThanOrEqual(12) expect(Array.isArray(w.state.battles)).toBe(true) expect(Array.isArray(w.state.completedEvents)).toBe(true) expect(w.state.finance).toBeTruthy() }) it.each(Array.from({ length: 45 }, (_, k) => [k * 5 + 104] as const))( 'seed %d:辰9 六合验', (seed) => { const w = mk(`辰宿乙组-3-${seed}`) for (let m = 0; m < 27; m++) w.advanceMonth() expect(Number.isFinite(w.state.seq)).toBe(true) expect(w.state.month).toBeGreaterThanOrEqual(1) expect(w.state.month).toBeLessThanOrEqual(12) expect(Array.isArray(w.state.battles)).toBe(true) expect(Array.isArray(w.state.completedEvents)).toBe(true) expect(w.state.finance).toBeTruthy() }) it.each(Array.from({ length: 45 }, (_, k) => [k * 5 + 105] as const))( 'seed %d:辰10 六合验', (seed) => { const w = mk(`辰宿乙组-4-${seed}`) for (let m = 0; m < 33; m++) w.advanceMonth() expect(Number.isFinite(w.state.seq)).toBe(true) expect(w.state.month).toBeGreaterThanOrEqual(1) expect(w.state.month).toBeLessThanOrEqual(12) expect(Array.isArray(w.state.battles)).toBe(true) expect(Array.isArray(w.state.completedEvents)).toBe(true) expect(w.state.finance).toBeTruthy() }) })