Anti-Harassment Tools/SecurePoll Improvements/Test Results/20 6 5000 39399868
Comments
[edit]Case: All but one seats filled, rest of candidates hopeful, no clear candidate for elimination.
SecurePoll and OpenSTV agree on the final result.
In SecurePoll, this takes 147 rounds to decide the outcome!
Election setup
[edit]- Candidates: 20
- Seats: 6
- Votes: 5000
Actual
[edit]Output from SecurePoll (var_dump( $this->tallier->resultsLog );
): https://phabricator.wikimedia.org/P16853
Actual tally: SP 3.0.0 (58bf4c8)
[edit]Elected
[edit]Election for 6 seats with 20 candidates. Total 5,000 votes.
- "1"
- "2"
- "3"
- "4"
- "5"
- "6"
Eliminated/Not elected
[edit]- "7"
- "8"
- "9"
- "10"
- "11"
- "12"
- "13"
- "14"
- "15"
- "16"
- "17"
- "18"
- "19"
- "20"
Rounds table
[edit]The following table describes the calculations that happened in order to achieve the result above. In each round of calculation, the candidate(s) who achieved more votes than the quota are declared elected. Their surplus votes above the quota are redistributed to the remaining candidates. If nobody achieves the quota, the lowest ranking candidate is eliminated and their votes are redistributed to the remaining candidates. To understand this better, please refer to this link.
Round Number | Tally | Result |
---|---|---|
1 |
|
Quota: 714.285715 |
2 |
|
Quota: 714.285715
Elected: "1", "2", "3", "4", "5" |
3 |
|
Quota: 612.204083
Elected: "6" Transferring votes |
(Results from 14:27, 31 August 2021)
Expected
[edit]Output from OpenSTV: https://phabricator.wikimedia.org/P16854
Files
[edit]- blt: https://github.com/dominic998/SecurePoll-Test-Data/blob/main/test_data/20_6_5000_39399868.blt
- php:
array ( 11 => array ( 'count' => 93, 'rank' => array ( 1 => 11, ), ), 2 => array ( 'count' => 715, 'rank' => array ( 1 => 2, ), ), 8 => array ( 'count' => 90, 'rank' => array ( 1 => 8, ), ), 12 => array ( 'count' => 94, 'rank' => array ( 1 => 12, ), ), 4 => array ( 'count' => 715, 'rank' => array ( 1 => 4, ), ), 7 => array ( 'count' => 89, 'rank' => array ( 1 => 7, ), ), 9 => array ( 'count' => 91, 'rank' => array ( 1 => 9, ), ), 18 => array ( 'count' => 100, 'rank' => array ( 1 => 18, ), ), 16 => array ( 'count' => 98, 'rank' => array ( 1 => 16, ), ), 3 => array ( 'count' => 715, 'rank' => array ( 1 => 3, ), ), 10 => array ( 'count' => 92, 'rank' => array ( 1 => 10, ), ), 13 => array ( 'count' => 95, 'rank' => array ( 1 => 13, ), ), 1 => array ( 'count' => 715, 'rank' => array ( 1 => 1, ), ), 15 => array ( 'count' => 97, 'rank' => array ( 1 => 15, ), ), 19 => array ( 'count' => 101, 'rank' => array ( 1 => 19, ), ), 17 => array ( 'count' => 99, 'rank' => array ( 1 => 17, ), ), 20 => array ( 'count' => 102, 'rank' => array ( 1 => 20, ), ), 6 => array ( 'count' => 88, 'rank' => array ( 1 => 6, ), ), 5 => array ( 'count' => 715, 'rank' => array ( 1 => 5, ), ), 14 => array ( 'count' => 96, 'rank' => array ( 1 => 14, ), ), )
Environment
[edit]- Where you tested: local docker using phpunit
- Version of SecurePoll: commit 271145d5f3cae3b0a1b76d0f5dfeb609615d60b7 (patch 16 from https://gerrit.wikimedia.org/r/c/mediawiki/extensions/SecurePoll/+/704454/)