line length police; moved comp.util.bits to std.bitv
This commit is contained in:
parent
194f38fdff
commit
dbe27199b8
4 changed files with 300 additions and 3 deletions
|
@ -28,7 +28,6 @@ mod driver {
|
|||
|
||||
mod util {
|
||||
mod common;
|
||||
mod bits;
|
||||
}
|
||||
|
||||
auth driver.rustc.main = state;
|
||||
|
|
|
@ -25,8 +25,8 @@ fn create(uint nbits, bool init) -> t {
|
|||
elt = 0u;
|
||||
}
|
||||
|
||||
ret rec(storage = _vec.init_elt[mutable uint](elt, nbits / uint_bits() + 1u),
|
||||
nbits = nbits);
|
||||
auto storage = _vec.init_elt[mutable uint](elt, nbits / uint_bits() + 1u);
|
||||
ret rec(storage = storage, nbits = nbits);
|
||||
}
|
||||
|
||||
fn process(&fn(uint, uint) -> uint op, &t v0, &t v1) -> bool {
|
|
@ -53,6 +53,7 @@ mod deque;
|
|||
mod list;
|
||||
mod rand;
|
||||
mod dbg;
|
||||
mod bitv;
|
||||
|
||||
// Local Variables:
|
||||
// mode: rust;
|
||||
|
|
297
src/test/run-pass/lib-bitv.rs
Normal file
297
src/test/run-pass/lib-bitv.rs
Normal file
|
@ -0,0 +1,297 @@
|
|||
use std;
|
||||
import std._vec;
|
||||
import std.bitv;
|
||||
|
||||
fn test_0_elements() {
|
||||
auto act;
|
||||
auto exp;
|
||||
|
||||
act = bitv.create(0u, false);
|
||||
exp = _vec.init_elt[uint](0u, 0u);
|
||||
// FIXME: why can't I write vec[uint]()?
|
||||
check (bitv.eq_vec(act, exp));
|
||||
}
|
||||
|
||||
fn test_1_element() {
|
||||
auto act;
|
||||
|
||||
act = bitv.create(1u, false);
|
||||
check (bitv.eq_vec(act, vec(0u)));
|
||||
|
||||
act = bitv.create(1u, true);
|
||||
check (bitv.eq_vec(act, vec(1u)));
|
||||
}
|
||||
|
||||
fn test_10_elements() {
|
||||
auto act;
|
||||
|
||||
// all 0
|
||||
act = bitv.create(10u, false);
|
||||
check (bitv.eq_vec(act, vec(0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u)));
|
||||
|
||||
// all 1
|
||||
act = bitv.create(10u, true);
|
||||
check (bitv.eq_vec(act, vec(1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u)));
|
||||
|
||||
// mixed
|
||||
act = bitv.create(10u, false);
|
||||
bitv.set(act, 0u, true);
|
||||
bitv.set(act, 1u, true);
|
||||
bitv.set(act, 2u, true);
|
||||
bitv.set(act, 3u, true);
|
||||
bitv.set(act, 4u, true);
|
||||
check (bitv.eq_vec(act, vec(1u, 1u, 1u, 1u, 1u, 0u, 0u, 0u, 0u, 0u)));
|
||||
|
||||
// mixed
|
||||
act = bitv.create(10u, false);
|
||||
bitv.set(act, 5u, true);
|
||||
bitv.set(act, 6u, true);
|
||||
bitv.set(act, 7u, true);
|
||||
bitv.set(act, 8u, true);
|
||||
bitv.set(act, 9u, true);
|
||||
check (bitv.eq_vec(act, vec(0u, 0u, 0u, 0u, 0u, 1u, 1u, 1u, 1u, 1u)));
|
||||
|
||||
// mixed
|
||||
act = bitv.create(10u, false);
|
||||
bitv.set(act, 0u, true);
|
||||
bitv.set(act, 3u, true);
|
||||
bitv.set(act, 6u, true);
|
||||
bitv.set(act, 9u, true);
|
||||
check (bitv.eq_vec(act, vec(1u, 0u, 0u, 1u, 0u, 0u, 1u, 0u, 0u, 1u)));
|
||||
}
|
||||
|
||||
fn test_31_elements() {
|
||||
auto act;
|
||||
|
||||
// all 0
|
||||
act = bitv.create(31u, false);
|
||||
check (bitv.eq_vec(act, vec(0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u,
|
||||
0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u,
|
||||
0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u,
|
||||
0u, 0u, 0u, 0u, 0u, 0u, 0u)));
|
||||
|
||||
// all 1
|
||||
act = bitv.create(31u, true);
|
||||
check (bitv.eq_vec(act, vec(1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u,
|
||||
1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u,
|
||||
1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u,
|
||||
1u, 1u, 1u, 1u, 1u, 1u, 1u)));
|
||||
|
||||
// mixed
|
||||
act = bitv.create(31u, false);
|
||||
bitv.set(act, 0u, true);
|
||||
bitv.set(act, 1u, true);
|
||||
bitv.set(act, 2u, true);
|
||||
bitv.set(act, 3u, true);
|
||||
bitv.set(act, 4u, true);
|
||||
bitv.set(act, 5u, true);
|
||||
bitv.set(act, 6u, true);
|
||||
bitv.set(act, 7u, true);
|
||||
check (bitv.eq_vec(act, vec(1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u,
|
||||
0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u,
|
||||
0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u,
|
||||
0u, 0u, 0u, 0u, 0u, 0u, 0u)));
|
||||
|
||||
// mixed
|
||||
act = bitv.create(31u, false);
|
||||
bitv.set(act, 16u, true);
|
||||
bitv.set(act, 17u, true);
|
||||
bitv.set(act, 18u, true);
|
||||
bitv.set(act, 19u, true);
|
||||
bitv.set(act, 20u, true);
|
||||
bitv.set(act, 21u, true);
|
||||
bitv.set(act, 22u, true);
|
||||
bitv.set(act, 23u, true);
|
||||
check (bitv.eq_vec(act, vec(0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u,
|
||||
0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u,
|
||||
1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u,
|
||||
0u, 0u, 0u, 0u, 0u, 0u, 0u)));
|
||||
|
||||
// mixed
|
||||
act = bitv.create(31u, false);
|
||||
bitv.set(act, 24u, true);
|
||||
bitv.set(act, 25u, true);
|
||||
bitv.set(act, 26u, true);
|
||||
bitv.set(act, 27u, true);
|
||||
bitv.set(act, 28u, true);
|
||||
bitv.set(act, 29u, true);
|
||||
bitv.set(act, 30u, true);
|
||||
check (bitv.eq_vec(act, vec(0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u,
|
||||
0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u,
|
||||
0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u,
|
||||
1u, 1u, 1u, 1u, 1u, 1u, 1u)));
|
||||
|
||||
// mixed
|
||||
act = bitv.create(31u, false);
|
||||
bitv.set(act, 3u, true);
|
||||
bitv.set(act, 17u, true);
|
||||
bitv.set(act, 30u, true);
|
||||
check (bitv.eq_vec(act, vec(0u, 0u, 0u, 1u, 0u, 0u, 0u, 0u,
|
||||
0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u,
|
||||
0u, 1u, 0u, 0u, 0u, 0u, 0u, 0u,
|
||||
0u, 0u, 0u, 0u, 0u, 0u, 1u)));
|
||||
}
|
||||
|
||||
fn test_32_elements() {
|
||||
auto act;
|
||||
|
||||
// all 0
|
||||
act = bitv.create(32u, false);
|
||||
check (bitv.eq_vec(act, vec(0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u,
|
||||
0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u,
|
||||
0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u,
|
||||
0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u)));
|
||||
|
||||
// all 1
|
||||
act = bitv.create(32u, true);
|
||||
check (bitv.eq_vec(act, vec(1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u,
|
||||
1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u,
|
||||
1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u,
|
||||
1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u)));
|
||||
|
||||
// mixed
|
||||
act = bitv.create(32u, false);
|
||||
bitv.set(act, 0u, true);
|
||||
bitv.set(act, 1u, true);
|
||||
bitv.set(act, 2u, true);
|
||||
bitv.set(act, 3u, true);
|
||||
bitv.set(act, 4u, true);
|
||||
bitv.set(act, 5u, true);
|
||||
bitv.set(act, 6u, true);
|
||||
bitv.set(act, 7u, true);
|
||||
check (bitv.eq_vec(act, vec(1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u,
|
||||
0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u,
|
||||
0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u,
|
||||
0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u)));
|
||||
|
||||
// mixed
|
||||
act = bitv.create(32u, false);
|
||||
bitv.set(act, 16u, true);
|
||||
bitv.set(act, 17u, true);
|
||||
bitv.set(act, 18u, true);
|
||||
bitv.set(act, 19u, true);
|
||||
bitv.set(act, 20u, true);
|
||||
bitv.set(act, 21u, true);
|
||||
bitv.set(act, 22u, true);
|
||||
bitv.set(act, 23u, true);
|
||||
check (bitv.eq_vec(act, vec(0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u,
|
||||
0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u,
|
||||
1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u,
|
||||
0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u)));
|
||||
|
||||
// mixed
|
||||
act = bitv.create(32u, false);
|
||||
bitv.set(act, 24u, true);
|
||||
bitv.set(act, 25u, true);
|
||||
bitv.set(act, 26u, true);
|
||||
bitv.set(act, 27u, true);
|
||||
bitv.set(act, 28u, true);
|
||||
bitv.set(act, 29u, true);
|
||||
bitv.set(act, 30u, true);
|
||||
bitv.set(act, 31u, true);
|
||||
check (bitv.eq_vec(act, vec(0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u,
|
||||
0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u,
|
||||
0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u,
|
||||
1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u)));
|
||||
|
||||
// mixed
|
||||
act = bitv.create(32u, false);
|
||||
bitv.set(act, 3u, true);
|
||||
bitv.set(act, 17u, true);
|
||||
bitv.set(act, 30u, true);
|
||||
bitv.set(act, 31u, true);
|
||||
check (bitv.eq_vec(act, vec(0u, 0u, 0u, 1u, 0u, 0u, 0u, 0u,
|
||||
0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u,
|
||||
0u, 1u, 0u, 0u, 0u, 0u, 0u, 0u,
|
||||
0u, 0u, 0u, 0u, 0u, 0u, 1u, 1u)));
|
||||
}
|
||||
|
||||
fn test_33_elements() {
|
||||
auto act;
|
||||
|
||||
// all 0
|
||||
act = bitv.create(33u, false);
|
||||
check (bitv.eq_vec(act, vec(0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u,
|
||||
0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u,
|
||||
0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u,
|
||||
0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u,
|
||||
0u)));
|
||||
|
||||
// all 1
|
||||
act = bitv.create(33u, true);
|
||||
check (bitv.eq_vec(act, vec(1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u,
|
||||
1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u,
|
||||
1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u,
|
||||
1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u,
|
||||
1u)));
|
||||
|
||||
// mixed
|
||||
act = bitv.create(33u, false);
|
||||
bitv.set(act, 0u, true);
|
||||
bitv.set(act, 1u, true);
|
||||
bitv.set(act, 2u, true);
|
||||
bitv.set(act, 3u, true);
|
||||
bitv.set(act, 4u, true);
|
||||
bitv.set(act, 5u, true);
|
||||
bitv.set(act, 6u, true);
|
||||
bitv.set(act, 7u, true);
|
||||
check (bitv.eq_vec(act, vec(1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u,
|
||||
0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u,
|
||||
0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u,
|
||||
0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u,
|
||||
0u)));
|
||||
|
||||
// mixed
|
||||
act = bitv.create(33u, false);
|
||||
bitv.set(act, 16u, true);
|
||||
bitv.set(act, 17u, true);
|
||||
bitv.set(act, 18u, true);
|
||||
bitv.set(act, 19u, true);
|
||||
bitv.set(act, 20u, true);
|
||||
bitv.set(act, 21u, true);
|
||||
bitv.set(act, 22u, true);
|
||||
bitv.set(act, 23u, true);
|
||||
check (bitv.eq_vec(act, vec(0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u,
|
||||
0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u,
|
||||
1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u,
|
||||
0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u,
|
||||
0u)));
|
||||
|
||||
// mixed
|
||||
act = bitv.create(33u, false);
|
||||
bitv.set(act, 24u, true);
|
||||
bitv.set(act, 25u, true);
|
||||
bitv.set(act, 26u, true);
|
||||
bitv.set(act, 27u, true);
|
||||
bitv.set(act, 28u, true);
|
||||
bitv.set(act, 29u, true);
|
||||
bitv.set(act, 30u, true);
|
||||
bitv.set(act, 31u, true);
|
||||
check (bitv.eq_vec(act, vec(0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u,
|
||||
0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u,
|
||||
0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u,
|
||||
1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u,
|
||||
0u)));
|
||||
|
||||
// mixed
|
||||
act = bitv.create(33u, false);
|
||||
bitv.set(act, 3u, true);
|
||||
bitv.set(act, 17u, true);
|
||||
bitv.set(act, 30u, true);
|
||||
bitv.set(act, 31u, true);
|
||||
bitv.set(act, 32u, true);
|
||||
check (bitv.eq_vec(act, vec(0u, 0u, 0u, 1u, 0u, 0u, 0u, 0u,
|
||||
0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u,
|
||||
0u, 1u, 0u, 0u, 0u, 0u, 0u, 0u,
|
||||
0u, 0u, 0u, 0u, 0u, 0u, 1u, 1u,
|
||||
1u)));
|
||||
}
|
||||
|
||||
fn main() {
|
||||
test_0_elements();
|
||||
test_1_element();
|
||||
test_10_elements();
|
||||
test_31_elements();
|
||||
test_32_elements();
|
||||
test_33_elements();
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue