#![feature(test)]
extern crate lpn;
extern crate m4ri_rust;
extern crate test;
use crate::test::Bencher;
use lpn::codes::*;
use m4ri_rust::friendly::*;
fn get_code() -> ConcatenatedCode<'static> {
let codes: Vec<&dyn BinaryCode> = vec![
&HammingCode7_4,
&HammingCode7_4,
&HammingCode7_4,
&HammingCode7_4,
&HammingCode7_4,
&HammingCode7_4,
&HammingCode3_1,
&HammingCode15_11,
&HammingCode7_4,
];
ConcatenatedCode::new(codes)
}
#[bench]
fn encode(b: &mut Bencher) {
let code = get_code();
let i = BinVector::random(code.dimension());
b.iter(|| code.encode(&i));
}
#[bench]
fn decode(b: &mut Bencher) {
let code = get_code();
b.iter(|| {
let i = BinVector::random(code.length());
code.decode_to_message(&i).unwrap()
});
}