# sainte_lague
A rust implementation of the **[Sainte-Laguë](https://en.wikipedia.org/wiki/Webster/Sainte-Lagu%C3%AB_method)** (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](https://img.shields.io/crates/v/sainte_lague.svg)](https://crates.io/crates/sainte_lague)
[![Build Status](https://travis-ci.org/juliuste/sainte_lague.rs.svg?branch=master)](https://travis-ci.org/juliuste/sainte_lague.rs)
[![License](https://img.shields.io/github/license/juliuste/sainte_lague.rs.svg?style=flat)](license)
## Example
```rust
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](https://docs.rs/sainte_lague/).**
## Similar projects
- [`largest-remainder-method`](https://crates.io/crates/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](https://github.com/juliuste/sainte_lague.rs/issues).