Improve witness unit tests for single empty element
The current unit test is incorrect, the indices field of a witness with a single element starts at 1 because 0 is encode as a single byte (compact encoded integer). Fix the debug test and add a test that pushes an empty slice.
This commit is contained in:
parent
40ba08f369
commit
fe967279e5
|
@ -645,16 +645,33 @@ mod test {
|
||||||
v
|
v
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
// A witness with a single element that is empty (zero length).
|
||||||
fn witness_debug_can_display_empty_instruction() {
|
fn single_empty_element() -> Witness {
|
||||||
let witness = Witness {
|
// The first is 0 serialized as a compact size integer.
|
||||||
|
// The last four bytes represent start at index 0.
|
||||||
|
let content = [0_u8; 5];
|
||||||
|
|
||||||
|
Witness {
|
||||||
witness_elements: 1,
|
witness_elements: 1,
|
||||||
content: append_u32_vec(vec![], &[0]),
|
content: content.to_vec(),
|
||||||
indices_start: 2,
|
indices_start: 1,
|
||||||
};
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn witness_debug_can_display_empty_element() {
|
||||||
|
let witness = single_empty_element();
|
||||||
println!("{:?}", witness);
|
println!("{:?}", witness);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn witness_single_empty_element() {
|
||||||
|
let mut got = Witness::new();
|
||||||
|
got.push(&[]);
|
||||||
|
let want = single_empty_element();
|
||||||
|
assert_eq!(got, want)
|
||||||
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn test_push() {
|
fn test_push() {
|
||||||
let mut witness = Witness::default();
|
let mut witness = Witness::default();
|
||||||
|
|
Loading…
Reference in New Issue