Skip to content

Commit dfa8759

Browse files
authored
Merge pull request #50 from fanzhenya/master
Add beat ratio display after AC
2 parents 057ab1f + bdd6297 commit dfa8759

File tree

3 files changed

+31
-4
lines changed

3 files changed

+31
-4
lines changed

lib/commands/submit.js

+22
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,28 @@ cmd.handler = function(argv) {
5454
result.status_runtime);
5555
log.info(INDENT + h.prettyText(line, ok));
5656

57+
// show beat ratio
58+
if (ok) {
59+
core.getSubmission({id: result.id}, function(e, submission) {
60+
if (submission.distributionChart) {
61+
var beatRatio = 0.0;
62+
var chart = submission.distributionChart.distribution;
63+
var lang = submission.distributionChart.lang;
64+
for (var i in chart) {
65+
if (parseFloat(chart[i][0]) <= parseFloat(result.display_runtime)) {
66+
continue;
67+
} else {
68+
beatRatio += parseFloat(chart[i][1]);
69+
}
70+
}
71+
line = util.format(' Your runtime beats %d %% of %s submissions',
72+
beatRatio.toFixed(2),
73+
lang);
74+
log.info(INDENT + h.prettyText(line, ok));
75+
}
76+
});
77+
}
78+
5779
// show testcase
5880
var testcase = result.input || result.last_testcase;
5981
if (!ok && testcase) {

lib/leetcode_client.js

+5
Original file line numberDiff line numberDiff line change
@@ -209,6 +209,10 @@ leetcodeClient.getSubmission = function(submission, cb) {
209209
if (re) {
210210
submission.code = eval(re[1]);
211211
}
212+
re = body.match(/distribution_formatted:\s('[^']*')/);
213+
if (re) {
214+
submission.distributionChart = JSON.parse(eval(re[1]));
215+
}
212216
return cb(null, submission);
213217
});
214218
};
@@ -273,6 +277,7 @@ function verifyResult(opts, jobs, results, cb) {
273277
var result = JSON.parse(body);
274278
if (result.state === 'SUCCESS') {
275279
result.name = jobs[0].name;
280+
result.id = jobs[0].id;
276281
results.push(result);
277282
jobs.shift();
278283
}

test/test_leetcode_client.js

+4-4
Original file line numberDiff line numberDiff line change
@@ -280,8 +280,8 @@ describe('leetcode_client', function() {
280280
assert.equal(e, null);
281281
assert.deepEqual(results,
282282
[
283-
{name: 'Your', state: 'SUCCESS'},
284-
{name: 'Expected', state: 'SUCCESS'}
283+
{id: 'id2', name: 'Your', state: 'SUCCESS'},
284+
{id: 'id1', name: 'Expected', state: 'SUCCESS'}
285285
]);
286286
done();
287287
});
@@ -311,7 +311,7 @@ describe('leetcode_client', function() {
311311

312312
client.submitProblem(PROBLEM, function(e, results) {
313313
assert.equal(e, null);
314-
assert.deepEqual(results, [{name: 'Your', state: 'SUCCESS'}]);
314+
assert.deepEqual(results, [{id: 'id1', name: 'Your', state: 'SUCCESS'}]);
315315
done();
316316
});
317317
});
@@ -335,7 +335,7 @@ describe('leetcode_client', function() {
335335

336336
client.submitProblem(PROBLEM, function(e, results) {
337337
assert.equal(e, null);
338-
assert.deepEqual(results, [{name: 'Your', state: 'SUCCESS'}]);
338+
assert.deepEqual(results, [{id: 'id1', name: 'Your', state: 'SUCCESS'}]);
339339
done();
340340
});
341341
});

0 commit comments

Comments
 (0)