Added gen-buffer generator
authorMarco Baringer <mb@bese.it>
Mon, 13 Mar 2006 21:54:03 +0000 (22:54 +0100)
committerMarco Baringer <mb@bese.it>
Mon, 13 Mar 2006 21:54:03 +0000 (22:54 +0100)
src/packages.lisp
src/random.lisp

index 3177b8b..7828de5 100644 (file)
@@ -50,6 +50,7 @@
            #:gen-character
            #:gen-string
            #:gen-list
+           #:gen-buffer
           ;; running tests
            #:run
            #:run-all-tests
index f2d8a0a..e869a1c 100644 (file)
@@ -234,5 +234,12 @@ producs objects."
        repeat (funcall length)
        collect (funcall elements))))
 
+(defun gen-buffer (&key (length (gen-integer :min 0 :max 50))
+                        (element-type '(unsigned-byte 8))
+                        (elements (gen-integer :min 0 :max (1- (expt 2 8)))))
+  (lambda ()
+    (let ((buffer (make-array (funcall length) :element-type element-type)))
+      (map-into buffer elements))))
+
 ;;;; The trivial always-produce-the-same-thing generator is done using
 ;;;; cl:constantly.