mod bitfixed;
mod bitgrid;
mod bitlist;
mod bitmap;
mod bitop;
mod bitspan;
mod bitvec;
mod bitview;
mod iter;
mod macros;
mod traits;
mod util;
pub use bitfixed::BitFixed;
pub use bitgrid::BitGrid;
pub use bitlist::BitList;
pub use bitop::{BitSetDifference, BitSetIntersection, BitSetSymmetricDifference, BitSetUnion};
pub use bitspan::{BitSpan, BitSpanMut};
pub use bitvec::BitVec;
pub use bitview::{BitView, BitViewMut};
pub use iter::Iter;
pub use traits::{BitRead, BitResize, BitStack, BitWrite};
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_bitset() {}
#[test]
fn test_bitvec_basic() {
let mut bv: BitVec<u8> = BitVec::new(16);
assert_eq!(bv.len(), 16);
assert!(!bv.test(3));
bv.set(3);
assert!(bv.test(3));
bv.reset(3);
assert!(!bv.test(3));
}
#[test]
fn test_bitvec_grow() {
let mut bv: BitVec<u32> = BitVec::new(11);
bv.set(10);
assert!(bv.test(10));
assert_eq!(bv.len(), 11);
}
#[test]
fn test_bitvec_iter() {
let mut bv: BitVec<u8> = BitVec::new(10);
bv.set(2);
bv.set(5);
bv.set(7);
let bits: Vec<usize> = bv.iter().collect();
assert_eq!(bits, vec![2, 5, 7]);
}
#[test]
fn test_bitfixed_basic() {
let mut bf: BitFixed<u16> = BitFixed::new(32);
assert_eq!(bf.len(), 32);
bf.set(15);
assert!(bf.test(15));
bf.reset(15);
assert!(!bf.test(15));
}
#[test]
fn test_bitfixed_all() {
let mut bf: BitFixed<u8> = BitFixed::new(8);
for i in 0..8 {
bf.set(i);
}
for i in 0..8 {
assert!(bf.test(i));
}
bf.reset(3);
assert!(!bf.test(3));
}
}