3 releases
0.1.2 | May 20, 2022 |
---|---|
0.1.1 | Mar 23, 2021 |
0.1.0 | May 24, 2020 |
#1041 in Algorithms
15KB
211 lines
sainte_lague
A rust implementation of the Sainte-Laguë (also known as Webster or Schepers) method. Parliament seat allocation algorithm used in multiple countries such as Germany, Latvia, New Zealand etc…
Attention: Since some countries (like Latvia or Norway) use a modification of the algorithm instead of this vanilla version, you should check your country's electoral legislature. Furthermore, I don't take any responsibility for the accuracy of the calculated numbers, even though I'm pretty confident with my implementation.
Example
use sainte_lague::distribute;
// …
#[test]
fn german_bundestag_2013() {
let votes = [41.5, 25.7, 8.6, 8.4];
let seats = 631;
let distribution = distribute(&votes, &seats, &false);
let parliament = vec![311, 193, 64, 63];
assert_eq!(distribution, Ok(parliament));
}
// …
Full documentation on docs.rs.
Similar projects
largest-remainder-method
- A rust implementation of the Hare-Niemeyer / Hamilton / largest remainder method
Contributing
If you found a bug or want to propose a feature, feel free to visit the issues page.
Dependencies
~310KB