Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit cc8a217

Browse files
Vigilansjdneo
authored andcommitted
Refactor test & submit output format (leetcode-tools#20)
1 parent ad2e01c commit cc8a217

File tree

2 files changed

+21
-17
lines changed

2 files changed

+21
-17
lines changed

‎lib/commands/submit.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
'use strict';
22
var util = require('util');
3+
var lodash = require('lodash');
34

45
var h = require('../helper');
56
var file = require('../file');
@@ -29,7 +30,7 @@ function printResult(actual, k) {
2930
const v = actual[k] || '';
3031
const lines = Array.isArray(v) ? v : [v];
3132
for (let line of lines) {
32-
if (k !== 'state') line = k + ': ' + line;
33+
if (k !== 'state') line = lodash.startCase(k) + ': ' + line;
3334
log.info(' ' + h.prettyText(' ' + line, actual.ok));
3435
}
3536
}
@@ -98,6 +99,7 @@ cmd.handler = function(argv) {
9899
// ratio.toFixed(2), lang);
99100
// });
100101
} else {
102+
result.testcase = result.testcase.slice(1, -1).replace(/\\n/g, '\n');
101103
printResult(result, 'error');
102104
printResult(result, 'testcase');
103105
printResult(result, 'answer');

‎lib/commands/test.js

Lines changed: 18 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
'use strict';
22
var _ = require('underscore');
3+
var lodash = require('lodash');
4+
var util = require('util');
35

46
var h = require('../helper');
57
var file = require('../file');
@@ -36,18 +38,18 @@ const cmd = {
3638
}
3739
};
3840

39-
function printResult(actual, expect, k) {
41+
function printResult(actual, extra, k) {
4042
if (!actual.hasOwnProperty(k)) return;
4143
// HACk: leetcode still return 'Accepted' even the answer is wrong!!
4244
const v = actual[k] || '';
4345
if (k === 'state' && v === 'Accepted') return;
4446

4547
let ok = actual.ok;
46-
if (expect && !_.isEqual(actual[k], expect[k])) ok = false;
4748

4849
const lines = Array.isArray(v) ? v : [v];
4950
for (let line of lines) {
50-
if (k !== 'state') line = k + ': ' + line;
51+
const extraInfo = extra ? ` (${extra})` : '';
52+
if (k !== 'state') line = lodash.startCase(k) + extraInfo + ': ' + line;
5153
log.info(' ' + h.prettyText(' ' + line, ok));
5254
}
5355
}
@@ -73,23 +75,23 @@ function runTest(argv) {
7375
problem.file = argv.filename;
7476
problem.lang = meta.lang;
7577

76-
log.info('\nInput data:');
77-
log.info(problem.testcase);
78-
7978
core.testProblem(problem, function(e, results) {
8079
if (e) return log.fail(e);
8180

8281
results = _.sortBy(results, x => x.type);
83-
for (let i = 0; i < results.length; ++i) {
84-
log.info();
85-
log.info(chalk.yellow(results[i].type));
86-
87-
printResult(results[i], null, 'state');
88-
printResult(results[i], null, 'runtime');
89-
printResult(results[i], results[i + 1], 'answer');
90-
printResult(results[i], results[i + 1], 'stdout');
91-
printResult(results[i], null, 'error');
92-
}
82+
if (results[0].state === 'Accepted')
83+
results[0].state = 'Finished';
84+
printResult(results[0], null, 'state');
85+
printResult(results[0], null, 'error');
86+
87+
results[0].your_input = problem.testcase;
88+
results[0].output = results[0].answer;
89+
results[1].expected = results[1].answer;
90+
results[0].stdout = results[0].stdout.slice(1, -1).replace(/\\n/g, '\n');
91+
printResult(results[0], null, 'your_input');
92+
printResult(results[0], results[0].runtime, 'output');
93+
printResult(results[1], results[1].runtime, 'expected');
94+
printResult(results[0], null, 'stdout');
9395
});
9496
});
9597
}

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /