import { describe, it, expect } from "vitest"; import { normalize } from "./normalize.js"; describe("normalize", () => { it("collapses all levels into one bucket when factor equals the max level (\"All Levels\")", () => { const players = [{ level: 1 }, { level: 5 }, { level: 10 }]; const result = normalize(players, 10); expect(result.map((p) => p.level)).toEqual([1, 1, 1]); }); it("leaves levels untouched when factor is 1 (\"Skill Based\")", () => { const players = [{ level: 1 }, { level: 5 }, { level: 10 }]; const result = normalize(players, 1); expect(result.map((p) => p.level)).toEqual([1, 5, 10]); }); it("splits levels into two buckets when factor is 5 (\"2 Levels\")", () => { const players = [{ level: 1 }, { level: 5 }, { level: 6 }, { level: 10 }]; const result = normalize(players, 5); expect(result.map((p) => p.level)).toEqual([1, 1, 2, 2]); }); it("does not mutate the input array", () => { const players = [{ level: 4 }]; normalize(players, 2); expect(players[0].level).toBe(4); }); });