diff --git a/ansi-tests/format-conditional.lsp b/ansi-tests/format-conditional.lsp index 427aae9d514dab98c18677d0fdfdfdda22402e04..ad45a3f67f81c3efe61cf74a7bc7e5672531f5a3 100644 --- a/ansi-tests/format-conditional.lsp +++ b/ansi-tests/format-conditional.lsp @@ -30,6 +30,12 @@ collect (format nil "~[a~;b~;c~;d~;e~;f~;g~;h~;i~]" i)) ("" "a" "b" "c" "d" "e" "f" "g" "h" "i" "" "")) +(deftest formatter.cond.7 + (let ((fn (formatter "~[a~;b~;c~;d~;e~;f~;g~;h~;i~]"))) + (loop for i from -1 to 10 + collect (formatter-call-to-string fn i))) + ("" "a" "b" "c" "d" "e" "f" "g" "h" "i" "" "")) + (def-format-test format.cond.8 "~0[a~;b~;c~;d~]" (3) "a" 1) @@ -50,11 +56,23 @@ collect (format nil "~v[a~;b~;c~;d~;e~;f~;g~;h~;i~]" i nil)) ("" "a" "b" "c" "d" "e" "f" "g" "h" "i" "" "")) +(deftest formatter.cond.13 + (let ((fn (formatter "~V[a~;b~;c~;d~;e~;f~;g~;h~;i~]"))) + (loop for i from -1 to 10 + collect (formatter-call-to-string fn i nil))) + ("" "a" "b" "c" "d" "e" "f" "g" "h" "i" "" "")) + (deftest format.cond.14 (loop for i from -1 to 10 collect (format nil "~v[a~;b~;c~;d~;e~;f~;g~;h~;i~]" nil i)) ("" "a" "b" "c" "d" "e" "f" "g" "h" "i" "" "")) +(deftest formatter.cond.14 + (let ((fn (formatter "~v[a~;b~;c~;d~;e~;f~;g~;h~;i~]"))) + (loop for i from -1 to 10 + collect (formatter-call-to-string fn nil i))) + ("" "a" "b" "c" "d" "e" "f" "g" "h" "i" "" "")) + (def-format-test format.cond.15 "~#[A~;B~]" nil "A") @@ -70,6 +88,14 @@ collect (list i s)) nil) +(deftest formatter.cond\:.1 + (let ((fn (formatter "~[~:;a~]"))) + (loop for i from -100 to 100 + for s = (formatter-call-to-string fn i) + unless (or (zerop i) (string= s "a")) + collect (list i s))) + nil) + (def-format-test format.cond\:.2 "~[a~:;b~]" (0) "a") @@ -84,16 +110,34 @@ collect (format nil "~[a~;b~;c~;d~:;e~]" i)) ("e" "a" "b" "c" "d" "e" "e" "e" "e" "e" "e" "e")) +(deftest formatter.cond\:.5 + (let ((fn (formatter "~[a~;b~;c~;d~:;e~]"))) + (loop for i from -1 to 10 + collect (formatter-call-to-string fn i))) + ("e" "a" "b" "c" "d" "e" "e" "e" "e" "e" "e" "e")) + (deftest format.cond\:.6 (loop for i from -1 to 10 collect (format nil "~v[a~;b~;c~;d~:;e~]" i nil)) ("e" "a" "b" "c" "d" "e" "e" "e" "e" "e" "e" "e")) +(deftest formatter.cond\:.6 + (let ((fn (formatter "~v[a~;b~;c~;d~:;e~]"))) + (loop for i from -1 to 10 + collect (formatter-call-to-string fn i nil))) + ("e" "a" "b" "c" "d" "e" "e" "e" "e" "e" "e" "e")) + (deftest format.cond\:.7 (loop for i from -1 to 10 collect (format nil "~v[a~;b~;c~;d~:;e~]" nil i)) ("e" "a" "b" "c" "d" "e" "e" "e" "e" "e" "e" "e")) +(deftest formatter.cond\:.7 + (let ((fn (formatter "~v[a~;b~;c~;d~:;e~]"))) + (loop for i from -1 to 10 + collect (formatter-call-to-string fn nil i))) + ("e" "a" "b" "c" "d" "e" "e" "e" "e" "e" "e" "e")) + (def-format-test format.cond\:.8 "~#[A~:;B~]" nil "A") @@ -112,6 +156,14 @@ collect (list x s)) nil) +(deftest formatter.\:cond.2 + (let ((fn (formatter "~:[a~;b~]"))) + (loop for x in *mini-universe* + for s = (formatter-call-to-string fn x) + when (and x (not (string= s "b"))) + collect (list x s))) + nil) + ;;; ~@[ ... ~] (def-format-test format.@cond.1