(seq: &[T], n: usize)
| 24 | } |
| 25 | |
| 26 | pub fn random_sample<T: Clone>(seq: &[T], n: usize) -> Vec<&T> { |
| 27 | if seq.len() <= n { |
| 28 | let sample: Vec<&T> = seq.iter().collect(); |
| 29 | return sample; |
| 30 | } |
| 31 | let mut rng = get_global_rng(); |
| 32 | let sample: Vec<&T> = seq.choose_multiple(&mut *rng, n).collect(); |
| 33 | sample |
| 34 | } |
| 35 | |
| 36 | pub fn weighted_choose(weights: Vec<f32>) -> usize { |
| 37 | if weights.iter().all(|x| *x == 0.0_f32) { |
no test coverage detected