import { RENOWN_BASE_STATS, RENOWN_MAX, RENOWN_MIN } from './renown-base-stats'; describe('RENOWN_BASE_STATS', () => { it('spans exactly Renown 1 through 15', () => { expect(RENOWN_MIN).toBe(1); expect(RENOWN_MAX).toBe(15); expect(Object.keys(RENOWN_BASE_STATS).map(Number).sort((a, b) => a - b)).toEqual( Array.from({ length: 15 }, (_, i) => i + 1), ); }); it('matches the exact V1 reference table from spec ยง4', () => { expect(RENOWN_BASE_STATS[1]).toEqual({ baseHp: 100, baseAttack: 6 }); expect(RENOWN_BASE_STATS[5]).toEqual({ baseHp: 114, baseAttack: 8 }); expect(RENOWN_BASE_STATS[10]).toEqual({ baseHp: 132, baseAttack: 10 }); expect(RENOWN_BASE_STATS[15]).toEqual({ baseHp: 148, baseAttack: 12 }); }); it('is monotonically non-decreasing in both stats as Renown increases', () => { for (let renown = 2; renown <= 15; renown += 1) { expect(RENOWN_BASE_STATS[renown].baseHp).toBeGreaterThanOrEqual( RENOWN_BASE_STATS[renown - 1].baseHp, ); expect(RENOWN_BASE_STATS[renown].baseAttack).toBeGreaterThanOrEqual( RENOWN_BASE_STATS[renown - 1].baseAttack, ); } }); });