From 4a8e2c370451ff0e7c2ca6dcf3d95ea1f69019f8 Mon Sep 17 00:00:00 2001 From: Shing Him Ng Date: Sun, 11 Aug 2024 11:39:01 -0500 Subject: [PATCH] Add tests for sequence --- primitives/src/sequence.rs | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/primitives/src/sequence.rs b/primitives/src/sequence.rs index f6f66e890..2488c7385 100644 --- a/primitives/src/sequence.rs +++ b/primitives/src/sequence.rs @@ -287,3 +287,35 @@ impl<'a> Arbitrary<'a> for Sequence { } } } + +#[cfg(test)] +#[cfg(feature = "alloc")] +mod tests { + use super::*; + + const MAXIMUM_ENCODABLE_SECONDS: u32 = u16::MAX as u32 * 512; + + #[test] + fn from_seconds_floor_success() { + let expected = Sequence::from_hex("0x0040ffff").unwrap(); + let actual = Sequence::from_seconds_floor(MAXIMUM_ENCODABLE_SECONDS + 511).unwrap(); + assert_eq!(actual, expected); + } + + #[test] + fn from_seconds_floor_causes_overflow_error() { + assert!(Sequence::from_seconds_floor(MAXIMUM_ENCODABLE_SECONDS + 512).is_err()); + } + + #[test] + fn from_seconds_ceil_success() { + let expected = Sequence::from_hex("0x0040ffff").unwrap(); + let actual = Sequence::from_seconds_ceil(MAXIMUM_ENCODABLE_SECONDS - 511).unwrap(); + assert_eq!(actual, expected); + } + + #[test] + fn from_seconds_ceil_causes_overflow_error() { + assert!(Sequence::from_seconds_ceil(MAXIMUM_ENCODABLE_SECONDS + 1).is_err()); + } +}