Files
gcsim-translater/lib/translator/generate.test.ts
T
gunshiz d120b5f787
CI / verify (push) Successful in 45s
CI / build-and-deploy (push) Failing after 1m2s
feat : init
2026-09-09 17:58:37 +07:00

23 lines
1.5 KiB
TypeScript

import { describe, expect, it } from "vitest";
import { calculateSubstats, generateBuild, SUBSTAT_SCALARS } from "./generate";
import type { Build } from "./types";
const build: Build = {
id: "test", characterId: "10000032", characterKey: "bennett", characterName: "Bennett", characterImageUrl: "", level: 90, maxLevel: 90, constellation: 6, talents: [9, 12, 13], weaponId: "11401", weaponKey: "favoniussword", weaponName: "Favonius Sword", weaponLevel: 90, weaponMaxLevel: 90, refinement: 5, artifactMode: "4pc", artifactOneId: "15007", artifactOneKey: "noblesseoblige", artifactOneName: "Noblesse Oblige", artifactTwoId: "", artifactTwoKey: "", artifactTwoName: "", sands: "er", goblet: "pyro%", circlet: "cr", rolls: { hp: 2, atk: 1, def: 0, em: 2, er: 3, "hp%": 0, "atk%": 4, "def%": 1, cr: 5, cd: 6 },
};
describe("gcsim generator", () => {
it("uses current average roll scalars", () => {
expect(SUBSTAT_SCALARS["def%"]).toBe(0.062);
expect(calculateSubstats(build).hp).toBeCloseTo(507.88);
expect(calculateSubstats(build).cd).toBeCloseTo(0.3972);
});
it("generates a complete build block", () => {
expect(generateBuild(build)).toBe(`bennett char lvl=90/90 cons=6 talent=9,12,13;
bennett add weapon="favoniussword" refine=5 lvl=90/90;
bennett add set="noblesseoblige" count=4;
bennett add stats hp=4780 atk=311 er=0.518 pyro%=0.466 cr=0.311; # main stats
bennett add stats hp=507.88 atk=16.54 em=39.64 er=0.1653 atk%=0.1984 def%=0.062 cr=0.1655 cd=0.3972; # substats`);
});
});