Return a mask, each element being true if, and only if, the element is greater than all previous elements and greater or equal than the provided max_already_seen_group_id
(
values: &[usize],
mut max_already_seen_group_id: usize,
)
| 493 | |
| 494 | /// Return a mask, each element being true if, and only if, the element is greater than all previous elements and greater or equal than the provided max_already_seen_group_id |
| 495 | fn new_groups_mask( |
| 496 | values: &[usize], |
| 497 | mut max_already_seen_group_id: usize, |
| 498 | ) -> BooleanArray { |
| 499 | let mut output = BooleanBuilder::with_capacity(values.len()); |
| 500 | for value in values { |
| 501 | if *value >= max_already_seen_group_id { |
| 502 | output.append_value(true); |
| 503 | max_already_seen_group_id = *value + 1; // We want to be increasing |
| 504 | } else { |
| 505 | output.append_value(false); |
| 506 | } |
| 507 | } |
| 508 | output.finish() |
| 509 | } |
| 510 | |
| 511 | #[cfg(test)] |
| 512 | mod tests { |
no test coverage detected
searching dependent graphs…