aboutsummaryrefslogtreecommitdiff
path: root/src/lib/logic/normalize.test.js
blob: 418e427c435445ada242ee3436ba6c4416c9d48f (plain) (blame)
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);
  });
});