From 84f3fa716d5eee789e0e2684aaec6f91795cec78 Mon Sep 17 00:00:00 2001 From: FiveMovesAhead Date: Tue, 12 Aug 2025 12:34:43 +0100 Subject: [PATCH] Handle max bounds on extend_frontiers. --- tig-utils/src/frontiers.rs | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/tig-utils/src/frontiers.rs b/tig-utils/src/frontiers.rs index 708da54..cf27951 100644 --- a/tig-utils/src/frontiers.rs +++ b/tig-utils/src/frontiers.rs @@ -268,16 +268,18 @@ pub fn pareto_frontier(frontier: &Frontier) -> Frontier { pub fn extend_frontier(frontier: &Frontier, min_point: &Point, max_point: &Point) -> Frontier { let mut frontier = frontier.clone(); - (0..min_point.len()).into_iter().for_each(|i| { - let mut d = min_point.clone(); - if let Some(v) = frontier.iter().map(|d| d[i]).max() { - d[i] = v; + for i in 0..min_point.len() { + if frontier.iter().all(|p| p[i] != max_point[i]) { + let mut d = min_point.clone(); + if let Some(v) = frontier.iter().map(|d| d[i]).max() { + d[i] = v; + } + if !frontier.contains(&d) { + d[i] = min(d[i] + 1, max_point[i]); + frontier.push(d); + } } - if !frontier.contains(&d) { - d[i] = min(d[i] + 1, max_point[i]); - frontier.push(d); - } - }); + } return frontier; }