aboutsummaryrefslogtreecommitdiff
path: root/src/lib/logic/normalize.test.js
diff options
context:
space:
mode:
authorKaran Jayachandra <mail@karanjayachandra.com>2026-08-30 22:43:21 +0200
committerKaran Jayachandra <mail@karanjayachandra.com>2026-08-30 22:43:21 +0200
commitfc8d8ab8d0da95ec79056f59e14a150df6fcea89 (patch)
tree33f8050b2f2920c0f1b884a205a8aa4c81d7687c /src/lib/logic/normalize.test.js
parentd37ebfda883bcd03b146a85bc3e5a4657d0abd73 (diff)
Moved to sveltemain
Diffstat (limited to 'src/lib/logic/normalize.test.js')
-rw-r--r--src/lib/logic/normalize.test.js28
1 files changed, 28 insertions, 0 deletions
diff --git a/src/lib/logic/normalize.test.js b/src/lib/logic/normalize.test.js
new file mode 100644
index 0000000..418e427
--- /dev/null
+++ b/src/lib/logic/normalize.test.js
@@ -0,0 +1,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);
+ });
+});