11'use strict' ;
22var _ = require ( 'underscore' ) ;
3+ var lodash = require ( 'lodash' ) ;
4+ var util = require ( 'util' ) ;
35
46var h = require ( '../helper' ) ;
57var 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