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 super::RoutingTable;
|
||||
use super::{generate_random_id, RoutingTable};
|
||||
|
||||
#[test]
|
||||
fn compute_split_start_end_root() {
|
||||
|
|
@ -790,4 +790,15 @@ mod tests {
|
|||
let v = serde_json::to_vec(&table).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 {
|
||||
let n = self.0[(bit / 8) as usize];
|
||||
let mask = !(1 << (7 - bit % 8));
|
||||
let mask = 1 << (7 - bit % 8);
|
||||
n & mask > 0
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue