1pub use libflate_lz77::*;
5
6#[cfg(test)]
7mod tests {
8 use super::*;
9 use crate::deflate;
10 use crate::deflate::symbol::Symbol;
11 use alloc::{vec, vec::Vec};
12 use no_std_io2::io::{Read as _, Write as _};
13
14 #[test]
15 fn issue21() {
17 let mut enc = DefaultLz77Encoder::new();
18 let mut sink = Vec::<Symbol>::new();
19 enc.encode(b"aaaaa", &mut sink);
20 enc.flush(&mut sink);
21 assert_eq!(
22 sink,
23 vec![
24 Symbol::Code(Code::Literal(97)),
25 Symbol::Code(Code::Pointer {
26 length: 4,
27 backward_distance: 1
28 })
29 ]
30 );
31 }
32
33 #[test]
34 fn no_compression_encoder_works_with_deflate() {
35 let options = deflate::EncodeOptions::with_lz77(NoCompressionLz77Encoder::new());
36 let mut encoder = deflate::Encoder::with_options(Vec::new(), options);
37 encoder.write_all(b"hello world").unwrap();
38 let encoded = encoder.finish().into_result().unwrap();
39
40 let mut decoder = deflate::Decoder::new(&encoded[..]);
41 let mut decoded = Vec::new();
42 decoder.read_to_end(&mut decoded).unwrap();
43 assert_eq!(decoded, b"hello world");
44 }
45
46 #[test]
47 fn default_encoder_works_with_deflate() {
48 let options = deflate::EncodeOptions::with_lz77(DefaultLz77Encoder::new());
49 let mut encoder = deflate::Encoder::with_options(Vec::new(), options);
50 encoder.write_all(b"hello hello hello").unwrap();
51 let encoded = encoder.finish().into_result().unwrap();
52
53 let mut decoder = deflate::Decoder::new(&encoded[..]);
54 let mut decoded = Vec::new();
55 decoder.read_to_end(&mut decoded).unwrap();
56 assert_eq!(decoded, b"hello hello hello");
57 }
58}