diff --git a/ansi-tests/aux.lsp b/ansi-tests/aux.lsp index 65a62af39dea097e96147f05b77b593f33ad8983..db2a3765bb58ecb181a17b9ee9128aead055b253 100644 --- a/ansi-tests/aux.lsp +++ b/ansi-tests/aux.lsp @@ -150,3 +150,31 @@ condition itself on other errors." (defun string-invertcase (s) (map 'string #'char-invertcase s)) + + +(defun random-from-seq (seq) + "Generate a random member of a sequence." + (let ((len (length seq))) + (assert (> len 0)) + (elt seq (random len)))) + +(defmacro random-case (&body cases) + (let ((len (length cases))) + (assert (> len 0)) + `(case (random ,len) + ,@(loop for i from 0 for e in cases collect `(,i ,e)) + (t (error "Can't happen?! (in random-case~%"))))) + +(defun coin (&optional (n 2)) + "Flip an n-sided coin." + (eql (random n) 0)) + +;; Randomly permute a sequence +(defun random-permute (seq) + (setq seq (copy-seq seq)) + (let ((len (length seq))) + (loop for i from len downto 2 + do (let ((r (random i))) + (rotatef (elt seq r) (elt seq (1- i)))))) + seq) + diff --git a/ansi-tests/remove-aux.lsp b/ansi-tests/remove-aux.lsp index 9cdca6b31ef010aa19aae15ede34f42d968d92eb..fc697dff6a8bcab0427324c9e2fc231f1a6a53b9 100644 --- a/ansi-tests/remove-aux.lsp +++ b/ansi-tests/remove-aux.lsp @@ -21,19 +21,6 @@ (elt "abcdefgh" (random 8))) (t (error "Can't get random element of type ~A~%." type)))) -(defun random-from-seq (seq) - "Generate a random member of a sequence." - (let ((len (length seq))) - (assert (> len 0)) - (elt seq (random len)))) - -(defmacro random-case (&body cases) - (let ((len (length cases))) - (assert (> len 0)) - `(case (random ,len) - ,@(loop for i from 0 for e in cases collect `(,i ,e)) - (t (error "Can't happen?! (in random-case~%"))))) - (defun make-random-remove-input (len type element-type) "Randomly generate a test case for REMOVE. Given a length @@ -124,17 +111,6 @@ (defun my-remove-if-not (pred &rest args) (apply #'my-remove-if (complement pred) args)) -(defun coin (&optional (n 2)) (eql (random n) 0)) - -;; Randomly permute a sequence -(defun random-permute (seq) - (setq seq (copy-seq seq)) - (let ((len (length seq))) - (loop for i from len downto 2 - do (let ((r (random i))) - (rotatef (elt seq r) (elt seq (1- i)))))) - seq) - (defun make-random-rd-params (maxlen) "Generate random paramaters for remove/delete/etc. functions." (let* ((element-type t)