Pushes values to the right when given long info keys

This commit is contained in:
Jack Firth 2015-08-19 14:09:36 -07:00 committed by Vincent St-Amour
parent 011715353f
commit b4b8027267
2 changed files with 31 additions and 12 deletions

View File

@ -14,12 +14,13 @@
display-error
display-test-failure/error
strip-redundant-params)
strip-redundant-params
check-info-stack-max-name-width)
;; name-width : integer
;;
;; Number of characters we reserve for the check-info name column
(define name-width 12)
(define minimum-name-width 12)
(define (display-delimiter)
(display "--------------------") (newline))
@ -39,21 +40,34 @@
[else
(substring s 0 n)]))
(define (display-check-info-name-value name value [value-printer (lambda (x) (write x) (newline))])
(define (check-info-name-width check-info)
(string-length
(symbol->string
(check-info-name check-info))))
(define (display-check-info-name-value max-name-width name value [value-printer (lambda (x) (write x) (newline))])
(display (string-pad-right
(string-append (symbol->string name) ": ")
name-width))
(max minimum-name-width (+ max-name-width 2))))
(value-printer value))
(define display-check-info
(match-lambda [(struct check-info (name value))
(display-check-info-name-value name value)]))
(define (display-check-info max-name-width a-check-info)
(match a-check-info
[(struct check-info (name value))
(display-check-info-name-value max-name-width name value)]))
(define (check-info-stack-max-name-width check-info-stack)
(apply max 0
(map check-info-name-width check-info-stack)))
;; display-check-info-stack : (listof check-info) -> void
(define (display-check-info-stack check-info-stack)
(for-each
display-check-info
(strip-redundant-params check-info-stack))
(define max-name-width (check-info-stack-max-name-width check-info-stack))
(define (display-check-info-with-width check-info)
(display-check-info max-name-width check-info))
(for-each display-check-info-with-width
(strip-redundant-params check-info-stack))
(newline))
;; display-test-name : (U string #f) -> void

View File

@ -130,13 +130,15 @@
5]))))
(define (textui-display-check-info-stack stack [verbose? #f])
(define max-name-width (check-info-stack-max-name-width stack))
(for-each
(lambda (info)
(cond
[(check-name? info)
(display-check-info info)]
(display-check-info max-name-width info)]
[(check-location? info)
(display-check-info-name-value
max-name-width
'location
(trim-current-directory
(location->string
@ -144,16 +146,19 @@
displayln)]
[(check-params? info)
(display-check-info-name-value
max-name-width
'params
(check-info-value info)
(lambda (v) (map pretty-print v)))]
[(check-actual? info)
(display-check-info-name-value
max-name-width
'actual
(check-info-value info)
pretty-print)]
[(check-expected? info)
(display-check-info-name-value
max-name-width
'expected
(check-info-value info)
pretty-print)]
@ -161,7 +166,7 @@
(not verbose?))
(void)]
[else
(display-check-info info)]))
(display-check-info max-name-width info)]))
(sort-stack
(if verbose?
stack