1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
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);
});
});
|