electionguard icon indicating copy to clipboard operation
electionguard copied to clipboard

✨ Remove the VoteVariationTypes not supported in 1.0 library

Open JohnLCaron opened this issue 4 years ago • 1 comments

Is there an existing issue for this?

  • [X] I have searched the existing issues

Suggestion

AFAICT, the 1.0 reference library supports

  1. n_of_m type election
  2. one_of_m is a special case with number_elected = 1.
  3. approval where votes_allowed = number of options.

I think in these three cases votes_allowed == number_elected.

Im looking at the other VoteVariationType's, and Im guessing some of those (majority, plurality, proportional, super_majority) can be done by the current system because they are just special versions of n_of_m. Some (borda, cumulative, range, rcv) I guess cannot currently be done.

For clarity, we should remove the VoteVariationTypes not supported in the 1.0 library, and for the supported ones, make clear if election guard needs to do any special handling.

Possible Implementation

For 1.0, remove all VoteVariationType's except n_of_m, one_of_m, and approval. Remove number_elected and only use votes_allowed, which is required.

Anything else?

Also see Issue #224 and Discussion #247

JohnLCaron avatar Mar 15 '22 03:03 JohnLCaron

Python handles with an error in 1.0. CPP needs to be checked.

colleenirt avatar Jun 27 '22 19:06 colleenirt