2
;;;; Author: Paul Dietz
3
;;;; Created: Tue Sep 9 05:52:31 2003
4
;;;; Contains: Tests of LOGANDC2
8
(compile-and-load "numbers-aux.lsp")
12
(deftest logandc2.error.1
13
(loop for x in *mini-universe*
14
unless (or (integerp x)
15
(eval `(signals-error (logandc2 ',x 0) type-error)))
19
(deftest logandc2.error.2
20
(loop for x in *mini-universe*
21
unless (or (integerp x)
22
(eval `(signals-error (logandc2 0 ',x) type-error)))
26
(deftest logandc2.error.3
27
(signals-error (logandc2) program-error)
30
(deftest logandc2.error.4
31
(signals-error (logandc2 0) program-error)
34
(deftest logandc2.error.5
35
(signals-error (logandc2 1 2 3) program-error)
49
(logandc2 (1+ most-positive-fixnum) 0)
50
#.(1+ most-positive-fixnum))
53
(loop for x in *integers*
54
always (and (eql x (logandc2 x 0))
55
(eql 0 (logandc2 x x))
56
(eql x (logandc2 x (lognot x)))
57
(eql (lognot x) (logandc2 (lognot x) x))))
61
(loop for x = (random-fixnum)
64
unless (eql x (logandc2 x xc))
69
(loop for x = (random-from-interval (ash 1 (random 200)))
70
for y = (random-from-interval (ash 1 (random 200)))
71
for z = (logandc2 x y)
73
unless (and (if (and (< x 0) (>= y 0))
76
(loop for i from 1 to 210
77
always (if (and (not (logbitp i y))
80
(not (logbitp i z)))))
84
(deftest logandc2.order.1
87
(logandc2 (progn (setf a (incf i)) -1)
88
(progn (setf b (incf i)) 0))