10 |
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
11 |
;;; member-if |
;;; member-if |
12 |
|
|
13 |
(deftest member-if-1 |
(deftest member-if.1 |
14 |
(member-if #'listp nil) |
(member-if #'listp nil) |
15 |
nil) |
nil) |
16 |
|
|
17 |
(deftest member-if-2 |
(deftest member-if.2 |
18 |
(member-if #'(lambda (x) (eqt x 'a)) '(1 2 a 3 4)) |
(member-if #'(lambda (x) (eqt x 'a)) '(1 2 a 3 4)) |
19 |
(a 3 4)) |
(a 3 4)) |
20 |
|
|
21 |
(deftest member-if-3 |
(deftest member-if.3 |
22 |
(member-if #'(lambda (x) (eql x 12)) '(4 12 11 73 11) :key #'1+) |
(member-if #'(lambda (x) (eql x 12)) '(4 12 11 73 11) :key #'1+) |
23 |
(11 73 11)) |
(11 73 11)) |
24 |
|
|
25 |
(deftest member-if-4 |
(deftest member-if.4 |
26 |
(let ((test-inputs |
(let ((test-inputs |
27 |
`(1 a 11.3121 11.31s3 1.123f5 -1 0 |
`(1 a 11.3121 11.31s3 1.123f5 -1 0 |
28 |
13.13122d34 581.131e-10 |
13.13122d34 581.131e-10 |
40 |
test-inputs))) |
test-inputs))) |
41 |
t) |
t) |
42 |
|
|
43 |
(deftest member-if-5 |
(deftest member-if.5 |
44 |
(member-if #'identity '(1 2 3 4 5) :key #'evenp) |
(member-if #'identity '(1 2 3 4 5) :key #'evenp) |
45 |
(2 3 4 5)) |
(2 3 4 5)) |
46 |
|
|
47 |
|
;;; Order of argument tests |
48 |
|
|
49 |
|
(deftest member-if.6 |
50 |
|
(let ((i 0) x y) |
51 |
|
(values |
52 |
|
(member-if (progn (setf x (incf i)) |
53 |
|
#'identity) |
54 |
|
(progn (setf y (incf i)) |
55 |
|
'(nil nil a b nil c d))) |
56 |
|
i x y)) |
57 |
|
(a b nil c d) 2 1 2) |
58 |
|
|
59 |
|
(deftest member-if.7 |
60 |
|
(let ((i 0) x y z w) |
61 |
|
(values |
62 |
|
(member-if (progn (setf x (incf i)) |
63 |
|
#'identity) |
64 |
|
(progn (setf y (incf i)) |
65 |
|
'(nil nil a b nil c d)) |
66 |
|
:key (progn (setf z (incf i)) #'identity) |
67 |
|
:key (progn (setf w (incf i)) #'not)) |
68 |
|
|
69 |
|
i x y z w)) |
70 |
|
(a b nil c d) 4 1 2 3 4) |
71 |
|
|
72 |
|
|
73 |
;;; Keyword tests |
;;; Keyword tests |
74 |
|
|
75 |
(deftest member-if.keywords.1 |
(deftest member-if.keywords.1 |
105 |
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
106 |
;;; member-if-not |
;;; member-if-not |
107 |
|
|
108 |
(deftest member-if-not-1 |
(deftest member-if-not.1 |
109 |
(member-if-not #'listp nil) |
(member-if-not #'listp nil) |
110 |
nil) |
nil) |
111 |
|
|
112 |
(deftest member-if-not-2 |
(deftest member-if-not.2 |
113 |
(member-if-not #'(lambda (x) (eqt x 'a)) '(a 1 2 a 3 4)) |
(member-if-not #'(lambda (x) (eqt x 'a)) '(a 1 2 a 3 4)) |
114 |
(1 2 a 3 4)) |
(1 2 a 3 4)) |
115 |
|
|
116 |
(deftest member-if-not-3 |
(deftest member-if-not.3 |
117 |
(member-if-not #'(lambda (x) (not (eql x 12))) '(4 12 11 73 11) :key #'1+) |
(member-if-not #'(lambda (x) (not (eql x 12))) '(4 12 11 73 11) :key #'1+) |
118 |
(11 73 11)) |
(11 73 11)) |
119 |
|
|
120 |
(deftest member-if-not-4 |
(deftest member-if-not.4 |
121 |
(let ((test-inputs |
(let ((test-inputs |
122 |
`(1 a 11.3121 11.31s3 1.123f5 -1 0 |
`(1 a 11.3121 11.31s3 1.123f5 -1 0 |
123 |
13.13122d34 581.131e-10 |
13.13122d34 581.131e-10 |
134 |
test-inputs))) |
test-inputs))) |
135 |
nil) |
nil) |
136 |
|
|
137 |
(deftest member-if-not-5 |
(deftest member-if-not.5 |
138 |
(member-if-not #'not '(1 2 3 4 5) :key #'evenp) |
(member-if-not #'not '(1 2 3 4 5) :key #'evenp) |
139 |
(2 3 4 5)) |
(2 3 4 5)) |
140 |
|
|
141 |
|
;;; Order of evaluation tests |
142 |
|
|
143 |
|
(deftest member-if-not.6 |
144 |
|
(let ((i 0) x y) |
145 |
|
(values |
146 |
|
(member-if-not (progn (setf x (incf i)) |
147 |
|
#'not) |
148 |
|
(progn (setf y (incf i)) |
149 |
|
'(nil nil a b nil c d))) |
150 |
|
i x y)) |
151 |
|
(a b nil c d) 2 1 2) |
152 |
|
|
153 |
|
(deftest member-if-not.7 |
154 |
|
(let ((i 0) x y z w) |
155 |
|
(values |
156 |
|
(member-if-not (progn (setf x (incf i)) |
157 |
|
#'not) |
158 |
|
(progn (setf y (incf i)) |
159 |
|
'(nil nil a b nil c d)) |
160 |
|
:key (progn (setf z (incf i)) #'identity) |
161 |
|
:key (progn (setf w (incf i)) #'not)) |
162 |
|
|
163 |
|
i x y z w)) |
164 |
|
(a b nil c d) 4 1 2 3 4) |
165 |
|
|
166 |
;;; Keyword tests |
;;; Keyword tests |
167 |
|
|
168 |
(deftest member-if-not.keywords.1 |
(deftest member-if-not.keywords.1 |