slp-enforcer
Version:
Finds violations of the Melee Controller Ruleset by inspecting SLP files
68 lines (67 loc) • 3.85 kB
JavaScript
;
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
result["default"] = mod;
return result;
};
Object.defineProperty(exports, "__esModule", { value: true });
const globals_1 = require("@jest/globals");
const index_1 = require("../index");
const uptilt_rounding_1 = require("../uptilt_rounding");
const fs = __importStar(require("fs"));
const path = __importStar(require("path"));
globals_1.test('Test uptilt rounding (legal analog A)', async () => {
const slpDir = path.join(__dirname, '../../test_data/legal/analog/traveltime/');
const files = await fs.promises.readdir(slpDir);
for (const filename of files) {
var data = fs.readFileSync(path.join(slpDir, filename), null);
let game = new index_1.SlippiGame(index_1.toArrayBuffer(data));
globals_1.expect(game).not.toBeNull();
let gameCoordsPortThree = index_1.getCoordListFromGame(game, 2, true);
let gameCoordsPortFour = index_1.getCoordListFromGame(game, 3, true);
globals_1.expect(index_1.hasIllegalUptiltRounding(game, 2, gameCoordsPortThree).result).toEqual(false);
globals_1.expect(index_1.hasIllegalUptiltRounding(game, 3, gameCoordsPortFour).result).toEqual(false);
}
});
globals_1.test('Test uptilt rounding (nonlegal analog)', async () => {
const slpDir = path.join(__dirname, '../../test_data/nonlegal/analog/goomwave_uptilt_p1.slp');
let data = fs.readFileSync(slpDir, null);
let game = new index_1.SlippiGame(index_1.toArrayBuffer(data));
globals_1.expect(game).not.toBeNull();
let gameCoordsPortOne = index_1.getCoordListFromGame(game, 0, true);
let checkResult = uptilt_rounding_1.getUptiltCheck(game, 0, gameCoordsPortOne);
globals_1.expect(checkResult.result).toEqual(true);
globals_1.expect(checkResult.violations.length).toBeGreaterThanOrEqual(1);
});
globals_1.test('Test uptilt rounding (legal analog B)', async () => {
const slpDir = path.join(__dirname, '../../test_data/legal/analog/Game_20250107T140347.slp');
let data = fs.readFileSync(slpDir, null);
let game = new index_1.SlippiGame(index_1.toArrayBuffer(data));
globals_1.expect(game).not.toBeNull();
let gameCoordsPortOne = index_1.getCoordListFromGame(game, 0, true);
let checkResult = index_1.hasIllegalUptiltRounding(game, 0, gameCoordsPortOne);
globals_1.expect(checkResult.result).toEqual(false);
globals_1.expect(checkResult.violations.length).toEqual(0);
});
globals_1.test('Test uptilt rounding (legal analog C)', async () => {
const slpDir = path.join(__dirname, '../../test_data/legal/analog/Game_20250107T142211.slp');
let data = fs.readFileSync(slpDir, null);
let game = new index_1.SlippiGame(index_1.toArrayBuffer(data));
globals_1.expect(game).not.toBeNull();
let gameCoordsPortOne = index_1.getCoordListFromGame(game, 0, true);
let checkResult = index_1.hasIllegalUptiltRounding(game, 0, gameCoordsPortOne);
globals_1.expect(checkResult.result).toEqual(false);
globals_1.expect(checkResult.violations.length).toEqual(0);
});
globals_1.test('Test uptilt rounding (legal analog D)', async () => {
const slpDir = path.join(__dirname, '../../test_data/legal/analog/Game_20250123T212056.slp');
let data = fs.readFileSync(slpDir, null);
let game = new index_1.SlippiGame(index_1.toArrayBuffer(data));
globals_1.expect(game).not.toBeNull();
let gameCoordsPortOne = index_1.getCoordListFromGame(game, 0, true);
let checkResult = index_1.hasIllegalUptiltRounding(game, 0, gameCoordsPortOne);
globals_1.expect(checkResult.result).toEqual(false);
globals_1.expect(checkResult.violations.length).toEqual(0);
});