Fix a bug in get_bit()
This commit is contained in:
parent
fee2690aae
commit
16a4d22b6b
2 changed files with 13 additions and 2 deletions
|
|
@ -682,7 +682,7 @@ mod tests {
|
||||||
|
|
||||||
use crate::routing_table::compute_split_start_end;
|
use crate::routing_table::compute_split_start_end;
|
||||||
|
|
||||||
use super::RoutingTable;
|
use super::{generate_random_id, RoutingTable};
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn compute_split_start_end_root() {
|
fn compute_split_start_end_root() {
|
||||||
|
|
@ -790,4 +790,15 @@ mod tests {
|
||||||
let v = serde_json::to_vec(&table).unwrap();
|
let v = serde_json::to_vec(&table).unwrap();
|
||||||
let _: RoutingTable = serde_json::from_reader(Cursor::new(v)).unwrap();
|
let _: RoutingTable = serde_json::from_reader(Cursor::new(v)).unwrap();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn test_generate_random_id() {
|
||||||
|
let start = Id20::from_str("3000000000000000000000000000000000000000").unwrap();
|
||||||
|
let end = Id20::from_str("3fffffffffffffffffffffffffffffffffffffff").unwrap();
|
||||||
|
let bits = 156;
|
||||||
|
for _ in 0..100 {
|
||||||
|
let id = dbg!(generate_random_id(&start, bits));
|
||||||
|
assert!(id >= start && id <= end, "{:?}", id);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -104,7 +104,7 @@ impl Id20 {
|
||||||
}
|
}
|
||||||
pub fn get_bit(&self, bit: u8) -> bool {
|
pub fn get_bit(&self, bit: u8) -> bool {
|
||||||
let n = self.0[(bit / 8) as usize];
|
let n = self.0[(bit / 8) as usize];
|
||||||
let mask = !(1 << (7 - bit % 8));
|
let mask = 1 << (7 - bit % 8);
|
||||||
n & mask > 0
|
n & mask > 0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue