Anti-Harassment Tools/SecurePoll Improvements/Test Results/5 3 2679

Comments
SecurePoll elects candidates 1 and 2.

OpenSTV elects candidates 1, 2 (or A and B in the output) and another at random.

Election setup

 * Candidates: 5
 * Seats: 3
 * Votes: 2679

Actual
Output from SecurePoll : array(3) { ["elected"]=> array(2) { [0]=>   int(2) [1]=>   int(1) } ["eliminated"]=> array(3) { [0]=>   int(3) [1]=>   int(4) [2]=>   int(5) } ["rounds"]=> array(4) { [0]=>   array(8) { ["round"]=> int(1) ["surplus"]=> int(0) ["rankings"]=> array(5) { [1]=>       array(3) { ["votes"]=> int(0) ["earned"]=> int(509) ["total"]=> int(509) }       [2]=>        array(3) { ["votes"]=> int(0) ["earned"]=> int(670) ["total"]=> int(670) }       [3]=>        array(3) { ["votes"]=> int(0) ["earned"]=> int(500) ["total"]=> int(500) }       [4]=>        array(3) { ["votes"]=> int(0) ["earned"]=> int(500) ["total"]=> int(500) }       [5]=>        array(3) { ["votes"]=> int(0) ["earned"]=> int(500) ["total"]=> int(500) }     }      ["totalVotes"]=> int(2679) ["keepFactors"]=> array(5) { [1]=>       int(1) [2]=>       int(1) [3]=>       int(1) [4]=>       int(1) [5]=>       int(1) }     ["quota"]=> int(670) ["elected"]=> array(0) { }     ["eliminated"]=> array(0) { }   }    [1]=>    array(8) { ["round"]=> int(2) ["elected"]=> array(1) { [0]=>       int(2) }     ["eliminated"]=> array(0) { }     ["surplus"]=> int(0) ["keepFactors"]=> array(5) { [1]=>       int(1) [2]=>       int(1) [3]=>       int(1) [4]=>       int(1) [5]=>       int(1) }     ["quota"]=> int(670) ["rankings"]=> array(5) { [1]=>       array(3) { ["votes"]=> int(509) ["earned"]=> int(0) ["total"]=> int(509) }       [2]=>        array(3) { ["votes"]=> int(670) ["earned"]=> int(0) ["total"]=> int(670) }       [3]=>        array(3) { ["votes"]=> int(500) ["earned"]=> int(0) ["total"]=> int(500) }       [4]=>        array(3) { ["votes"]=> int(500) ["earned"]=> int(0) ["total"]=> int(500) }       [5]=>        array(3) { ["votes"]=> int(500) ["earned"]=> int(0) ["total"]=> int(500) }     }      ["totalVotes"]=> int(2679) }   [2]=>    array(8) { ["round"]=> int(3) ["elected"]=> array(0) { }     ["eliminated"]=> array(3) { [0]=>       int(3) [1]=>       int(4) [2]=>       int(5) }     ["surplus"]=> int(0) ["keepFactors"]=> array(5) { [1]=>       int(1) [2]=>       int(1) [3]=>       int(1) [4]=>       int(1) [5]=>       int(1) }     ["quota"]=> int(670) ["rankings"]=> array(5) { [1]=>       array(3) { ["votes"]=> int(509) ["earned"]=> int(0) ["total"]=> int(509) }       [2]=>        array(3) { ["votes"]=> int(670) ["earned"]=> int(0) ["total"]=> int(670) }       [3]=>        array(3) { ["votes"]=> int(500) ["earned"]=> int(0) ["total"]=> int(500) }       [4]=>        array(3) { ["votes"]=> int(500) ["earned"]=> int(0) ["total"]=> int(500) }       [5]=>        array(3) { ["votes"]=> int(500) ["earned"]=> int(0) ["total"]=> int(500) }     }      ["totalVotes"]=> int(2679) }   [3]=>    array(8) { ["round"]=> int(4) ["elected"]=> array(1) { [0]=>       int(1) }     ["eliminated"]=> array(0) { }     ["surplus"]=> int(589) ["keepFactors"]=> array(5) { [1]=>       int(1) [2]=>       int(1) [3]=>       int(0) [4]=>       int(0) [5]=>       int(0) }     ["quota"]=> int(295) ["rankings"]=> array(5) { [1]=>       array(3) { ["votes"]=> int(509) ["earned"]=> int(0) ["total"]=> int(509) }       [2]=>        array(3) { ["votes"]=> int(670) ["earned"]=> int(0) ["total"]=> int(670) }       [3]=>        array(3) { ["votes"]=> int(500) ["earned"]=> int(-500) ["total"]=> int(0) }       [4]=>        array(3) { ["votes"]=> int(500) ["earned"]=> int(-500) ["total"]=> int(0) }       [5]=>        array(3) { ["votes"]=> int(500) ["earned"]=> int(-500) ["total"]=> int(0) }     }      ["totalVotes"]=> int(1179) } } }

Elected
Election for 3 seats with 5 candidates. Total 2,679 votes.


 * 1) "B"
 * 2) "A"
 * 3) This seat could not be filled because no candidates fulfill the criteria. The last eliminated candidates were: "C", "D", "E"

Eliminated/Not elected

 * "C"
 * "D"
 * "E"

Rounds table
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. (Results from 03:38, 1 September 2021)

Navigation menu

 * Admin
 * Talk
 * Preferences
 * Watchlist
 * Contributions
 * Log out


 * Special page


 * Main page
 * Recent changes
 * Random page
 * Help about MediaWiki

Tools

 * Special pages
 * Printable version

Expected
Output from OpenSTV: Loading ballots from file 5_3_2679.blt. Ballot file contains 5 candidates and 2679 ballots. No candidates have withdrawn. Ballot file contains 2679 non-empty ballots.

Counting votes for 5_3_2679 using Meek STV. 5 candidates running for 3 seats.

R|A                |B                 |C                 |D |--+--+--+-- |E                 |Exhausted         |Surplus           |Threshold

=
================================================================= 1|       509.000000|        670.000000|        500.000000|        500.000000  |        500.000000|          0.000000|          0.249999|        669.750001  |---  | Count of first choices. Candidate B has reached the threshold and is | elected.

=
================================================================= 2|       509.249910|        669.750090|        500.000000|        500.000000  |        500.000000|          0.000000|          0.000089|        669.750001  |---  | Count after transferring surplus votes. Keep factors of candidates who | have exceeded the threshold: B, 0.999627.

=
================================================================= 3|       509.249910|        669.750090|        500.000000|        500.000000  |        500.000000|          0.000000|          0.000089|        669.750001  |---  | Count after transferring surplus votes. Keep factors of candidates who | have exceeded the threshold: B, 0.999627.

=
================================================================= 4|       509.249910|        669.750090|                  |        500.000000  |        500.000000|        500.000000|        125.000089|        544.750001  |---  | Count after eliminating C and transferring votes. Candidates tied within | precision of computations. Candidates C, D, and E were tied when choosing | candidates to eliminate. Candidate C was chosen by breaking the tie | randomly.

=
================================================================= 5|       634.249800|        544.750200|                  |        500.000000  |        500.000000|        500.000000|         89.499998|        544.750001  |---  | Count after transferring surplus votes. Keep factors of candidates who | have exceeded the threshold: B, 0.813060. Candidate A has reached the | threshold and is elected.

=
================================================================= 6|       544.750176|        544.750200|                  |        500.000000  |        500.000000|        589.499624|         44.750186|        522.375095  |---  | Count after transferring surplus votes. Keep factors of candidates who | have exceeded the threshold: A, 0.858889 and B, 0.813060.

=
================================================================= 7|       540.803119|        522.375550|                  |        500.000000  |        500.000000|        615.821331|         31.589333|        515.794668  |---  | Count after transferring surplus votes. Keep factors of candidates who | have exceeded the threshold: A, 0.823611 and B, 0.779665.

