type3: &[u8], // up to len 46
input_len: usize,
puncture: fn(usize) -> (bool, bool),
-) -> Option<[u8; 30]> {
+) -> Option<([u8; 30], u8)> {
let type3_bits = Bits::new(type3);
let mut type3_iter = type3_bits.iter();
let mut table = [[0u8; 32]; 244];
};
}
}
- Some(out)
+ Some((out, *best))
}
}
let encoded = encode(&lsf, 240, p_1);
assert_eq!(encoded, expected_encoded);
let decoded = decode(&encoded, 240, p_1);
- assert_eq!(decoded, Some(lsf));
+ assert_eq!(decoded, Some((lsf, 0)));
}
#[test]
if idx == 100 {
assert_eq!(decoded, None); // 7 bits is too much damage
} else {
- assert_eq!(decoded, Some(lsf)); // recovered from errors
+ assert!(matches!(decoded, Some((frame, _)) if frame == lsf)); // recovered from errors
}
}
}