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

[enh] #41

parent 19cc66fa
No related branches found
No related tags found
No related merge requests found
......@@ -398,7 +398,9 @@ impl WebOfTrust for LegacyWebOfTrust {
let mut result = WotDistance {
sentries: 0,
success: 0,
success_at_border: 0,
reached: 0,
reached_at_border: 0,
outdistanced: false,
};
......@@ -412,17 +414,30 @@ impl WebOfTrust for LegacyWebOfTrust {
sentries[node.0] = false;
let mut checked: Vec<bool> = self.nodes.iter().map(|_| false).collect();
let mut checked_without_border: Vec<bool> = checked.clone();
if step_max >= 1 {
checked = self.check_matches(node, 1, step_max, checked);
if step_max >= 2 {
checked_without_border =
self.check_matches(node, 1, step_max - 1, checked_without_border);
}
}
for (&sentry, &check) in sentries.iter().zip(checked.iter()) {
for ((&sentry, &check), &check_without_border) in sentries
.iter()
.zip(checked.iter())
.zip(checked_without_border.iter())
{
if sentry {
result.sentries += 1;
if check {
result.success += 1;
result.reached += 1;
if !check_without_border {
result.success_at_border += 1;
result.reached_at_border += 1;
}
}
} else if check {
result.reached += 1;
......
......@@ -151,8 +151,12 @@ pub struct WotDistance {
pub sentries: u32,
/// Success count
pub success: u32,
/// Succes at border count
pub success_at_border: u32,
/// Reached count
pub reached: u32,
/// Reached at border count
pub reached_at_border: u32,
/// Is the node outdistanced ?
pub outdistanced: bool,
}
......
......@@ -286,8 +286,8 @@ 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 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
......@@ -298,7 +298,9 @@ impl WebOfTrust for RustyWebOfTrust {
Some(WotDistance {
sentries,
reached: (area.len() - 1) as u32,
reached_at_border: (border.len() - 1) as u32,
success,
success_at_border,
outdistanced: f64::from(success) < x_percent * f64::from(sentries),
})
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment