Summary
Add cleaning functions that truncate a ranked ballot when one of a specified set of candidates or CVR markers is encountered.
Common examples include "overvote", "undervote", and jurisdiction-specific end-of-ballot markers.
Expected behavior
Given:
RankBallot(ranking=["A", "overvote", "B", "C"])
truncating at "overvote" should produce:
RankBallot(ranking=["A"])
The marker and every ranking position below it are removed.
Part of #337.
Summary
Add cleaning functions that truncate a ranked ballot when one of a specified set of candidates or CVR markers is encountered.
Common examples include
"overvote","undervote", and jurisdiction-specific end-of-ballot markers.Expected behavior
Given: