mod transform;
pub mod analysis;
pub trait Random {
fn get_random(&mut self) -> u64;
}
pub fn crush<R: Random + Clone>(rand: R) -> u32 {
analysis::Report::new(rand.clone()).get_score().total() as u32
+ analysis::Report::new(transform::SkipOne(rand.clone())).get_score().total() as u32
+ analysis::Report::new(transform::SkipTwo(rand.clone())).get_score().total() as u32
+ analysis::Report::new(transform::Concatenate32(rand.clone())).get_score().total() as u32
+ analysis::Report::new(transform::Xor(rand.clone())).get_score().total() as u32
+ analysis::Report::new(transform::Add(rand.clone())).get_score().total() as u32
+ analysis::Report::new(transform::Multiply(rand.clone())).get_score().total() as u32
+ analysis::Report::new(transform::LastBit(rand.clone())).get_score().total() as u32
+ analysis::Report::new(transform::MultiplyByThree(rand.clone())).get_score().total() as u32
+ analysis::Report::new(transform::ModularDivideByThree(rand.clone())).get_score().total() as u32
+ analysis::Report::new(transform::Hamming(rand.clone())).get_score().total() as u32
+ analysis::Report::new(transform::ParitySkip(rand.clone())).get_score().total() as u32
+ analysis::Report::new(transform::Rol7(rand.clone())).get_score().total() as u32
}