random_grouping
===
Utility for random grouping.
*The author of this crate is not good at English.*
*Forgive me if the document is hard to read.*
## What is this?
This is useful for grouping multiple items into some groups at random.
## Examples
```rust
let mut rg = RandomGrouping::new();
let samples = (0..10).collect::<Vec<_>>();
let ratios = [0.3, 0.3, 0.2];
let result = rg.divide_by_ratio(&samples, &ratios);
assert!(result.len() == ratios.len());
for i in 0..result.len() {
let group_size = (ratios[i] * samples.len() as f64).floor() as usize;
assert!(result[i].len() == group_size);
assert!(result[i].iter().all(|x| samples.contains(x)));
}
```
## What's New
v0.4.0
* Rust edition is updated to 2024.
* Add `prelude` module (Although this crate is very small).
* Polish documentations.
v0.3.1
* Minor refactoring.
v0.3.0
* `must_use` annotations are added at `RandomGrouping`.
v0.2.3
* Bug fix: Remove unwanted Debug output.
v0.2.0
* The default value of `stable` has been changed to `true` from `false`.
* The first argument of `divide_by_size` and `divide_by_ratio` is changed to
`IntoIterator` from slice.
* Instead, `divide_slice_by_size` and `divide_slice_by_ratio` are introduced
(which are faster for slices).