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 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74
pub mod generic_fletcher; pub mod fletcher16; pub mod fletcher32; pub mod fletcher64; #[cfg(test)] mod tests { #[test] fn fletcher16_test() { let data = vec![0xC1, 0x77, 0xE9, 0xC0, 0xAB, 0x1E]; let mut checksum = super::fletcher16::Fletcher16::new(); checksum.update(&data); assert!(checksum.value() == 0x3fad); } #[test] fn fletcher16_underflow() { let zeros = vec![0; 200000usize]; let mut checksum = super::fletcher16::Fletcher16::new(); checksum.update(&zeros); assert!(checksum.value() == 0xffff); } #[test] fn fletcher16_overflow() { let zeros = vec![0xff; 200000usize]; let mut checksum = super::fletcher16::Fletcher16::new(); checksum.update(&zeros); assert!(checksum.value() == 0xffff); } #[test] fn fletcher32_test() { let data = vec![0xF02A, 0xCB0D, 0x5639, 0x6501, 0x2384, 0x75BB]; let mut checksum = super::fletcher32::Fletcher32::new(); checksum.update(&data); println!("{}", checksum.value()); assert!(checksum.value() == 0xdcf30fb3); } #[test] fn fletcher32_underflow() { let zeros = vec![0; 200000usize]; let mut checksum = super::fletcher32::Fletcher32::new(); checksum.update(&zeros); assert!(checksum.value() == 0xffffffff); } #[test] fn fletcher32_overflow() { let zeros = vec![0xffff; 200000usize]; let mut checksum = super::fletcher32::Fletcher32::new(); checksum.update(&zeros); assert!(checksum.value() == 0xffffffff); } #[test] fn fletcher64_underflow() { let zeros = vec![0; 200000usize]; let mut checksum = super::fletcher64::Fletcher64::new(); checksum.update(&zeros); assert!(checksum.value() == 0xffffffffffffffff); } #[test] fn fletcher64_overflow() { let zeros = vec![0xffffffff; 200000usize]; let mut checksum = super::fletcher64::Fletcher64::new(); checksum.update(&zeros); assert!(checksum.value() == 0xffffffffffffffff); } }