incrementalmerkletree: Document `Address::common_ancestor` test cases
Also adds a couple more test cases that pass.
This commit is contained in:
parent
b604c801a8
commit
4a34bf0032
|
@ -827,25 +827,95 @@ pub(crate) mod tests {
|
|||
|
||||
#[test]
|
||||
fn addr_common_ancestor() {
|
||||
// rt
|
||||
// --------------- ----------------
|
||||
// ------- ------- right -------
|
||||
// ----- left ----- ----- ----- ----- ----- -----
|
||||
// -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
|
||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
assert_eq!(
|
||||
Address::from_parts(Level(2), 1).common_ancestor(&Address::from_parts(Level(3), 2)),
|
||||
Address::from_parts(Level(5), 0)
|
||||
);
|
||||
// --------------------------
|
||||
// --------------- ----------------
|
||||
// ------- rt ------- -------
|
||||
// ----- ----- left ----- ----- ----- ----- -----
|
||||
// -- -- -- -- -- -- -- rg -- -- -- -- -- -- -- --
|
||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
assert_eq!(
|
||||
Address::from_parts(Level(2), 2).common_ancestor(&Address::from_parts(Level(1), 7)),
|
||||
Address::from_parts(Level(3), 1)
|
||||
);
|
||||
// --------------------------
|
||||
// --------------- ----------------
|
||||
// ------- rt ------- -------
|
||||
// ----- ----- left ----- ----- ----- ----- -----
|
||||
// -- -- -- -- -- -- rg -- -- -- -- -- -- -- -- --
|
||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
assert_eq!(
|
||||
Address::from_parts(Level(2), 2).common_ancestor(&Address::from_parts(Level(1), 6)),
|
||||
Address::from_parts(Level(3), 1)
|
||||
);
|
||||
// --------------------------
|
||||
// --------------- ----------------
|
||||
// ------- ------- ------- -------
|
||||
// ----- ----- all ----- ----- ----- ----- -----
|
||||
// -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
|
||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
assert_eq!(
|
||||
Address::from_parts(Level(2), 2).common_ancestor(&Address::from_parts(Level(2), 2)),
|
||||
Address::from_parts(Level(2), 2)
|
||||
);
|
||||
// --------------------------
|
||||
// --------------- ----------------
|
||||
// ------- ------- ------- -------
|
||||
// ----- ----- lf,rt ----- ----- ----- ----- -----
|
||||
// -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
|
||||
// - - - - - - - - - rg - - - - - - - - - - - - - - - - - - - - - -
|
||||
assert_eq!(
|
||||
Address::from_parts(Level(2), 2).common_ancestor(&Address::from_parts(Level(0), 9)),
|
||||
Address::from_parts(Level(2), 2)
|
||||
);
|
||||
// --------------------------
|
||||
// --------------- ----------------
|
||||
// ------- ------- ------- -------
|
||||
// ----- ----- rg,rt ----- ----- ----- ----- -----
|
||||
// -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
|
||||
// - - - - - - - - - lf - - - - - - - - - - - - - - - - - - - - - -
|
||||
assert_eq!(
|
||||
Address::from_parts(Level(0), 9).common_ancestor(&Address::from_parts(Level(2), 2)),
|
||||
Address::from_parts(Level(2), 2)
|
||||
);
|
||||
// --------------------------
|
||||
// --------------- ----------------
|
||||
// ------- ------- ------- -------
|
||||
// ----- ----- ----- rt ----- ----- ----- -----
|
||||
// -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
|
||||
// - - - - - - - - - - - - lf - - rg - - - - - - - - - - - - - - - -
|
||||
assert_eq!(
|
||||
Address::from_parts(Level(0), 12).common_ancestor(&Address::from_parts(Level(0), 15)),
|
||||
Address::from_parts(Level(2), 3)
|
||||
);
|
||||
// --------------------------
|
||||
// --------------- ----------------
|
||||
// ------- ------- ------- -------
|
||||
// ----- ----- ----- rt ----- ----- ----- -----
|
||||
// -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
|
||||
// - - - - - - - - - - - - - lf - rg - - - - - - - - - - - - - - - -
|
||||
assert_eq!(
|
||||
Address::from_parts(Level(0), 13).common_ancestor(&Address::from_parts(Level(0), 15)),
|
||||
Address::from_parts(Level(2), 3)
|
||||
);
|
||||
// --------------------------
|
||||
// --------------- ----------------
|
||||
// ------- ------- ------- -------
|
||||
// ----- ----- ----- ----- ----- ----- ----- -----
|
||||
// -- -- -- -- -- -- -- rt -- -- -- -- -- -- -- --
|
||||
// - - - - - - - - - - - - - - lf rg - - - - - - - - - - - - - - - -
|
||||
assert_eq!(
|
||||
Address::from_parts(Level(0), 14).common_ancestor(&Address::from_parts(Level(0), 15)),
|
||||
Address::from_parts(Level(1), 7)
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue