Conversation
…approval; modify workflow; add unit tests
…for candidates with multiple ranks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Encapsulate rules for the validity of votes for different social choice functions into functions in core/Audit/Contest, with suitable defaults for plurality, supermajority, approval, and IRV. There are flags for some common variants of IRV validity rules, and the ability to add a user-defined validity function. The default IRV rules correspond to San Francisco's rules.
Add
validatedproperty to CVR object to list Contests for which the CVR has been validated.Remove enforcement of social choice rule from Formats/Dominion.read_cvrs().
The idea in this update is that the CVRs and MVRs that SHANGRLA ingests should henceforth be "raw," i.e., what the marks on the ballot card (supposedly) show or what the auditors see, with no enforcement of what constitutes a valid vote nor transformation/interpretation into a valid portion of the vote (e.g., if a voter assigns the same rank to two candidates or omits a rank). Turning a set of marks into the corresponding valid vote (if any) is now done internally. For instance, the functions determine whether the reported marks constitute an overvote.
The logic for IRV is the most complicated, partly because there are more variants of operations on ranks. Operations some jurisdictions use include removing overvoted ranks and "squeezing" to remove omitted ranks.