2
;;;; Author: Paul Dietz
3
;;;; Created: Sat Mar 28 07:39:29 1998
4
;;;; Contains: Tests of MEMBER-IF-NOT
8
(compile-and-load "cons-aux.lsp")
10
(deftest member-if-not.1
11
(member-if-not #'listp nil)
14
(deftest member-if-not.2
15
(member-if-not #'(lambda (x) (eqt x 'a)) '(a 1 2 a 3 4))
18
(deftest member-if-not.3
19
(member-if-not #'(lambda (x) (not (eql x 12))) '(4 12 11 73 11) :key #'1+)
22
(deftest member-if-not.4
24
`(1 a 11.3121 11.31s3 1.123f5 -1 0
25
13.13122d34 581.131e-10
31
(let ((result (catch-type-error (member-if-not #'listp x))))
32
(or (eqt result 'type-error)
34
(format t "~%On x = ~S, returns: ~%~S" x result)
39
(deftest member-if-not.5
40
(member-if-not #'not '(1 2 3 4 5) :key #'evenp)
43
;;; Order of evaluation tests
45
(deftest member-if-not.order.1
48
(member-if-not (progn (setf x (incf i))
50
(progn (setf y (incf i))
51
'(nil nil a b nil c d)))
55
(deftest member-if-not.order.2
58
(member-if-not (progn (setf x (incf i))
60
(progn (setf y (incf i))
61
'(nil nil a b nil c d))
62
:key (progn (setf z (incf i)) #'identity)
63
:key (progn (setf w (incf i)) #'not))
66
(a b nil c d) 4 1 2 3 4)
70
(deftest member-if-not.keywords.1
71
(member-if-not #'not '(1 2 3 4 5) :key #'evenp :key #'oddp)
74
(deftest member-if-not.allow-other-keys.2
75
(member-if-not #'not '(nil 2 3 4 5) :allow-other-keys t :bad t)
78
(deftest member-if-not.allow-other-keys.3
79
(member-if-not #'not '(nil 2 3 4 5) :bad t :allow-other-keys t)
82
(deftest member-if-not.allow-other-keys.4
83
(member-if-not #'not '(nil 2 3 4 5) :allow-other-keys t)
86
(deftest member-if-not.allow-other-keys.5
87
(member-if-not #'not '(nil 2 3 4 5) :allow-other-keys nil)
90
(deftest member-if-not.allow-other-keys.6
91
(member-if-not #'not '(nil 2 3 4 5) :allow-other-keys t
92
:allow-other-keys nil :key #'identity :key #'null)
97
(deftest member-if-not.error.1
98
(signals-error (member-if-not #'identity 'a) type-error)
101
(deftest member-if-not.error.2
102
(signals-error (member-if-not) program-error)
105
(deftest member-if-not.error.3
106
(signals-error (member-if-not #'null) program-error)
109
(deftest member-if-not.error.4
110
(signals-error (member-if-not #'null '(a b c) :bad t) program-error)
113
(deftest member-if-not.error.5
114
(signals-error (member-if-not #'null '(a b c) :bad t :allow-other-keys nil)
118
(deftest member-if-not.error.6
119
(signals-error (member-if-not #'null '(a b c) :key) program-error)
122
(deftest member-if-not.error.7
123
(signals-error (member-if-not #'null '(a b c) 1 2) program-error)
126
(deftest member-if-not.error.8
127
(signals-error (locally (member-if-not #'identity 'a) t)
131
(deftest member-if-not.error.9
132
(signals-error (member-if-not #'cons '(a b c)) program-error)
135
(deftest member-if-not.error.10
136
(signals-error (member-if-not #'identity '(a b c) :key #'cons)