From 0775e415998452abd1de14e101561320e1e8c81c Mon Sep 17 00:00:00 2001
From: pfdietz <pfdietz@localhost>
Date: Fri, 15 Oct 2004 03:13:04 +0000
Subject: [PATCH] Added a random test for TYPECASE

---
 ansi-tests/typecase.lsp | 21 +++++++++++++++++++++
 1 file changed, 21 insertions(+)

diff --git a/ansi-tests/typecase.lsp b/ansi-tests/typecase.lsp
index 531ed51d..7cb53e3d 100644
--- a/ansi-tests/typecase.lsp
+++ b/ansi-tests/typecase.lsp
@@ -100,6 +100,27 @@
 		  (otherwise :bad)))
   (:good :good :good :good))
 
+;;; A randomized test
+
+(deftest typecase.19
+  (let* ((u (coerce *universe* 'vector))
+	 (len1 (length u))
+	 (types (coerce *cl-all-type-symbols* 'vector))
+	 (len2 (length types)))
+    (loop
+     for n = (random 10)
+     for my-types = (loop repeat n collect (elt types (random len2)))
+     for val = (elt u (random len1))
+     for i = (position val my-types :test #'typep)
+     for form = `(typecase ',val
+		   ,@(loop for i from 0 for type in my-types collect `(,type ,i))
+		   (otherwise nil))
+     for j = (eval form)
+     repeat 1000
+     unless (eql i j)
+     collect (list n my-types val i form j)))
+  nil)
+
 ;;; Error cases
 
 (deftest typecase.error.1
-- 
GitLab