From 7e66091e1e8b6cdd3e40d001ea1824125f7175e7 Mon Sep 17 00:00:00 2001 From: "Jamil Lambert, PhD" Date: Tue, 11 Feb 2025 17:31:24 +0000 Subject: [PATCH] Add from impl tests Add tests for the witness from implementations to kill all the mutants found by cargo mutants. --- primitives/src/witness.rs | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/primitives/src/witness.rs b/primitives/src/witness.rs index af8e0c0ac..d48755992 100644 --- a/primitives/src/witness.rs +++ b/primitives/src/witness.rs @@ -609,6 +609,33 @@ mod test { assert_eq!(witness.size(), 6); } + #[test] + fn witness_from_impl() { + // Test From implementations with the same 2 elements + let vec = vec![vec![11], vec![21, 22]]; + let slice_vec: &[Vec] = &vec; + let slice_slice: &[&[u8]] = &[&[11u8], &[21, 22]]; + let vec_slice: Vec<&[u8]> = vec![&[11u8], &[21, 22]]; + + let witness_vec_vec = Witness::from(vec.clone()); + let witness_slice_vec = Witness::from(slice_vec); + let witness_slice_slice = Witness::from(slice_slice); + let witness_vec_slice = Witness::from(vec_slice); + + let mut expected = Witness::from_slice(&vec); + assert_eq!(expected.len(), 2); + assert_eq!(expected.to_vec(), vec); + + assert_eq!(witness_vec_vec, expected); + assert_eq!(witness_slice_vec, expected); + assert_eq!(witness_slice_slice, expected); + assert_eq!(witness_vec_slice, expected); + + // Test clear method + expected.clear(); + assert!(expected.is_empty()); + } + #[test] #[cfg(feature = "serde")] fn serde_bincode_backward_compatibility() {