| 123 | |
| 124 | #[test] |
| 125 | fn test() { |
| 126 | for i in 1..16 { |
| 127 | let mut rng = ChaCha20Rng::from_seed(Default::default()); |
| 128 | let floats: Vec<_> = (0..i).map(|_| f32::from_bits(rng.gen())).collect(); |
| 129 | |
| 130 | let mut encoder = F32Encoder::default(); |
| 131 | encoder.reserve(NonZeroUsize::new(floats.len()).unwrap()); |
| 132 | for &f in &floats { |
| 133 | encoder.encode(&f); |
| 134 | } |
| 135 | let bytes = encoder.collect(); |
| 136 | |
| 137 | let mut decoder = F32Decoder::default(); |
| 138 | let mut slice = bytes.as_slice(); |
| 139 | decoder.populate(&mut slice, floats.len()).unwrap(); |
| 140 | assert!(slice.is_empty()); |
| 141 | for &f in &floats { |
| 142 | assert_eq!(f.to_bits(), decoder.decode().to_bits()); |
| 143 | } |
| 144 | } |
| 145 | } |
| 146 | |
| 147 | fn bench_data() -> Vec<f32> { |
| 148 | crate::random_data::<f32>(1500001) |