Anti-Harassment Tools/SecurePoll Improvements/Test Results/math-stackexchange-com-2011-election-results

Comments
SecurePoll and OpenSTV agree on elected candidates.

Election: https://math.stackexchange.com/election/2

Election setup

 * Candidates: 4
 * Seats: 2
 * Votes: 211

Actual results latest
SecurePoll tally page (patch 28):

Elected
Election for 2 seats with 4 candidates. Total 211 votes.


 * 1) "Candidate 1"
 * 2) "Candidate 2"

Rounds table
(Results from 13:55, 29 July 2021)

Actual results archive
Patch 17: Output from SecurePoll: array(3) { ["elected"]=> array(2) { [0]=>   int(1) [1]=>   int(2) } ["eliminated"]=> array(0) { } ["rounds"]=> array(3) { [0]=>   array(8) { ["round"]=> int(1) ["surplus"]=> int(0) ["rankings"]=> array(4) { [1]=>       array(3) { ["votes"]=> int(0) ["earned"]=> int(124) ["total"]=> int(124) }       [2]=>        array(3) { ["votes"]=> int(0) ["earned"]=> int(48) ["total"]=> int(48) }       [3]=>        array(3) { ["votes"]=> int(0) ["earned"]=> int(24) ["total"]=> int(24) }       [4]=>        array(3) { ["votes"]=> int(0) ["earned"]=> int(15) ["total"]=> int(15) }     }      ["totalVotes"]=> int(211) ["keepFactors"]=> array(4) { [1]=>       int(1) [2]=>       int(1) [3]=>       int(1) [4]=>       int(1) }     ["quota"]=> int(71) ["elected"]=> array(0) { }     ["eliminated"]=> array(0) { }   }    [1]=>    array(8) { ["round"]=> int(2) ["elected"]=> array(1) { [0]=>       int(1) }     ["eliminated"]=> array(0) { }     ["surplus"]=> int(53) ["keepFactors"]=> array(4) { [1]=>       int(1) [2]=>       int(1) [3]=>       int(1) [4]=>       int(1) }     ["quota"]=> int(71) ["rankings"]=> array(4) { [1]=>       array(3) { ["votes"]=> int(124) ["earned"]=> int(0) ["total"]=> int(124) }       [2]=>        array(3) { ["votes"]=> int(48) ["earned"]=> int(0) ["total"]=> int(48) }       [3]=>        array(3) { ["votes"]=> int(24) ["earned"]=> int(0) ["total"]=> int(24) }       [4]=>        array(3) { ["votes"]=> int(15) ["earned"]=> int(0) ["total"]=> int(15) }     }      ["totalVotes"]=> int(211) }   [2]=>    array(8) { ["round"]=> int(3) ["elected"]=> array(1) { [1]=>       int(2) }     ["eliminated"]=> array(0) { }     ["surplus"]=> float(5.6532258064516) ["keepFactors"]=> array(4) { [1]=>       float(0.57258064516129) [2]=>       int(1) [3]=>       int(1) [4]=>       int(1) }     ["quota"]=> int(68) ["rankings"]=> array(4) { [1]=>       array(3) { ["votes"]=> int(124) ["earned"]=> float(-53) ["total"]=> float(71) }       [2]=>        array(3) { ["votes"]=> int(48) ["earned"]=> float(22.653225806452) ["total"]=> float(70.653225806452) }       [3]=>        array(3) { ["votes"]=> int(24) ["earned"]=> float(14.532258064516) ["total"]=> float(38.532258064516) }       [4]=>        array(3) { ["votes"]=> int(15) ["earned"]=> float(8.5483870967742) ["total"]=> float(23.548387096774) }     }      ["totalVotes"]=> float(203.73387096774) } } }

Expected
Output from OpenSTV: Loading ballots from file math-stackexchange-com-2011-election-results.blt. Ballot file contains 4 candidates and 211 ballots. No candidates have withdrawn. Ballot file contains 211 non-empty ballots.

Counting votes for Mathematics Stack Exchange Moderator Election 2011 using Meek STV. 4 candidates running for 2 seats.

R|Candidate |Candidate |Candidate |Candidate |Exhausted |Surplus  |Threshold |1        |2         |3         |4         |          |          |

=
================================================================== 1|124.000000| 48.000000| 24.000000| 15.000000| 0.000000| 53.666666| 70.333334  |  | Count of first choices. Candidate Candidate 1 has reached the threshold and | is elected.

=
================================================================== 2| 70.333420| 70.938135| 38.715030| 23.655900| 7.357515|  5.509897| 67.880829  |  | Count after transferring surplus votes. Keep factors of candidates who have | exceeded the threshold: Candidate 1, 0.567205. Candidate Candidate 2 has | reached the threshold and is elected.

Winners are Candidate 1 and Candidate 2.

Files

 * blt: https://math.stackexchange.com/election/download-result/2
 * php:

Environment

 * Where you tested: local docker using phpunit
 * Latest version of SecurePoll tested:
 * commit 010a55df713367194b6772a07013cb667c333072 (patch 28 https://gerrit.wikimedia.org/r/c/mediawiki/extensions/SecurePoll/+/704454/)
 * commit dedf92f6aa5d2a1c4ffe7935f1c695623587c26d (patch 18 https://gerrit.wikimedia.org/r/c/mediawiki/extensions/SecurePoll/+/704210/)