B:BD[
4.263818] → [
2.8725:10350]
// #[test]
// fn test() {
// let mut cstream = SeekableCStream::new(10, 256).unwrap();
// let input = b"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut diam ante, sollicitudin a dolor et, volutpat elementum nulla. Etiam nec efficitur nibh, quis rutrum risus. Maecenas quis lorem malesuada, aliquet mi vel, viverra nunc. Donec et nulla sed velit sagittis varius. Suspendisse vestibulum, neque lobortis ornare vestibulum, orci turpis vulputate nisi, ut sodales neque purus eget magna. Nunc condimentum, diam eu consequat venenatis, est nisl semper lorem, et lobortis velit justo sed nulla. Nunc sit amet tempor nunc, vel posuere ipsum. Cras erat tortor, pulvinar ac pretium eu, auctor ac nibh. Duis iaculis porta magna, eu lobortis elit. Duis vitae massa eros. Nulla non magna accumsan, egestas quam sit amet, laoreet lectus.";
// let mut input_pos = 0;
// let mut output = vec![0; input.len()];
// let mut output_pos = 0;
// while input_pos < input.len() {
// let (a, b) = cstream
// .compress(&mut output[output_pos..], &input[input_pos..])
// .unwrap();
// output_pos += a;
// input_pos += b;
// }
// while let Ok(n) = cstream.end_stream(&mut output[output_pos..]) {
// if n == 0 {
// break;
// }
// output_pos += n;
// }
// output.truncate(output_pos);
// {
// use std::io::Write;
// let mut file = std::fs::File::create("test").unwrap();
// file.write_all(&output).unwrap();
// }
// println!("input len = {:?}, pos = {:?}", input.len(), output_pos);
#[test]
fn test() {
let mut cstream = SeekableCStream::new(10, 256).unwrap();
let input = b"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut diam ante, sollicitudin a dolor et, volutpat elementum nulla. Etiam nec efficitur nibh, quis rutrum risus. Maecenas quis lorem malesuada, aliquet mi vel, viverra nunc. Donec et nulla sed velit sagittis varius. Suspendisse vestibulum, neque lobortis ornare vestibulum, orci turpis vulputate nisi, ut sodales neque purus eget magna. Nunc condimentum, diam eu consequat venenatis, est nisl semper lorem, et lobortis velit justo sed nulla. Nunc sit amet tempor nunc, vel posuere ipsum. Cras erat tortor, pulvinar ac pretium eu, auctor ac nibh. Duis iaculis porta magna, eu lobortis elit. Duis vitae massa eros. Nulla non magna accumsan, egestas quam sit amet, laoreet lectus.";
let mut input_pos = 0;
let mut output = vec![0; input.len()];
let mut output_pos = 0;
while input_pos < input.len() {
let (a, b) = cstream
.compress(&mut output[output_pos..], &input[input_pos..])
.unwrap();
output_pos += a;
input_pos += b;
}
while let Ok(n) = cstream.end_stream(&mut output[output_pos..]) {
if n == 0 {
break;
}
output_pos += n;
}
output.truncate(output_pos);
{
use std::io::Write;
let mut file = std::fs::File::create("test").unwrap();
file.write_all(&output).unwrap();
}
println!("input len = {:?}, pos = {:?}", input.len(), output_pos);