]> gitweb.factorcode.org Git - factor.git/blob - basis/math/bitwise/bitwise-tests.factor
a5919d3ec30bedca953e789e698b4ac60a4422e2
[factor.git] / basis / math / bitwise / bitwise-tests.factor
1 USING: accessors math math.bitwise tools.test kernel words
2 specialized-arrays alien.c-types math.vectors.simd
3 sequences destructors libc ;
4 SPECIALIZED-ARRAY: int
5 IN: math.bitwise.tests
6
7 [ 0 ] [ 1 0 0 bitroll ] unit-test
8 [ 1 ] [ 1 0 1 bitroll ] unit-test
9 [ 1 ] [ 1 1 1 bitroll ] unit-test
10 [ 1 ] [ 1 0 2 bitroll ] unit-test
11 [ 1 ] [ 1 0 1 bitroll ] unit-test
12 [ 1 ] [ 1 20 2 bitroll ] unit-test
13 [ 1 ] [ 1 8 8 bitroll ] unit-test
14 [ 1 ] [ 1 -8 8 bitroll ] unit-test
15 [ 1 ] [ 1 -32 8 bitroll ] unit-test
16 [ 128 ] [ 1 -1 8 bitroll ] unit-test
17 [ 8 ] [ 1 3 32 bitroll ] unit-test
18
19 [ 0 ] [ { } bitfield ] unit-test
20 [ 256 ] [ 1 { 8 } bitfield ] unit-test
21 [ 268 ] [ 3 1 { 8 2 } bitfield ] unit-test
22 [ 268 ] [ 1 { 8 { 3 2 } } bitfield ] unit-test
23 : test-1+ ( x -- y ) 1 + ;
24 [ 512 ] [ 1 { { test-1+ 8 } } bitfield ] unit-test
25
26 CONSTANT: a 1
27 CONSTANT: b 2
28
29 : foo ( -- flags ) { a b } flags ;
30
31 [ 3 ] [ foo ] unit-test
32 [ 3 ] [ { a b } flags ] unit-test
33 \ foo def>> must-infer
34
35 [ 1 ] [ { 1 } flags ] unit-test
36
37 [ 8 ] [ 0 3 toggle-bit ] unit-test
38 [ 0 ] [ 8 3 toggle-bit ] unit-test
39
40 [ 4 ] [ BIN: 1010101 bit-count ] unit-test
41 [ 0 ] [ BIN: 0 bit-count ] unit-test
42 [ 1 ] [ BIN: 1 bit-count ] unit-test
43
44 SPECIALIZED-ARRAY: uint
45 SPECIALIZED-ARRAY: uint-4
46
47 [ 1 ] [ uint-4{ 1 0 0 0 } bit-count ] unit-test
48
49 [ 1 ] [
50     [
51         2 malloc-int-array &free 1 0 pick set-nth bit-count
52     ] with-destructors
53 ] unit-test
54
55 [ 1 ] [ B{ 1 0 0 } bit-count ] unit-test
56 [ 3 ] [ B{ 1 1 1 } bit-count ] unit-test
57
58 [ t ] [ BIN: 0 even-parity? ] unit-test
59 [ f ] [ BIN: 1 even-parity? ] unit-test
60 [ f ] [ BIN: 0 odd-parity? ] unit-test
61 [ t ] [ BIN: 1 odd-parity? ] unit-test