Skip to content
Snippets Groups Projects
Commit c776fbbc authored by Éloïs's avatar Éloïs
Browse files

[tests] add compute_distance tests apply to g1-genesis wot

parent fb8bba21
No related branches found
No related tags found
1 merge request!28Resolve "wotb : compute_distance : get nbSuccess in border"
......@@ -3,4 +3,3 @@
**/*.rs.bk
*.wot
*.bin
......@@ -271,15 +271,10 @@ pub trait WebOfTrust {
if byte_integer >= factor {
byte_integer -= factor;
} else {
println!(
"DEBUG : set_enabled({})",
(nodes_count - count_remaining_nodes)
);
let test = self.set_enabled(
let _test = self.set_enabled(
NodeId((nodes_count - count_remaining_nodes) as usize),
false,
);
println!("DEBUG {:?}", test);
}
count_remaining_nodes -= 1;
}
......@@ -767,7 +762,7 @@ mod tests {
// Write wot in file
assert_eq!(
wot.to_file(
"test.bin",
"test.wot",
&[0b0000_0000, 0b0000_0001, 0b0000_0001, 0b0000_0000]
).unwrap(),
()
......@@ -778,7 +773,7 @@ mod tests {
// Read wot from file
{
assert_eq!(
wot2.from_file("test.bin").unwrap(),
wot2.from_file("test.wot").unwrap(),
vec![0b0000_0000, 0b0000_0001, 0b0000_0001, 0b0000_0000]
);
assert_eq!(wot.size(), wot2.size());
......@@ -799,5 +794,39 @@ mod tests {
Some(false)
);
}
// Read g1_genesis wot
let mut wot3 = generator(100);
assert_eq!(
wot3.from_file("tests/g1_genesis.bin").unwrap(),
vec![
57, 57, 45, 48, 48, 48, 48, 49, 50, 65, 68, 52, 57, 54, 69, 67, 65, 53, 54, 68, 69,
48, 66, 56, 69, 53, 68, 54, 70, 55, 52, 57, 66, 55, 67, 66, 69, 55, 56, 53, 53, 51,
69, 54, 51, 56, 53, 51, 51, 51, 65, 52, 52, 69, 48, 52, 51, 55, 55, 69, 70, 70, 67,
67, 65, 53, 51,
]
);
// Check g1_genesis wot members_count
let members_count = wot3.get_enabled().len() as u64;
assert_eq!(members_count, 59);
// Test compute_distance in g1_genesis wot
assert_eq!(
wot3.compute_distance(WotDistanceParameters {
node: NodeId(37),
sentry_requirement: 3,
step_max: 5,
x_percent: 0.8,
},),
Some(WotDistance {
sentries: 48,
success: 48,
success_at_border: 3,
reached: 52,
reached_at_border: 3,
outdistanced: false,
})
);
}
}
......@@ -286,19 +286,18 @@ impl WebOfTrust for RustyWebOfTrust {
}
let sentries: Vec<_> = self.get_sentries(sentry_requirement as usize);
let success = area.iter().filter(|n| sentries.contains(n)).count() as u32;
let mut success = area.iter().filter(|n| sentries.contains(n)).count() as u32;
let success_at_border = border.iter().filter(|n| sentries.contains(n)).count() as u32;
let sentries = sentries.len() as u32
- if self.is_sentry(node, sentry_requirement as usize).unwrap() {
1
} else {
0
};
let mut sentries = sentries.len() as u32;
if self.is_sentry(node, sentry_requirement as usize).unwrap() {
sentries = sentries - 1;
success = success - 1;
}
Some(WotDistance {
sentries,
reached: (area.len() - 1) as u32,
reached_at_border: (border.len() - 1) as u32,
reached: area.len() as u32,
reached_at_border: border.len() as u32,
success,
success_at_border,
outdistanced: f64::from(success) < x_percent * f64::from(sentries),
......
File added
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment