Skip to content

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

file: README.md