From 9fb19a6ca32e8ee74e37ee7d17db7d4ce791f57a Mon Sep 17 00:00:00 2001
From: pfdietz <pfdietz@localhost>
Date: Wed, 27 Jul 2005 03:09:01 +0000
Subject: [PATCH] Added more remove-duplicates, delete-duplicates tests.  Check
 that when we're comparing under EQUAL or EQUALP, the item preserved (under
 EQL) is as dictated by the value of FROM-END

---
 ansi-tests/remove-duplicates.lsp | 127 +++++++++++++++++++++++++++++++
 1 file changed, 127 insertions(+)

diff --git a/ansi-tests/remove-duplicates.lsp b/ansi-tests/remove-duplicates.lsp
index 28a8d6ad..90d61b54 100644
--- a/ansi-tests/remove-duplicates.lsp
+++ b/ansi-tests/remove-duplicates.lsp
@@ -329,7 +329,134 @@
      (assert (string= s2 "abcdefgz"))))
   nil)
 
+;;; Order of elements kept under EQUAL, EQUALP tests
 
+(deftest remove-duplicates.2
+  (let* ((x (list 'a))
+	 (y (list 'a))
+	 (result (remove-duplicates (list x y) :test 'equal)))
+    (values
+     result
+     (notnot (eql (car result) x))
+     (notnot (eql (car result) y))))
+  ((a)) nil t)
+
+(deftest remove-duplicates.2a
+  (let* ((x (list 'a))
+	 (y (list 'a))
+	 (result (remove-duplicates (list x 'x y) :test 'equal)))
+    (values
+     result
+     (notnot (eql (cadr result) x))
+     (notnot (eql (cadr result) y))))
+  (x (a)) nil t)
+
+(deftest remove-duplicates.3
+  (let* ((x (list 'a))
+	 (y (list 'a))
+	 (result (remove-duplicates (list x y) :test 'equal :from-end t)))
+    (values
+     result
+     (notnot (eql (car result) x))
+     (notnot (eql (car result) y))))
+  ((a)) t nil)
+
+(deftest remove-duplicates.3a
+  (let* ((x (list 'a))
+	 (y (list 'a))
+	 (result (remove-duplicates (list x 'u 'v y) :test 'equal :from-end t)))
+    (values
+     result
+     (notnot (eql (car result) x))
+     (notnot (eql (car result) y))))
+  ((a) u v) t nil)
+
+(deftest remove-duplicates.4
+  (let* ((x (list 'a))
+	 (y (list 'a))
+	 (result (remove-duplicates (list x y) :test 'equalp)))
+    (values
+     result
+     (notnot (eql (car result) x))
+     (notnot (eql (car result) y))))
+  ((a)) nil t)
+
+(deftest remove-duplicates.5
+  (let* ((x (list 'a))
+	 (y (list 'a))
+	 (result (remove-duplicates (list x y) :test 'equalp :from-end t)))
+    (values
+     result
+     (notnot (eql (car result) x))
+     (notnot (eql (car result) y))))
+  ((a)) t nil)
+
+;;; Similar, but destructive
+
+(deftest delete-duplicates.2
+  (let* ((x (list 'a))
+	 (y (list 'a))
+	 (result (delete-duplicates (list x y) :test 'equal)))
+    (values
+     result
+     (notnot (eql (car result) x))
+     (notnot (eql (car result) y))))
+  ((a)) nil t)
+
+(deftest delete-duplicates.2a
+  (let* ((x (list 'a))
+	 (y (list 'a))
+	 (result (delete-duplicates (list x 'x y) :test 'equal)))
+    (values
+     result
+     (notnot (eql (cadr result) x))
+     (notnot (eql (cadr result) y))))
+  (x (a)) nil t)
+
+(deftest delete-duplicates.3
+  (let* ((x (list 'a))
+	 (y (list 'a))
+	 (result (delete-duplicates (list x y) :test 'equal :from-end t)))
+    (values
+     result
+     (notnot (eql (car result) x))
+     (notnot (eql (car result) y))))
+  ((a)) t nil)
+
+(deftest delete-duplicates.3a
+  (let* ((x (list 'a))
+	 (y (list 'a))
+	 (result (delete-duplicates (list x 'u 'v y) :test 'equal :from-end t)))
+    (values
+     result
+     (notnot (eql (car result) x))
+     (notnot (eql (car result) y))))
+  ((a) u v) t nil)
+
+(deftest delete-duplicates.4
+  (let* ((x (list 'a))
+	 (y (list 'a))
+	 (result (delete-duplicates (list x y) :test 'equalp)))
+    (values
+     result
+     (notnot (eql (car result) x))
+     (notnot (eql (car result) y))))
+  ((a)) nil t)
+
+(deftest delete-duplicates.5
+  (let* ((x (list 'a))
+	 (y (list 'a))
+	 (result (delete-duplicates (list x y) :test 'equalp :from-end t)))
+    (values
+     result
+     (notnot (eql (car result) x))
+     (notnot (eql (car result) y))))
+  ((a)) t nil)
+
+
+
+    
+    
 
 
 		    
\ No newline at end of file
-- 
GitLab