1
1
'use strict' ;
2
2
var _ = require ( 'underscore' ) ;
3
+ var lodash = require ( 'lodash' ) ;
4
+ var util = require ( 'util' ) ;
3
5
4
6
var h = require ( '../helper' ) ;
5
7
var file = require ( '../file' ) ;
@@ -36,18 +38,18 @@ const cmd = {
36
38
}
37
39
} ;
38
40
39
- function printResult ( actual , expect , k ) {
41
+ function printResult ( actual , extra , k ) {
40
42
if ( ! actual . hasOwnProperty ( k ) ) return ;
41
43
// HACk: leetcode still return 'Accepted' even the answer is wrong!!
42
44
const v = actual [ k ] || '' ;
43
45
if ( k === 'state' && v === 'Accepted' ) return ;
44
46
45
47
let ok = actual . ok ;
46
- if ( expect && ! _ . isEqual ( actual [ k ] , expect [ k ] ) ) ok = false ;
47
48
48
49
const lines = Array . isArray ( v ) ? v : [ v ] ;
49
50
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 ;
51
53
log . info ( ' ' + h . prettyText ( ' ' + line , ok ) ) ;
52
54
}
53
55
}
@@ -73,23 +75,23 @@ function runTest(argv) {
73
75
problem . file = argv . filename ;
74
76
problem . lang = meta . lang ;
75
77
76
- log . info ( '\nInput data:' ) ;
77
- log . info ( problem . testcase ) ;
78
-
79
78
core . testProblem ( problem , function ( e , results ) {
80
79
if ( e ) return log . fail ( e ) ;
81
80
82
81
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' ) ;
93
95
} ) ;
94
96
} ) ;
95
97
}
0 commit comments