2
;;;; Author: Paul Dietz
3
;;;; Created: Tue Sep 9 07:02:00 2003
4
;;;; Contains: Tests of LOGBITP
8
(compile-and-load "numbers-aux.lsp")
12
(deftest logbitp.error.1
13
(signals-error (logbitp) program-error)
16
(deftest logbitp.error.2
17
(signals-error (logbitp 0) program-error)
20
(deftest logbitp.error.3
21
(signals-error (logbitp 0 0 0) program-error)
24
(deftest logbitp.error.4
25
(signals-error (logbitp -1 0) type-error)
28
(deftest logbitp.error.5
29
(loop for x in *mini-universe*
30
unless (or (integerp x)
31
(eval `(signals-error (logbitp 0 ',x) type-error)))
38
(loop for x in *integers*
39
unless (if (logbitp 0 x) (oddp x) (evenp x))
44
(loop for len from 0 to 300
46
always (and (logbitp len i)
47
(loop for j from 0 to 300
48
always (or (eql j len)
49
(not (logbitp j i))))))
53
(logbitp most-positive-fixnum 0)
57
(notnot-mv (logbitp most-positive-fixnum -1))
61
(logbitp (1+ most-positive-fixnum) 0)
65
(notnot-mv (logbitp (1+ most-positive-fixnum) -1))
69
(loop for len = (random 100)
70
for i = (random-from-interval (ash 1 len))
71
for k = (random (1+ len))
73
unless (if (ldb-test (byte 1 k) i)
80
(loop for k from 1 to 1000
81
always (logbitp k -1))
84
(deftest logbitp.order.1
87
(logbitp (progn (setf a (incf i)) 2)
88
(progn (setf b (incf i)) #b111010))