diff --git a/ansi-tests/format-justify.lsp b/ansi-tests/format-justify.lsp index b646c91b0ca3a243d8c2b6e14ae96c27e500477c..9a55133416e159b21f44b58567ed499eaedf5cc4 100644 --- a/ansi-tests/format-justify.lsp +++ b/ansi-tests/format-justify.lsp @@ -54,3 +54,119 @@ collect (list i expected s2)) nil) +(def-pprint-test format.justify.7 + (loop for mincol = (random 50) + for len = (random 50) + for s1 = (make-string len :initial-element #\x) + for s2 = (format nil "~v<~A~>" mincol s1) + for expected = (if (< len mincol) + (concatenate 'string + (make-string (- mincol len) :initial-element #\Space) + s1) + s1) + repeat 100 + unless (string= s2 expected) + collect (list mincol len s1 s2 expected)) + nil) + +(def-pprint-test format.justify.8 + (loop for mincol = (random 50) + for minpad = (random 10) + for len = (random 50) + for s1 = (make-string len :initial-element #\x) + for s2 = (format nil "~v,,v<~A~>" mincol minpad s1) + for expected = (if (< len mincol) + (concatenate 'string + (make-string (- mincol len) :initial-element #\Space) + s1) + s1) + repeat 100 + unless (string= s2 expected) + collect (list mincol minpad len s1 s2 expected)) + nil) + +(def-pprint-test format.justify.9 + (loop for mincol = (random 50) + for padchar = (random-from-seq +standard-chars+) + for len = (random 50) + for s1 = (make-string len :initial-element #\x) + for s2 = (format nil "~v,,,v<~A~>" mincol padchar s1) + for expected = (if (< len mincol) + (concatenate 'string + (make-string (- mincol len) :initial-element padchar) + s1) + s1) + repeat 100 + unless (string= s2 expected) + collect (list mincol padchar len s1 s2 expected)) + nil) + +(def-pprint-test format.justify.10 + (loop for mincol = (random 50) + for padchar = (random-from-seq +standard-chars+) + for len = (random 50) + for s1 = (make-string len :initial-element #\x) + for s2 = (format nil (format nil "~~~d,,,'~c<~~A~~>" mincol padchar) s1) + for expected = (if (< len mincol) + (concatenate 'string + (make-string (- mincol len) :initial-element padchar) + s1) + s1) + repeat 500 + unless (string= s2 expected) + collect (list mincol padchar len s1 s2 expected)) + nil) + +(def-pprint-test format.justify.11 + (loop for i = (1+ (random 20)) + for colinc = (1+ (random 10)) + for s1 = (make-string i :initial-element #\x) + for s2 = (format nil "~,v<~A~>" colinc s1) + for expected-len = (* colinc (ceiling i colinc)) + for expected = (concatenate 'string + (make-string (- expected-len i) :initial-element #\Space) + s1) + repeat 10 + unless (string= expected s2) + collect (list i colinc expected s2)) + nil) + +(def-pprint-test format.justify.12 + (format nil "~<XXXXXX~^~>") + "") + +(def-pprint-test format.justify.13 + (format nil "~<XXXXXX~;YYYYYYY~^~>") + "XXXXXX") + +(def-pprint-test format.justify.14 + (format nil "~<XXXXXX~;YYYYYYY~^~;ZZZZZ~>") + "XXXXXX") + +(def-pprint-test format.justify.15 + (format nil "~13,,2<aaa~;bbb~;ccc~>") + "aaa bbb ccc") + +(def-pprint-test format.justify.16 + (format nil "~10@<abcdef~>") + "abcdef ") + +(def-pprint-test format.justify.17 + (format nil "~10:@<abcdef~>") + " abcdef ") + +(def-pprint-test format.justify.18 + (format nil "~10:<abcdef~>") + " abcdef") + +(def-pprint-test format.justify.19 + (format nil "~4@<~>") + " ") + +(def-pprint-test format.justify.20 + (format nil "~5:@<~>") + " ") + +(def-pprint-test format.justify.21 + (format nil "~6:<~>") + " ") \ No newline at end of file