From 6c3d7f6443833ea687bdad8fb41775c107407034 Mon Sep 17 00:00:00 2001 From: "Jamil Lambert, PhD" Date: Fri, 7 Feb 2025 17:02:50 +0000 Subject: [PATCH] Test Sequence properties Cargo mutants found multiple mutants in the functions that return true or false for various Sequence properties. Add a test to kill the mutants. --- primitives/src/sequence.rs | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/primitives/src/sequence.rs b/primitives/src/sequence.rs index 163f70a05..5e1357598 100644 --- a/primitives/src/sequence.rs +++ b/primitives/src/sequence.rs @@ -307,4 +307,31 @@ mod tests { fn from_seconds_ceil_causes_overflow_error() { assert!(Sequence::from_seconds_ceil(MAXIMUM_ENCODABLE_SECONDS + 1).is_err()); } + + #[test] + fn sequence_properties() { + let seq_max = Sequence(0xFFFFFFFF); + let seq_no_rbf = Sequence(0xFFFFFFFE); + let seq_rbf = Sequence(0xFFFFFFFD); + + assert!(seq_max.is_final()); + assert!(!seq_no_rbf.is_final()); + + assert!(seq_no_rbf.enables_absolute_lock_time()); + assert!(!seq_max.enables_absolute_lock_time()); + + assert!(seq_rbf.is_rbf()); + assert!(!seq_no_rbf.is_rbf()); + + let seq_relative = Sequence(0x7FFFFFFF); + assert!(seq_relative.is_relative_lock_time()); + assert!(!seq_max.is_relative_lock_time()); + + let seq_height_locked = Sequence(0x00399999); + let seq_time_locked = Sequence(0x00400000); + assert!(seq_height_locked.is_height_locked()); + assert!(seq_time_locked.is_time_locked()); + assert!(!seq_time_locked.is_height_locked()); + assert!(!seq_height_locked.is_time_locked()); + } }