majority_judgment 0.2.0 copy "majority_judgment: ^0.2.0" to clipboard
majority_judgment: ^0.2.0 copied to clipboard

Resolve Majority Judgment polls, to get the rank of each proposal. Supports billions of judges.

Majority Judgment for Dart #

MIT Release Build Status Code Quality LoC Discord Chat

This Dart package helps to resolve polls using Majority Judgment.

Features #

  • 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)

Get started #


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)
    
}

Contribute #

Usual git flow: clone, tinker, request a merge.

Authors #

This package was made by MieuxVoter, a french nonprofit.

2
likes
160
pub points
0%
popularity

Publisher

unverified uploader

Resolve Majority Judgment polls, to get the rank of each proposal. Supports billions of judges.

Repository (GitHub)
View/report issues

Documentation

API reference

License

MIT (LICENSE)

Dependencies

yaml

More

Packages that depend on majority_judgment