1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
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
}