TrustTheVote-Project / NIST-1500-100-103-examples

Other
3 stars 5 forks source link

Create EDF test cases of Ranked Choice Voting #60

Open cwulfman opened 2 years ago

cwulfman commented 2 years ago

Added a wiki page about RCV: https://github.com/TrustTheVote-Project/NIST-1500-100-103-examples/wiki/ranked_choice

cwulfman commented 2 years ago

Created a Versasim base for mocking up Hadron Party Primary featuring ranked-choice voting.

mattbeattie commented 2 years ago

I took a look at the wiki page, and everything I see there makes sense to me.

For EDFs, the new VoteVariation is the perfect way to signal to the client that the contest will need to be presented as RCV (in whatever way is appropriate). Continuing to use the existing VotesAllowed and ContestSelection means that no changes will be required to the parsing logic there. Very straightforward!

For CVRs, everything in section 5.8.1 of the NIST-1500-103 specification also looks sensible. The client would generate a one ContestSelection per voter choice, which will be identical to what we have in plurality contests except that we'll now need to add the Rank property with whatever the voter chose. Again, very straightforward.

One question about the NIST-1500-103 doc - I found two (here on GitHub and here on NIST's website). Which is correct? Can you link the correct one in your wiki?

cwulfman commented 2 years ago

I'll post a PR when I have a draft of an actual EDF, so others can review it. As for the NIST-1500-103 specification document: unless we're told otherwise, we should use the published version: https://doi.org/10.6028/NIST.SP.1500-103.

ion-oset commented 2 years ago

@mattbeattie it turns out the difference between the latest GitHub version and the officially published version is on the last page of each. The published version was created on March 31, 2020 (git: 8b3373ee). The one on the current GitHub version is 3 commits later on Apr. 21, 2020 (git: 6ad813ed), and has these changes:

  • Small corrections to the documentation were made.
  • For class CVR, definitions for BallotPrePrintedId and BallotSheetId were clarified.
  • The basic example in section 5.2 was corrected.

So if you had relied on the GitHub version nothing major changed, though of course the published version is still the one to use.