Skip to content

Commit 30edbae

Browse files
authored
feat: GenerateBreakpoints::is_empty and ::len (#258)
1 parent 214acac commit 30edbae

File tree

2 files changed

+14
-0
lines changed

2 files changed

+14
-0
lines changed

forrustts-genetics/src/genetic_maps.rs

+10
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,16 @@ impl Ord for Breakpoint {
4141
pub trait GenerateBreakpoints {
4242
fn generate_breakpoints<T: Rng>(&mut self, rng: &mut T);
4343
fn breakpoints(&self) -> &[Breakpoint];
44+
45+
/// Number of generated breakpoints.
46+
fn len(&self) -> usize {
47+
self.breakpoints().len()
48+
}
49+
50+
/// Checks if generated breakpoints are empty.
51+
fn is_empty(&self) -> bool {
52+
self.breakpoints().is_empty()
53+
}
4454
}
4555

4656
#[derive(Copy, Clone, Debug, PartialEq)]

forrustts-genetics/tests/test_genetic_maps.rs

+4
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,8 @@ fn test_generate_bernoulli_breakpoints() {
2828
map.generate_breakpoints(&mut rng);
2929
assert_eq!(map.breakpoints().len(), 2);
3030
assert!(map.breakpoints().windows(2).all(|w| { w[0] <= w[1] }));
31+
assert_eq!(map.len(), map.breakpoints().iter().count());
32+
assert_eq!(map.is_empty(), map.len() == 0);
3133
}
3234

3335
#[test]
@@ -40,6 +42,8 @@ fn test_generate_poisson_breakpoints() {
4042
let mut rng = rand::rngs::StdRng::seed_from_u64(0);
4143
map.generate_breakpoints(&mut rng);
4244
assert!(map.breakpoints().windows(2).all(|w| { w[0] <= w[1] }));
45+
assert_eq!(map.len(), map.breakpoints().iter().count());
46+
assert_eq!(map.is_empty(), map.len() == 0);
4347
}
4448

4549
#[test]

0 commit comments

Comments
 (0)