Anti-Harassment Tools/SecurePoll Improvements/Test Results/12 9 5000 1830523430

Comments

edit

SecurePoll and OpenSTV disagree on elected candidates, due to differences in how we eliminate candidates and precision.

SecurePoll elects candidates 1, 2, 3, 4, 5, 6, 7, 8.

OpenSTV elects candidates 1, 2, 3, 4, 5, 6, 7, 8 and 9. Candidate 9 is partially elected at random. In round 43 candidates 9, 10, 11 and 12 are tied on equal votes, and 12 is eliminated at random. Only in round 49 does candidate 9 have more votes than the remaining candidates and so goes on to win a seat. If candidate 9 were eliminated in round 43, this wouldn't be the case.

Based on my own calculations using bc, in round 139 candidate 9 should have ~9.8609955E-17 votes transferred to them. This seems to be too small for PHP to handle in this case, and so candidate 9 is eliminated along with 10, 11 and 12 by SecurePoll.

Election setup

edit
  • Candidates: 12
  • Seats: 9
  • Votes: 5000

Actual results latest

edit

Output from SecurePoll tally.php: /actual

Output from SecurePoll var_export( ->tallier->resultsLog );: https://github.com/dominic998/SecurePoll-Test-Data/blob/main/test_data/12_9_5000_1830523430.blt.php

SecurePoll tally page: https://vote.wikimedia.beta.wmflabs.org/wiki/Special:SecurePoll/tally/1649

Actual results archive

edit

/archive

Expected

edit

Output from OpenSTV: /expected

Files

edit

Environment

edit
  • Where you tested: local docker and beta
  • Latest version of SecurePoll tested: 3.0.0 (624ef32) 00:10, 28 September 2021.