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

View File

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