sendou.ink/app/features/build-analyzer/core/specialEffects.test.ts
Kalle fd48bced91
Migrate Prettier/Eslint/Stylelint setup to Biome (#1772)
* Initial

* CSS lint

* Test CI

* Add 1v1, 2v2, and 3v3 Tags (#1771)

* Initial

* CSS lint

* Test CI

* Rename step

---------

Co-authored-by: xi <104683822+ximk@users.noreply.github.com>
2024-06-24 13:07:17 +03:00

96 lines
2.1 KiB
TypeScript

import { suite } from "uvu";
import * as assert from "uvu/assert";
import { applySpecialEffects } from "./specialEffects";
const ApplySpecialEffects = suite("applySpecialEffects()");
ApplySpecialEffects("Adds an effect to empty build", () => {
const aps = applySpecialEffects({
effects: ["CB"],
abilityPoints: new Map(),
ldeIntensity: 0,
});
assert.equal(aps.size, 6);
assert.equal(aps.get("ISM"), 10);
});
ApplySpecialEffects(
"Adds an effect to build while keeping existing abilities untouched",
() => {
const aps = applySpecialEffects({
effects: ["CB"],
abilityPoints: new Map([["SPU", 10]]),
ldeIntensity: 0,
});
assert.equal(aps.size, 7);
assert.equal(aps.get("SPU"), 10);
},
);
ApplySpecialEffects("Does not boost ability beyond 57", () => {
const aps = applySpecialEffects({
effects: ["CB"],
abilityPoints: new Map([["ISM", 57]]),
ldeIntensity: 0,
});
assert.equal(aps.get("ISM"), 57);
});
ApplySpecialEffects("Tacticooler doesn't boost swim speed beyond 29", () => {
const aps = applySpecialEffects({
effects: ["TACTICOOLER"],
abilityPoints: new Map([["SSU", 28]]),
ldeIntensity: 0,
});
assert.equal(aps.get("SSU"), 29);
});
ApplySpecialEffects(
"Tacticooler limit swim speed at 29 if more in build",
() => {
const aps = applySpecialEffects({
effects: ["TACTICOOLER"],
abilityPoints: new Map([["SSU", 30]]),
ldeIntensity: 0,
});
assert.equal(aps.get("SSU"), 30);
},
);
ApplySpecialEffects("Applies many effects", () => {
const aps = applySpecialEffects({
effects: ["DR", "CB"],
abilityPoints: new Map([["SSU", 1]]),
ldeIntensity: 0,
});
assert.equal(aps.get("SSU"), 41);
});
ApplySpecialEffects("Applies LDE", () => {
const aps = applySpecialEffects({
effects: ["LDE"],
abilityPoints: new Map([["ISM", 1]]),
ldeIntensity: 1,
});
assert.equal(aps.get("ISM"), 1);
});
ApplySpecialEffects("Applies LDE (intensity != aps given)", () => {
const aps = applySpecialEffects({
effects: ["LDE"],
abilityPoints: new Map([["ISM", 1]]),
ldeIntensity: 15,
});
assert.equal(aps.get("ISM"), 13);
});
ApplySpecialEffects.run();