use itertools::Itertools;
#[test]
fn through_short() {
let test_str = "abbcccddddeeeee";
let encoder = hfmn::CodeBook::from_data(test_str.chars().collect::<Vec<_>>()).unwrap();
let encoded = encoder
.encode_data(test_str.chars().collect::<Vec<_>>())
.unwrap();
println!("{}", encoder);
for s in encoded.iter() {
print!("{}, ", s);
}
println!();
let (encoded, num_symbols) = hfmn::chain(&encoded);
for b in encoded.iter() {
println!("{:08b}", b);
}
let decoded = encoder.decode_data(&encoded, num_symbols).unwrap();
assert_eq!(
test_str.chars().collect::<Vec<_>>(),
decoded.iter().map(|b| **b).collect_vec()
)
}