This Dart package helps to resolve polls using Majority Judgment.
- Efficient Majority Judgment algorithm, scales well to billions of participants
- Configure whether to favor adhesion or contestation (default)
- Balance proposal tallies using a static default grade or the median grade1
- Room for Central Judgment and Usual Judgment
- Unit-tested (run
dart test
)
import 'package:majority_judgment/majority_judgment.dart';
void main() {
final pollTally = PollTally([
[1, 2, 4, 2, 1], // Proposal A, from "worst" grade to "best" grade
[1, 2, 4, 1, 2], // Proposal B
[3, 1, 3, 1, 2], // Proposal C
[1, 2, 4, 2, 1], // Proposal D (equal to A)
]);
final mj = MajorityJudgmentResolver();
final result = mj.resolve(pollTally);
print(result.proposalsResults.map((ProposalResult p) => p.rank));
//> (2, 1, 4, 2)
print(result.sortedProposalsResults.map((ProposalResult p) => p.index));
//> (1, 0, 3, 2)
}
Usual git flow: clone, tinker, request a merge.
This package was made by MieuxVoter, a french nonprofit.
Footnotes
-
TODO, see #1 ; it's a good first issue if you want to contribute ↩