#election #voting #webster #schepers

sainte_lague

Sainte-Laguë method for seat distribution used in multiple parliamentary elections all over the world

3 releases

0.1.2 May 20, 2022
0.1.1 Mar 23, 2021
0.1.0 May 24, 2020

#1041 in Algorithms

ISC license

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.

Crate Version Build Status License

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

Contributing

If you found a bug or want to propose a feature, feel free to visit the issues page.

Dependencies

~310KB