diff --git a/test-suite/tests/numbers.test b/test-suite/tests/numbers.test index 09c607b92..66830f93e 100644 --- a/test-suite/tests/numbers.test +++ b/test-suite/tests/numbers.test @@ -1796,6 +1796,33 @@ ;;; inexact->exact ;;; +;;; +;;; integer-length +;;; + +(with-test-prefix "integer-length" + + (with-test-prefix "-2^i, ...11100..00" + (do ((n -1 (ash n 1)) + (i 0 (1+ i))) + ((> i 256)) + (pass-if (list n "expect" i) + (= i (integer-length n))))) + + (with-test-prefix "-2^i+1 ...11100..01" + (do ((n -3 (logxor 3 (ash n 1))) + (i 2 (1+ i))) + ((> i 256)) + (pass-if n + (= i (integer-length n))))) + + (with-test-prefix "-2^i-1 ...111011..11" + (do ((n -2 (1+ (ash n 1))) + (i 1 (1+ i))) + ((> i 256)) + (pass-if n + (= i (integer-length n)))))) + ;;; ;;; logcount ;;;