sendou.ink/app/modules/analyzer/utils.test.ts
2022-09-18 21:14:47 +03:00

53 lines
1.3 KiB
TypeScript

import { suite } from "uvu";
import * as assert from "uvu/assert";
import type { AbilityWithUnknown } from "../in-game-lists/types";
import { buildToAbilityPoints } from "./utils";
const BuildToAbilityPoints = suite("buildToAbilityPoints()");
const EMPTY_ROW: [
AbilityWithUnknown,
AbilityWithUnknown,
AbilityWithUnknown,
AbilityWithUnknown
] = ["UNKNOWN", "UNKNOWN", "UNKNOWN", "UNKNOWN"];
BuildToAbilityPoints("Empty build leads to empty AP map", () => {
const aps = buildToAbilityPoints([EMPTY_ROW, EMPTY_ROW, EMPTY_ROW]);
assert.equal(aps.size, 0);
});
BuildToAbilityPoints("Calculates ability points", () => {
const aps = buildToAbilityPoints([
["SS", "SS", "RSU", "RSU"],
EMPTY_ROW,
EMPTY_ROW,
]);
assert.equal(aps.get("SS")?.ap, 13);
assert.equal(aps.get("RSU")?.ap, 6);
});
BuildToAbilityPoints("Handles ability doubler", () => {
const aps = buildToAbilityPoints([
EMPTY_ROW,
["AD", "SS", "UNKNOWN", "UNKNOWN"],
EMPTY_ROW,
]);
assert.equal(aps.get("SS")?.ap, 6);
});
BuildToAbilityPoints("Does not calculate AP for main only abilities", () => {
const aps = buildToAbilityPoints([
["LDE", "SS", "RSU", "RSU"],
EMPTY_ROW,
EMPTY_ROW,
]);
assert.not.ok(aps.has("LDE"));
});
BuildToAbilityPoints.run();