22 lines
775 B
Rust
22 lines
775 B
Rust
use std::{env, fs};
|
|
use weezl::{decode, encode, BitOrder};
|
|
|
|
#[test]
|
|
fn read_from_mangled() {
|
|
let file = env::args().next().unwrap();
|
|
let data = fs::read(file).unwrap();
|
|
|
|
// For simplicity, encode 7-bit data.
|
|
let data: Vec<_> = data.iter().copied().map(|b| b & 0x7f).collect();
|
|
|
|
let mut encoder = encode::Encoder::new(BitOrder::Lsb, 7);
|
|
let mut buffer = Vec::with_capacity(2 * data.len() + 40);
|
|
let _ = encoder.into_stream(&mut buffer).encode_all(&*data);
|
|
|
|
let mut decoder = decode::Decoder::new(BitOrder::Lsb, 7);
|
|
let mut compare = vec![];
|
|
let result = decoder.into_stream(&mut compare).decode_all(&buffer[1..]);
|
|
assert!(result.status.is_ok(), "{:?}", result.status);
|
|
assert!(data == &*compare, "{:?}\n{:?}", data, compare);
|
|
}
|