Skip to content

Commit bd4a4bc

Browse files
committed
Refactor runtime and memory percentile logic for fixing issue #114 and #156
1 parent 2e6aa64 commit bd4a4bc

File tree

2 files changed

+16
-19
lines changed

2 files changed

+16
-19
lines changed

lib/commands/submit.js

+9-16
Original file line numberDiff line numberDiff line change
@@ -66,23 +66,16 @@ cmd.handler = function(argv) {
6666
if (result.ok) {
6767
session.updateStat('ac', 1);
6868
session.updateStat('ac.set', problem.fid);
69-
core.getSubmission({id: result.id}, function(e, submission) {
70-
if (e || !submission || !submission.distributionChart)
71-
return log.warn('Failed to get submission beat ratio.');
72-
73-
const lang = submission.distributionChart.lang;
74-
const scores = submission.distributionChart.distribution;
75-
const myRuntime = parseFloat(result.runtime);
76-
77-
let ratio = 0.0;
78-
for (let score of scores) {
79-
if (parseFloat(score[0]) >= myRuntime)
80-
ratio += parseFloat(score[1]);
81-
}
82-
69+
if (result.runtime_percentile)
8370
printLine(result, 'Your runtime beats %d %% of %s submissions',
84-
ratio.toFixed(2), lang);
85-
});
71+
result.runtime_percentile.toFixed(2), result.lang);
72+
else
73+
return log.warn('Failed to get runtime percentile.');
74+
if (result.memory && result.memory_percentile)
75+
printLine(result, 'Your memory usage beats %d %% of %s submissions (%s)',
76+
result.memory_percentile.toFixed(2), result.lang, result.memory);
77+
else
78+
return log.warn('Failed to get memory percentile.');
8679
} else {
8780
printResult(result, 'error');
8881
printResult(result, 'testcase');

lib/plugins/leetcode.js

+7-3
Original file line numberDiff line numberDiff line change
@@ -242,9 +242,13 @@ function verifyResult(task, queue, cb) {
242242

243243
function formatResult(result) {
244244
const x = {
245-
ok: result.run_success,
246-
answer: result.code_answer || '',
247-
runtime: result.status_runtime || '',
245+
ok: result.run_success,
246+
answer: result.code_answer || '',
247+
lang: result.lang,
248+
runtime: result.status_runtime || '',
249+
runtime_percentile: result.runtime_percentile || '',
250+
memory: result.status_memory || '',
251+
memory_percentile: result.memory_percentile || '',
248252
state: h.statusToName(result.status_code),
249253
testcase: util.inspect(result.input || result.last_testcase || ''),
250254
passed: result.total_correct || 0,

0 commit comments

Comments
 (0)