ps_ecc/long/header/methods/
parity_bytes.rs1use crate::long::LongEccHeader;
2
3impl LongEccHeader {
4 #[inline]
7 #[must_use]
8 pub const fn parity_bytes(&self) -> u8 {
9 self.parity() << 1
10 }
11}
12
13#[cfg(test)]
14mod tests {
15 use crate::long::{LongEccHeader, OverlapFactor};
16 use crate::MAX_PARITY;
17
18 type TestError = Box<dyn std::error::Error>;
19
20 #[test]
21 fn test_parity_bytes_doubles_parity() -> Result<(), TestError> {
22 let header = LongEccHeader::new(3, OverlapFactor::Simple, 88, 50, 0)?;
23
24 assert_eq!(header.parity_bytes(), 6);
25
26 Ok(())
27 }
28
29 #[test]
30 fn test_parity_bytes_zero() -> Result<(), TestError> {
31 let header = LongEccHeader::new(0, OverlapFactor::Simple, 82, 50, 0)?;
32
33 assert_eq!(header.parity_bytes(), 0);
34
35 Ok(())
36 }
37
38 #[test]
39 fn test_parity_bytes_ignores_overlap_bits() -> Result<(), TestError> {
40 let header = LongEccHeader::new(5, OverlapFactor::Quadruple, 92, 50, 0)?;
41
42 assert_eq!(header.parity_bytes(), 10);
43
44 Ok(())
45 }
46
47 #[test]
48 fn test_parity_bytes_maximum() -> Result<(), TestError> {
49 let header = LongEccHeader::new(MAX_PARITY, OverlapFactor::Simple, 208, 50, 0)?;
50
51 assert_eq!(header.parity_bytes(), 126);
52
53 Ok(())
54 }
55}