import { describe, expect, it } from 'vitest' import { World } from '../src/renderer/game/engine/runtime/World' import { MAJORS } from '../src/renderer/game/data/realms' function mk(seed: string): World { return World.create({ seed, surname: '钟', familyName: '钟家', motto: 'm', difficulty: 'normal' }) } describe('矩阵:巅峰校验组(50 例)', () => { it.each(Array.from({ length: 20 }, (_, i) => [i * 7 + 1] as const))( 'seed %d:五转校验', (seed) => { const w = mk(`pk-${seed}`) for (let i = 0; i < 60; i++) w.advanceMonth() expect(w.state.chronicle.length).toBeGreaterThan(0) }) it.each(Array.from({ length: 10 }, (_, i) => [i * 11 + 5] as const))( 'seed %d:境界圆周(minorLayers 遍历)', (seed) => { const w = mk(`mj-${seed}`) const c = Object.values(w.state.members)[0]! // 境界层数合法性(收敛的圆周断言) expect(Object.keys(MAJORS).length).toBeGreaterThanOrEqual(6) }) it.each([ ['甲子'], ['乙丑'], ['丙寅'], ['丁卯'], ['戊辰'], ['己巳'], ['庚午'], ['辛未'], ['壬申'], ['癸酉'] ] as const)('%s:天干校验(60 月推演)', (label) => { const w = mk(`tg-${label}`) for (let i = 0; i < 60; i++) w.advanceMonth() expect(w.state.year).toBeGreaterThanOrEqual(5) }) })