=
================================================================= 8|       520.964256|        515.794810|                  |        500.000000  |        500.000000|        642.240934|         18.379532|        509.189767  |---  | Count after transferring surplus votes. Keep factors of candidates who | have exceeded the threshold: A, 0.785525 and B, 0.769843.

=
================================================================= 9|       514.261401|        509.189950|                  |        500.000000  |        500.000000|        655.548649|         11.725675|        505.862838  |---  | Count after transferring surplus votes. Keep factors of candidates who | have exceeded the threshold: A, 0.767772 and B, 0.759985.

=
================================================================= 10|       508.375646|        505.863400|                  |        500.000000  |        500.000000|        664.760954|          7.119522|        503.559762  |---  | Count after transferring surplus votes. Keep factors of candidates who | have exceeded the threshold: A, 0.755234 and B, 0.755020.

=
================================================================= 11|       505.283200|        503.559940|                  |        500.000000  |        500.000000|        670.156860|          4.421568|        502.210786  |---  | Count after transferring surplus votes. Keep factors of candidates who | have exceeded the threshold: A, 0.748080 and B, 0.751582.

=
================================================================= 12|       503.214107|        502.211230|                  |        500.000000  |        500.000000|        673.574663|          2.712667|        501.356335  |---  | Count after transferring surplus votes. Keep factors of candidates who | have exceeded the threshold: A, 0.743532 and B, 0.749569.

=
================================================================= 13|       501.989817|        501.356980|                  |        500.000000  |        500.000000|        675.653203|          1.673397|        500.836700  |---  | Count after transferring surplus votes. Keep factors of candidates who | have exceeded the threshold: A, 0.740788 and B, 0.748294.

=
================================================================= 14|       501.221412|        500.837060|                  |        500.000000  |        500.000000|        676.941528|          1.029234|        500.514619  |---  | Count after transferring surplus votes. Keep factors of candidates who | have exceeded the threshold: A, 0.739087 and B, 0.747518.

=
================================================================= 15|       500.752616|        500.514790|                  |        500.000000  |        500.000000|        677.732594|          0.633702|        500.316852  |---  | Count after transferring surplus votes. Keep factors of candidates who | have exceeded the threshold: A, 0.738045 and B, 0.747037.

=
================================================================= 16|       500.462777|        500.317140|                  |        500.000000  |        500.000000|        678.220083|          0.389957|        500.194980  |---  | Count after transferring surplus votes. Keep factors of candidates who | have exceeded the threshold: A, 0.737403 and B, 0.746742.

=
================================================================= 17|       500.285246|        500.195200|                  |        500.000000  |        500.000000|        678.519554|          0.240222|        500.120112  |---  | Count after transferring surplus votes. Keep factors of candidates who | have exceeded the threshold: A, 0.737009 and B, 0.746560.

=
================================================================= 18|       500.175584|        500.120160|                  |        500.000000  |        500.000000|        678.704256|          0.147870|        500.073937  |---  | Count after transferring surplus votes. Keep factors of candidates who | have exceeded the threshold: A, 0.736766 and B, 0.746448.

=
================================================================= 19|       500.107991|        500.074600|                  |        500.000000  |        500.000000|        678.817409|          0.091295|        500.045648  |---  | Count after transferring surplus votes. Keep factors of candidates who | have exceeded the threshold: A, 0.736617 and B, 0.746380.

=
================================================================= 20|       500.067428|        500.045790|                  |        500.000000  |        500.000000|        678.886782|          0.056608|        500.028305  |---  | Count after transferring surplus votes. Keep factors of candidates who | have exceeded the threshold: A, 0.736526 and B, 0.746337.

=
================================================================= 21|       500.041557|        500.028370|                  |        500.000000  |        500.000000|        678.930073|          0.034963|        500.017482  |---  | Count after transferring surplus votes. Keep factors of candidates who | have exceeded the threshold: A, 0.736469 and B, 0.746311.

