noodles_cram/codecs/
rans_4x8.rs

1//! rANS 4x8 codec.
2
3mod decode;
4mod encode;
5mod order;
6
7pub use self::order::Order;
8pub(crate) use self::{decode::decode, encode::encode};
9
10#[cfg(test)]
11mod tests {
12    use std::io;
13
14    use super::*;
15
16    #[test]
17    fn test_self_0() -> io::Result<()> {
18        let data = b"noodles";
19
20        let compressed_data = encode(Order::Zero, data)?;
21
22        let mut reader = &compressed_data[..];
23        let decompressed_data = decode(&mut reader)?;
24
25        assert_eq!(decompressed_data, data);
26
27        Ok(())
28    }
29
30    #[test]
31    fn test_self_1() -> io::Result<()> {
32        let data = b"noodles";
33
34        let compressed_data = encode(Order::One, data)?;
35
36        let mut reader = &compressed_data[..];
37        let decompressed_data = decode(&mut reader)?;
38
39        assert_eq!(decompressed_data, data);
40
41        Ok(())
42    }
43}