1+ var _ = require ( 'underscore' ) ;
12var util = require ( 'util' ) ;
23
34var core = require ( '../core' ) ;
@@ -10,6 +11,8 @@ var cmd = {
1011 }
1112} ;
1213
14+ var INDENT = ' ' ;
15+
1316cmd . handler = function ( argv ) {
1417 var keyword = h . getFilename ( argv . filename ) ;
1518 core . getProblem ( keyword , function ( e , problem ) {
@@ -26,25 +29,39 @@ cmd.handler = function(argv) {
2629
2730 var runOk = result . run_success ;
2831
29- if ( ! ok && runOk ) {
30- console . log ( util . format ( 'input:\n%s' , result . input ) ) ;
31- }
32-
3332 var line = util . format ( ' %s' , h . statusToName ( result . status_code ) ) ;
34- console . log ( ' ' + h . prettyText ( line , ok ) ) ;
33+ console . log ( INDENT + h . prettyText ( line , ok ) ) ;
3534
35+ // show "xxx_error" message
36+ _ . chain ( result )
37+ . pick ( function ( v , k , obj ) {
38+ return / _ e r r o r $ / . test ( k ) && v . length > 0 ;
39+ } )
40+ . values ( )
41+ . each ( function ( v ) {
42+ console . log ( INDENT + h . prettyText ( ' ' + v , ok ) ) ;
43+ } ) ;
44+
45+ // show success ratio
3646 line = util . format ( ' %d/%d cases passed (%s)' ,
3747 result . total_correct ,
3848 result . total_testcases ,
3949 result . status_runtime ) ;
40- console . log ( ' ' + h . prettyText ( line , ok ) ) ;
50+ console . log ( INDENT + h . prettyText ( line , ok ) ) ;
51+
52+ // show testcase
53+ var testcase = result . input || result . last_testcase ;
54+ if ( ! ok && testcase ) {
55+ line = util . format ( ' testcase: %s' , util . inspect ( testcase ) ) ;
56+ console . log ( INDENT + h . prettyText ( line , ok ) ) ;
57+ }
4158
4259 if ( ! ok && runOk ) {
4360 line = util . format ( ' output: %s' , result . code_output ) ;
44- console . log ( ' ' + h . prettyText ( line , ok ) ) ;
61+ console . log ( INDENT + h . prettyText ( line , ok ) ) ;
4562
4663 line = util . format ( ' expected: %s' , result . expected_output ) ;
47- console . log ( ' ' + h . prettyText ( line , ok ) ) ;
64+ console . log ( INDENT + h . prettyText ( line , ok ) ) ;
4865 }
4966
5067 // update this problem status in local cache
0 commit comments