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

Comments
SecurePoll and OpaVote agree on elected candidates.

Note, there is a slight discrepancy between the exact numbers of votes OpaVote and SecurePoll report. This seems to be because one candidate was removed after the OpaVote run, and so I think some of the votes were removed (after the election) from the blt file that SO provides and that I have used to test.

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

Election setup

 * Candidates: 6
 * Seats: 1
 * Votes: 2368

Actual results latest
SecurePoll tally page (patch 28):

Elected
Election for 1 seats with 5 candidates. Total 2,312 votes.


 * 1) "Candidate 3"

Eliminated

 * "Candidate 1"
 * "Candidate 2"
 * "Candidate 5"

Rounds table
(Results from 14:54, 29 July 2021)

Actual results archive
Output from SecurePoll: array(3) { ["elected"]=> array(1) { [0]=>   int(3) } ["eliminated"]=> array(3) { [0]=>   int(1) [1]=>   int(2) [2]=>   int(5) } ["rounds"]=> array(5) { [0]=>   array(8) { ["round"]=> int(1) ["surplus"]=> int(0) ["rankings"]=> array(5) { [1]=>       array(3) { ["votes"]=> int(0) ["earned"]=> int(204) ["total"]=> int(204) }       [2]=>        array(3) { ["votes"]=> int(0) ["earned"]=> int(374) ["total"]=> int(374) }       [3]=>        array(3) { ["votes"]=> int(0) ["earned"]=> int(611) ["total"]=> int(611) }       [4]=>        array(3) { ["votes"]=> int(0) ["earned"]=> int(650) ["total"]=> int(650) }       [5]=>        array(3) { ["votes"]=> int(0) ["earned"]=> int(473) ["total"]=> int(473) }     }      ["totalVotes"]=> int(2312) ["keepFactors"]=> array(5) { [1]=>       int(1) [2]=>       int(1) [3]=>       int(1) [4]=>       int(1) [5]=>       int(1) }     ["quota"]=> int(1157) ["elected"]=> array(0) { }     ["eliminated"]=> array(0) { }   }    [1]=>    array(8) { ["round"]=> int(2) ["elected"]=> array(0) { }     ["eliminated"]=> array(1) { [0]=>       int(1) }     ["surplus"]=> int(0) ["keepFactors"]=> array(5) { [1]=>       int(1) [2]=>       int(1) [3]=>       int(1) [4]=>       int(1) [5]=>       int(1) }     ["quota"]=> int(1157) ["rankings"]=> array(5) { [1]=>       array(3) { ["votes"]=> int(204) ["earned"]=> int(0) ["total"]=> int(204) }       [2]=>        array(3) { ["votes"]=> int(374) ["earned"]=> int(0) ["total"]=> int(374) }       [3]=>        array(3) { ["votes"]=> int(611) ["earned"]=> int(0) ["total"]=> int(611) }       [4]=>        array(3) { ["votes"]=> int(650) ["earned"]=> int(0) ["total"]=> int(650) }       [5]=>        array(3) { ["votes"]=> int(473) ["earned"]=> int(0) ["total"]=> int(473) }     }      ["totalVotes"]=> int(2312) }   [2]=>    array(8) { ["round"]=> int(3) ["elected"]=> array(0) { }     ["eliminated"]=> array(1) { [0]=>       int(2) }     ["surplus"]=> int(0) ["keepFactors"]=> array(5) { [1]=>       int(0) [2]=>       int(1) [3]=>       int(1) [4]=>       int(1) [5]=>       int(1) }     ["quota"]=> int(1146) ["rankings"]=> array(5) { [1]=>       array(3) { ["votes"]=> int(204) ["earned"]=> int(-204) ["total"]=> int(0) }       [2]=>        array(3) { ["votes"]=> int(374) ["earned"]=> int(31) ["total"]=> int(405) }       [3]=>        array(3) { ["votes"]=> int(611) ["earned"]=> int(44) ["total"]=> int(655) }       [4]=>        array(3) { ["votes"]=> int(650) ["earned"]=> int(53) ["total"]=> int(703) }       [5]=>        array(3) { ["votes"]=> int(473) ["earned"]=> int(55) ["total"]=> int(528) }     }      ["totalVotes"]=> int(2291) }   [3]=>    array(8) { ["round"]=> int(4) ["elected"]=> array(0) { }     ["eliminated"]=> array(1) { [0]=>       int(5) }     ["surplus"]=> int(0) ["keepFactors"]=> array(5) { [1]=>       int(0) [2]=>       int(0) [3]=>       int(1) [4]=>       int(1) [5]=>       int(1) }     ["quota"]=> int(1116) ["rankings"]=> array(5) { [1]=>       array(3) { ["votes"]=> int(0) ["earned"]=> int(0) ["total"]=> int(0) }       [2]=>        array(3) { ["votes"]=> int(405) ["earned"]=> int(-405) ["total"]=> int(0) }       [3]=>        array(3) { ["votes"]=> int(655) ["earned"]=> int(190) ["total"]=> int(845) }       [4]=>        array(3) { ["votes"]=> int(703) ["earned"]=> int(102) ["total"]=> int(805) }       [5]=>        array(3) { ["votes"]=> int(528) ["earned"]=> int(52) ["total"]=> int(580) }     }      ["totalVotes"]=> int(2230) }   [4]=>    array(8) { ["round"]=> int(5) ["elected"]=> array(1) { [0]=>       int(3) }     ["eliminated"]=> array(0) { }     ["surplus"]=> int(10) ["keepFactors"]=> array(5) { [1]=>       int(0) [2]=>       int(0) [3]=>       int(1) [4]=>       int(1) [5]=>       int(0) }     ["quota"]=> int(1023) ["rankings"]=> array(5) { [1]=>       array(3) { ["votes"]=> int(0) ["earned"]=> int(0) ["total"]=> int(0) }       [2]=>        array(3) { ["votes"]=> int(0) ["earned"]=> int(0) ["total"]=> int(0) }       [3]=>        array(3) { ["votes"]=> int(845) ["earned"]=> int(188) ["total"]=> int(1033) }       [4]=>        array(3) { ["votes"]=> int(805) ["earned"]=> int(207) ["total"]=> int(1012) }       [5]=>        array(3) { ["votes"]=> int(580) ["earned"]=> int(-580) ["total"]=> int(0) }     }      ["totalVotes"]=> int(2045) } } }

Expected
Output from OpaVote:
 * https://www.opavote.com/results/6576975779987456
 * https://math.stackexchange.com/election/8

Files

 * blt: https://math.stackexchange.com/election/download-result/8
 * 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/)