r4878: Auto commit for Debian build
authorKevin M. Rosenberg <kevin@rosenberg.net>
Thu, 8 May 2003 19:19:08 +0000 (19:19 +0000)
committerKevin M. Rosenberg <kevin@rosenberg.net>
Thu, 8 May 2003 19:19:08 +0000 (19:19 +0000)
kmrcl-tests.asd
strings.lisp
tests.lisp

index 8f5a4464b6110a3a183fede74879418d542ae732..0f486bacfbb432b9dd9ee876a4f53b10ab851262 100644 (file)
@@ -7,7 +7,7 @@
 ;;;; Author:        Kevin M. Rosenberg
 ;;;; Date Started:  Apr 2003
 ;;;;
-;;;; $Id: kmrcl-tests.asd,v 1.1 2003/04/28 21:12:27 kevin Exp $
+;;;; $Id: kmrcl-tests.asd,v 1.2 2003/05/08 19:19:08 kevin Exp $
 ;;;; *************************************************************************
 
 (defpackage #:kmrcl-tests-system
@@ -16,7 +16,8 @@
 
 (defsystem kmrcl-tests
     :depends-on (:rt :kmrcl)
-    :components ((:file "tests")))
+    :components
+    ((:file "tests")))
 
 (defmethod perform ((o test-op) (c (eql (find-system :kmrcl-tests))))
   (or (funcall (intern (symbol-name '#:do-tests)
index 2537616e10107d9f6274843a22199da30a1c0d11..e12d9d9aeee29c2db549e0bad4410ae9ac67ff44 100644 (file)
@@ -7,7 +7,7 @@
 ;;;; Programmer:    Kevin M. Rosenberg
 ;;;; Date Started:  Apr 2000
 ;;;;
-;;;; $Id: strings.lisp,v 1.22 2003/05/06 08:15:15 kevin Exp $
+;;;; $Id: strings.lisp,v 1.23 2003/05/08 19:19:08 kevin Exp $
 ;;;;
 ;;;; This file, part of KMRCL, is Copyright (c) 2002 by Kevin M. Rosenberg
 ;;;;
@@ -236,12 +236,16 @@ list of characters and replacement strings."
 (defun concat-separated-strings (separator &rest lists)
   (format nil (format nil "~~{~~A~~^~A~~}" separator) (append-sublists lists)))
 
+(defun only-null-list-elements-p (lst)
+  (or (null lst) (every #'null lst)))
+
 (defun print-separated-strings (strm separator &rest lists)
   (declare (optimize (speed 3) (safety 0) (space 0) (debug 0)
                     (compilation-speed 0)))
   (do* ((rest-lists lists (cdr rest-lists))
        (list (car rest-lists) (car rest-lists))
-       (last-list (null (cdr rest-lists)) (null (cdr rest-lists))))
+       (last-list (only-null-list-elements-p (cdr rest-lists))
+                  (only-null-list-elements-p (cdr rest-lists))))
        ((null rest-lists) strm)
     (do* ((lst list (cdr lst))
          (elem (car lst) (car lst))
index 5b7c7be7061fbbe8742ffbfc4646fba0407b5492..b68cecfe2dba87599ad5c1f106eb7c66982562a6 100644 (file)
@@ -7,7 +7,7 @@
 ;;;; Author:        Kevin M. Rosenberg
 ;;;; Date Started:  Apr 2003
 ;;;;
-;;;; $Id: tests.lisp,v 1.12 2003/05/07 16:07:13 kevin Exp $
+;;;; $Id: tests.lisp,v 1.13 2003/05/08 19:19:08 kevin Exp $
 ;;;;
 ;;;; This file is Copyright (c) 2000-2002 by Kevin M. Rosenberg
 ;;;;
 (deftest apsl.4 (append-sublists '((a))) (a))
 (deftest apsl.5 (append-sublists '((a) (b) (c d (e f g)))) (a b c d (e f g)))
 
+(deftest pss.0 (with-output-to-string (s) (print-separated-strings s "|" nil)) 
+  "")
+
+(deftest pss.1
+    (with-output-to-string (s) (print-separated-strings s "|" '("ab")) )
+  "ab")
+
+(deftest pss.2
+    (with-output-to-string (s) (print-separated-strings s "|" '("ab" "cd")))
+    "ab|cd")
+
+(deftest pss.3
+    (with-output-to-string (s) (print-separated-strings s "|" '("ab" "cd") nil))
+    "ab|cd")
+
+(deftest pss.4
+    (with-output-to-string (s)
+      (print-separated-strings s "|" '("ab" "cd") nil nil))
+    "ab|cd")
+
+(deftest pss.5
+    (with-output-to-string (s)
+      (print-separated-strings s "|" '("ab" "cd") nil '("ef") nil))
+    "ab|cd|ef")
+
+(deftest css.0 (concat-separated-strings "|" nil) "")
+(deftest css.1 (concat-separated-strings "|" nil nil) "")
+(deftest css.2 (concat-separated-strings "|" '("ab")) "ab")
+(deftest css.3 (concat-separated-strings "|" '("ab" "cd")) "ab|cd")
+(deftest css.4 (concat-separated-strings "|" '("ab" "cd") nil) "ab|cd")
+(deftest css.5 (concat-separated-strings "|" '("ab" "cd") nil '("ef")) "ab|cd|ef")
+
 (eval-when (:compile-toplevel :load-toplevel :execute)
   (when (find-package '#:kmr-mop)
     (pushnew :kmrtest-mop cl:*features*)))