(alist-delete): New tests.
authorKevin Ryde <user42@zip.com.au>
Mon, 6 Dec 2004 00:12:00 +0000 (00:12 +0000)
committerKevin Ryde <user42@zip.com.au>
Mon, 6 Dec 2004 00:12:00 +0000 (00:12 +0000)
test-suite/tests/srfi-1.test

index d34f1b6..18a4c76 100644 (file)
   (let ((old '((1 . 2) (3 . 4) (5 . 6))))
     (pass-if old (valid-alist-copy? old (alist-copy old)))))
 
+;;
+;; alist-delete
+;;
+
+(with-test-prefix "alist-delete"
+
+  (pass-if "equality call arg order"
+    (let ((good #f))
+      (alist-delete 'k '((ak . 123))
+                   (lambda (k ak)
+                     (if (and (eq? k 'k) (eq? ak 'ak))
+                         (set! good #t))))
+      good))
+
+  (pass-if "delete keys greater than 5"
+    (equal? '((4 . x) (5 . y))
+           (alist-delete 5 '((4 . x) (5 . y) (6 . z)) <)))
+
+  (pass-if "empty"
+    (equal? '() (alist-delete 'x '())))
+
+  (pass-if "(y)"
+    (equal? '() (alist-delete 'y '((y . 1)))))
+
+  (pass-if "(n)"
+    (equal? '((n . 1)) (alist-delete 'y '((n . 1)))))
+
+  (pass-if "(y y)"
+    (equal? '() (alist-delete 'y '((y . 1) (y . 2)))))
+
+  (pass-if "(n y)"
+    (equal? '((n . 1)) (alist-delete 'y '((n . 1) (y . 2)))))
+
+  (pass-if "(y n)"
+    (equal? '((n . 2)) (alist-delete 'y '((y . 1) (n . 2)))))
+
+  (pass-if "(n n)"
+    (equal? '((n . 1) (n . 2)) (alist-delete 'y '((n . 1) (n . 2)))))
+
+  (pass-if "(y y y)"
+    (equal? '() (alist-delete 'y '((y . 1) (y . 2) (y . 3)))))
+
+  (pass-if "(n y y)"
+    (equal? '((n . 1)) (alist-delete 'y '((n . 1) (y . 2) (y . 3)))))
+
+  (pass-if "(y n y)"
+    (equal? '((n . 2)) (alist-delete 'y '((y . 1) (n . 2) (y . 3)))))
+
+  (pass-if "(n n y)"
+    (equal? '((n . 1) (n . 2)) (alist-delete 'y '((n . 1) (n . 2) (y . 3)))))
+
+  (pass-if "(y y n)"
+    (equal? '( (n . 3)) (alist-delete 'y '((y . 1) (y . 2) (n . 3)))))
+
+  (pass-if "(n y n)"
+    (equal? '((n . 1) (n . 3)) (alist-delete 'y '((n . 1) (y . 2) (n . 3)))))
+
+  (pass-if "(y n n)"
+    (equal? '((n . 2) (n . 3)) (alist-delete 'y '((y . 1) (n . 2) (n . 3)))))
+
+  (pass-if "(n n n)"
+    (equal? '((n . 1) (n . 2) (n . 3)) (alist-delete 'y '((n . 1) (n . 2) (n . 3))))))
+
 ;;
 ;; append-map
 ;;