mirror of
https://github.com/ashinn/chibi-scheme.git
synced 2025-05-19 05:39:18 +02:00
61 lines
2.1 KiB
Scheme
61 lines
2.1 KiB
Scheme
|
|
(import (chibi) (srfi 33) (chibi test))
|
|
|
|
(test-begin "srfi-33")
|
|
|
|
(test 0 (bitwise-and #b0 #b1))
|
|
(test 1 (bitwise-and #b1 #b1))
|
|
(test 0 (bitwise-and #b1 #b10))
|
|
(test #b10 (bitwise-and #b11 #b10))
|
|
(test #b101 (bitwise-and #b101 #b111))
|
|
(test #b111 (bitwise-and -1 #b111))
|
|
(test #b110 (bitwise-and -2 #b111))
|
|
(test 3769478 (bitwise-and -4290775858 1694076839))
|
|
(test 1680869008 (bitwise-and -193073517 1689392892))
|
|
;; (test -2600468497 (bitwise-ior 1694076839 -4290775858))
|
|
;; (test -184549633 (bitwise-ior -193073517 1689392892))
|
|
;; (test -2604237975 (bitwise-xor 1694076839 -4290775858))
|
|
;; (test -1865418641 (bitwise-xor -193073517 1689392892))
|
|
|
|
(test 1 (arithmetic-shift 1 0))
|
|
(test 2 (arithmetic-shift 1 1))
|
|
(test 4 (arithmetic-shift 1 2))
|
|
(test 8 (arithmetic-shift 1 3))
|
|
(test 16 (arithmetic-shift 1 4))
|
|
(test (expt 2 31) (arithmetic-shift 1 31))
|
|
(test (expt 2 32) (arithmetic-shift 1 32))
|
|
(test (expt 2 33) (arithmetic-shift 1 33))
|
|
(test (expt 2 63) (arithmetic-shift 1 63))
|
|
(test (expt 2 64) (arithmetic-shift 1 64))
|
|
(test (expt 2 65) (arithmetic-shift 1 65))
|
|
(test (expt 2 127) (arithmetic-shift 1 127))
|
|
(test (expt 2 128) (arithmetic-shift 1 128))
|
|
(test (expt 2 129) (arithmetic-shift 1 129))
|
|
(test 3028397001194014464 (arithmetic-shift 11829675785914119 8))
|
|
|
|
(test -1 (arithmetic-shift -1 0))
|
|
(test -2 (arithmetic-shift -1 1))
|
|
(test -4 (arithmetic-shift -1 2))
|
|
(test -8 (arithmetic-shift -1 3))
|
|
(test -16 (arithmetic-shift -1 4))
|
|
(test (- (expt 2 31)) (arithmetic-shift -1 31))
|
|
(test (- (expt 2 32)) (arithmetic-shift -1 32))
|
|
(test (- (expt 2 33)) (arithmetic-shift -1 33))
|
|
(test (- (expt 2 63)) (arithmetic-shift -1 63))
|
|
(test (- (expt 2 64)) (arithmetic-shift -1 64))
|
|
(test (- (expt 2 65)) (arithmetic-shift -1 65))
|
|
(test (- (expt 2 127)) (arithmetic-shift -1 127))
|
|
(test (- (expt 2 128)) (arithmetic-shift -1 128))
|
|
(test (- (expt 2 129)) (arithmetic-shift -1 129))
|
|
|
|
(test 0 (arithmetic-shift 1 -63))
|
|
(test 0 (arithmetic-shift 1 -64))
|
|
(test 0 (arithmetic-shift 1 -65))
|
|
|
|
(test #x1000000000000000100000000000000000000000000000000
|
|
(arithmetic-shift #x100000000000000010000000000000000 64))
|
|
|
|
(test-not (bit-set? 64 1))
|
|
(test-assert (bit-set? 64 #x10000000000000000))
|
|
|
|
(test-end)
|