base122 0.1.0

Rust implementation of the base-122 encoding
Documentation
use super::*;

macro_rules! bin_assert_eq {
    ($x:expr, $y:expr) => {
        let x: u8 = $x.expect("");
        let y: u8 = $y;
        if x != y {
            panic!("assertion failed: `(left == right)` (left: `{:08b}`, right: `{:08b}`)", x, y);
        }
    }
}

#[test]
fn test_first_7() {
    let data = [0b01011011];
    let mut encoder = Encoder::new(&data);
    bin_assert_eq!(encoder.get7(), 0b00101101);
}

#[test]
fn test_second_7() {
    let data = [0b01011011];
    let mut encoder = Encoder::new(&data);
    bin_assert_eq!(encoder.get7(), 0b00101101);
    bin_assert_eq!(encoder.get7(), 0b01000000);
}

#[test]
fn test_middle_7() {
    let data = [0b01011011, 0b10100101];
    let mut encoder = Encoder::new(&data);
    bin_assert_eq!(encoder.get7(), 0b00101101);
    bin_assert_eq!(encoder.get7(), 0b01101001);
}

#[test]
fn test_4_byte_encode() {
    let raw_data = vec![0b10101010, 0b10101010, 0b10101010, 0b10101010];
    let expected =
    vec![HEADER, 0b01010101, 0b00101010, 0b01010101, 0b00101010, 0b01010000];

    let mut encoder = Encoder::new(&raw_data);
    let result = encoder.encode();

    assert_eq!(result, expected);
}