BV_Library — real BetterVoting elections, imported and verified¶
Parity cases: real BetterVoting results re-tabulated by the LH engine to confirm the two agree, across every method BetterVoting runs — STAR, Approval, Plurality, and Ranked Robin — including the tricky tiebreak paths. Each expected_winners is guarded by the positive test harness.
Read the reader-friendly pages (BV_Library_pages/); the .yaml beside each is the tabulatable source.
STAR¶
| Page (read this) | What it shows | Read · run |
|---|---|---|
| Condorcet winner | highest-scoring candidate is also the pairwise winner | .yaml |
| runoff | the lower score total wins the automatic runoff | .yaml |
| runner-up tie | second finalist decided by tiebreak — Allison wins | .yaml |
| runoff tie → score | a tied runoff broken by score total | .yaml |
| runoff & score tie → five-star | both tied, resolved by the five-star tiebreaker | .yaml |
STAR_PR (Allocated Score) — multi-winner¶
Ported from BetterVoting's AllocatedScore.test.ts. LH's allocated method reproduces BetterVoting's elected committee in each case. (BetterVoting's four fractional-surplus variants all elect the same committee, {Allison, Doug}; one representative is included. Random-tiebreak and vote-count-sanitization cases are omitted.)
| What it shows | src |
|---|---|
| basic two-seat allocation — elect top scorer, spend a quota, second seat follows | page · .yaml |
| fewer voters than seats — every seat still fills, in score order | page · .yaml |
| fractional surplus — 8 supporters vs a quota of 6 → ballots reweighted to 0.25 | page · .yaml |
Approval · Plurality · Ranked Robin¶
| Page (read this) | What it shows | src |
|---|---|---|
| Approval | most approvals wins | .yaml |
| Plurality | choose-one: most first-marks wins | .yaml |
| Ranked Robin | Condorcet winner, equal ranks allowed | .yaml |
| Ranked Robin — tie | a Copeland tie broken by tiebreak order | .yaml |
Up: method_comparisons — same ballots, different methods