Skip to content
Snippets Groups Projects
Unverified Commit d1b43f1c authored by Daniel Rose's avatar Daniel Rose
Browse files

[MinMax] rank1, rank0: improve error checking, update tests

parent 8cfad8e3
No related branches found
No related tags found
No related merge requests found
......@@ -466,8 +466,7 @@ impl MinMax {
}
pub fn rank_0(&self, index: u64) -> Result<u64, NodeError> {
let result = (index - self.rank_1(index).unwrap()) as i64;
if result < 0 {
if index >= self.bits.len() {
return Err(NodeError::NotANodeError);
}
Ok(index - self.rank_1(index).unwrap() + 1)
......@@ -731,6 +730,7 @@ mod tests {
let min_max = MinMax::new(bits, 4);
assert_eq!(min_max.rank_1(11).unwrap(), 7);
assert_eq!(min_max.rank_1(21).unwrap(), 11);
assert_eq!(min_max.rank_1(22).unwrap_err(), NodeError::NotANodeError);
}
#[test]
......@@ -743,6 +743,7 @@ mod tests {
assert_eq!(min_max.rank_0(12).unwrap(), 6);
assert_eq!(min_max.rank_0(17).unwrap(), 7);
assert_eq!(min_max.rank_0(21).unwrap(), 11);
assert_eq!(min_max.rank_0(22).unwrap_err(), NodeError::NotANodeError);
}
#[test]
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment