Package Exports
- highest-averages
- highest-averages/dist/index.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (highest-averages) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
highest-averages
This is set of highest averages methods for allocating seats in a parliament.
Install
npm i highest-averagesPure Example
- Define the candidates with their vote
const a = new Candidate('A', 200)
const b = new Candidate('B', 140)
const c = new Candidate('C', 70)- Implement divisor function
const divisor: Divisor = new class implements Divisor {
next (iteration: number): number {
return iteration + 2
}
}- Define the highest averages method
const highestAverage = new HighestAverage(divisor)- Get the results for 5 seats
const result = highestAverage
.withSeat(5)
.withCandidates([a, b, c])
.apply()
result.forEach(candidate => console.log(`${candidate.name()}:${candidate.seat}`))- Result
A:3
B:2
C:0- Selection table of example
| 1 | 2 | 3 | 4 | 5 | Result | |
|---|---|---|---|---|---|---|
| A | 100* | 66.66 | 66.66* | 50* | 40 | 3 |
| B | 70 | 70* | 46.66 | 46.66 | 46.66* | 2 |
| C | 35 | 35 | 35 | 35 | 35 | 0 |
Predefined Highest Averages Methods
- D'Hondt
const result = new DHondt()
.withSeat(5)
.withCandidates([])
.apply()- Sainte-Laguë
const result = new SainteLague()
.withSeat(5)
.withCandidates([])
.apply()- Imperiali
const result = new Imperiali()
.withSeat(5)
.withCandidates([])
.apply()- Huntington–Hill
const result = new HuntingtonHill()
.withSeat(5)
.withCandidates([])
.apply()- Danish
const result = new Danish()
.withSeat(5)
.withCandidates([])
.apply()Election Implementations (examples)
- Greenland general election (Inatsisartut) (2018, 2021)
- Dutch general election (Tweede Kamer der Staten-Generaal) (2017, 2021)
- San Marino general election (Consiglio Grande e Generale) (2019)