ps_ecc/long/header/methods/
header_parity.rs1use crate::long::LongEccHeader;
2
3impl LongEccHeader {
4 #[inline]
6 #[must_use]
7 pub const fn header_parity(&self) -> [u8; 8] {
8 self.header_parity
9 }
10}
11
12#[cfg(test)]
13mod tests {
14 use crate::long::header::RS;
15 use crate::long::{LongEccHeader, OverlapFactor};
16
17 type TestError = Box<dyn std::error::Error>;
18
19 #[test]
20 fn test_header_parity_matches_generated() -> Result<(), TestError> {
21 let header = LongEccHeader::new(3, OverlapFactor::Triple, 88, 50, 7)?;
22
23 let expected = RS.generate_parity(&header.to_bytes()[..24])?;
24
25 assert_eq!(&header.header_parity()[..], &expected[..]);
26
27 Ok(())
28 }
29
30 #[test]
31 fn test_header_parity_roundtrips_through_to_bytes() -> Result<(), TestError> {
32 let header = LongEccHeader::new(2, OverlapFactor::Simple, 86, 50, 0)?;
33
34 assert_eq!(header.to_bytes()[24..32], header.header_parity());
35
36 Ok(())
37 }
38}