=
================================================================= 22|       500.025687|        500.017650|                  |        500.000000  |        500.000000|        678.956663|          0.021667|        500.010835  |---  | Count after transferring surplus votes. Keep factors of candidates who | have exceeded the threshold: A, 0.736434 and B, 0.746295.

=
================================================================= 23|       500.016363|        500.010950|                  |        500.000000  |        500.000000|        678.972687|          0.013655|        500.006829  |---  | Count after transferring surplus votes. Keep factors of candidates who | have exceeded the threshold: A, 0.736413 and B, 0.746285.

=
================================================================= 24|       500.009817|        500.006930|                  |        500.000000  |        500.000000|        678.983253|          0.008373|        500.004187  |---  | Count after transferring surplus votes. Keep factors of candidates who | have exceeded the threshold: A, 0.736399 and B, 0.746279.

=
================================================================= 25|       500.006359|        500.004250|                  |        500.000000  |        500.000000|        678.989391|          0.005303|        500.002653  |---  | Count after transferring surplus votes. Keep factors of candidates who | have exceeded the threshold: A, 0.736391 and B, 0.746275.

=
================================================================= 26|       500.003951|        500.002910|                  |        500.000000  |        500.000000|        678.993139|          0.003429|        500.001716  |---  | Count after transferring surplus votes. Keep factors of candidates who | have exceeded the threshold: A, 0.736386 and B, 0.746273.

=
================================================================= 27|       500.002407|        500.002240|                  |        500.000000  |        500.000000|        678.995353|          0.002323|        500.001162  |---  | Count after transferring surplus votes. Keep factors of candidates who | have exceeded the threshold: A, 0.736383 and B, 0.746272.

=
================================================================= 28|       500.002221|        500.001570|                  |        500.000000  |        500.000000|        678.996209|          0.001895|        500.000948  |---  | Count after transferring surplus votes. Keep factors of candidates who | have exceeded the threshold: A, 0.736382 and B, 0.746271.

=
================================================================= 29|       500.001542|        500.001570|                  |        500.000000  |        500.000000|        678.996888|          0.001554|        500.000779  |---  | Count after transferring surplus votes. Keep factors of candidates who | have exceeded the threshold: A, 0.736381 and B, 0.746271.

=
================================================================= 30|       500.001357|        500.000900|                  |        500.000000  |        500.000000|        678.997743|          0.001127|        500.000565  |---  | Count after transferring surplus votes. Keep factors of candidates who | have exceeded the threshold: A, 0.736380 and B, 0.746270.

=
================================================================= 31|       500.000678|        500.000900|                  |        500.000000  |        500.000000|        678.998422|          0.000788|        500.000395  |---  | Count after transferring surplus votes. Keep factors of candidates who | have exceeded the threshold: A, 0.736379 and B, 0.746270.

=
================================================================= 32|       500.000678|        500.000900|                  |        500.000000  |        500.000000|        678.998422|          0.000788|        500.000395  |---  | Count after transferring surplus votes. Keep factors of candidates who | have exceeded the threshold: A, 0.736379 and B, 0.746270.

=
================================================================= 33|       500.000678|        500.000900|                  |                    |        500.000000|       1178.998422|        375.000393|        375.000395  |---  | Count after eliminating D and transferring votes. Candidates tied within | precision of computations. Candidates D and E were tied when choosing | candidates to eliminate. Candidate D was chosen by breaking the tie | randomly. Candidate E has reached the threshold and is elected.

Winners are A, B, and E.

Files
array ( 1 =>   array ( 'count' => 509, 'rank' => array (     1 => '1',    ), ), '2_1' =>   array ( 'count' => 670, 'rank' => array (     1 => '2',      2 => '1',    ), ), 3 =>   array ( 'count' => 500, 'rank' => array (     1 => '3',    ), ), 4 =>   array ( 'count' => 500, 'rank' => array (     1 => '4',    ), ), 5 =>   array ( 'count' => 500, 'rank' => array (     1 => '5',    ), ), )
 * blt: https://github.com/dominic998/SecurePoll-Test-Data/blob/main/test_data/5_3_2679.blt
 * php:

Environment

 * 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/)