2
;;;; Author: Paul Dietz
3
;;;; Created: Tue Sep 9 06:08:21 2003
4
;;;; Contains: Tests of LOGIOR
10
(compile-and-load "numbers-aux.lsp")
14
(deftest logior.error.1
15
(loop for x in *mini-universe*
16
unless (or (integerp x)
17
(eval `(signals-error (logior ',x) type-error)))
21
(deftest logior.error.2
22
(loop for x in *mini-universe*
23
unless (or (integerp x)
24
(eval `(signals-error (logior 0 ',x) type-error)))
43
(loop for x in *integers*
44
always (eql x (logior x)))
48
(loop for x in *integers*
49
always (eql -1 (logior x (lognot x))))
53
(loop for x = (random-fixnum)
56
unless (eql -1 (logior x xc))
61
(loop for x = (random-from-interval (ash 1 (random 200)))
62
for y = (random-from-interval (ash 1 (random 200)))
65
unless (and (if (or (< x 0) (< y 0))
68
(loop for i from 1 to 210
69
always (if (or (logbitp i x)
72
(not (logbitp i z)))))
77
(loop for i from 1 to (min 256 (1- call-arguments-limit))
78
for args = (nconc (make-list (1- i) :initial-element 0)
80
always (eql (apply #'logior args) -21231))
83
(deftest logior.order.1
86
(logior (progn (setf a (incf i)) #b11010)
87
(progn (setf b (incf i)) #b10110))
91
(deftest logior.order.2
94
(logior (progn (setf a (incf i)) #b10011)
95
(progn (setf b (incf i)) #b10110)
96
(progn (setf c (incf i)) #b110101))