You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Hydro/hydro/lib/testdata.convert.ini.ts

33 lines
1.1 KiB
TypeScript

import yaml from 'js-yaml';
4 years ago
export default function convert(ini: string) {
4 years ago
const f = ini.split('\n');
const count = parseInt(f[0], 10);
4 years ago
const res = { cases: [] };
for (let i = 1; i <= count; i++) {
const [input, output, time, score, memory] = f[i].split('|');
const cur = {
input, output, score: parseInt(score, 10), time: `${time}s`, memory: '128m',
};
if (!Number.isNaN(parseInt(memory, 10))) cur.memory = `${Math.floor(parseInt(memory, 10) / 1024)}m`;
4 years ago
res.cases.push(cur);
}
if (res.cases.length > 0) {
const { time, score, memory } = res.cases[0];
for (let i = 1; i < res.cases.length; i++) {
if (res.cases[i].time !== time
|| res.cases[i].score !== score
|| res.cases[i].memory !== memory) {
return yaml.safeDump(res);
}
}
}
return yaml.safeDump({
time: res.cases[0].time,
score: res.cases[0].score,
memory: res.cases[0].memory,
});
4 years ago
}
global.Hydro.lib['testdata.convert.ini'] = convert;