Anti-Harassment Tools/SecurePoll Improvements/Test Results/20 6 5100 1116366364

Comments
SecurePoll elects candidates 1, 2, 3, 4 and 5.

OpenSTV elects candidates 1, 2, 3, 4, 5, and 6.

In SecurePoll, the minimum the droop quota can get in theory is 1, which is low enough to elect candidate 6 (who has exactly 1 vote). However, in this example, the quota never gets lower than 4.

This is a variant of 20_6_5100_106188776 and 20_6_5100_1090197746.

Election setup

 * Candidates: 20
 * Seats: 6
 * Votes: 5100

Actual
Output from SecurePoll : https://phabricator.wikimedia.org/P16911

Expected
Output from OpenSTV: Loading ballots from file 20_6_5100_1116366364.blt. Ballot file contains 20 candidates and 5100 ballots. No candidates have withdrawn. Ballot file contains 5100 non-empty ballots.

Counting votes for ElectionTitle using Meek STV. 20 candidates running for 6 seats.

R|1         |2          |3          |4          |5          |6 |---+---+---+---+---+--- |7          |8          |9          |10         |11         |12           |---+---+---+---+---+---  |13         |14         |15         |16         |17         |18           |---+---+---+---+---+---  |19         |20         |Exhausted  |Surplus    |Threshold

=
============================================================= 1|1020.000000|1020.000000|1020.000000|1020.000000|1019.000000|  1.000000  |   0.000000|   0.000000|   0.000000|   0.000000|   0.000000|   0.000000  |   0.000000|   0.000000|   0.000000|   0.000000|   0.000000|   0.000000  |   0.000000|   0.000000|   0.000000|1456.142855| 728.571429  |---  | Count of first choices. Candidates 1, 2, 3, 4, and 5 have reached the | threshold and are elected.

=
============================================================= 2| 728.571720| 728.571720| 728.571720| 728.571720| 728.571753|  1.000000  |   0.000000|   0.000000|   0.000000|   0.000000|   0.000000|   0.000000  |   0.000000|   0.000000|   0.000000|   0.000000|   0.000000|   0.000000  |   0.000000|   0.000000|1456.141367|1040.102463| 520.551234  |---  | Count after transferring surplus votes. Keep factors of candidates who | have exceeded the threshold: 1, 0.714286; 2, 0.714286; 3, 0.714286; 4, | 0.714286; and 5, 0.714987.

=
============================================================= 3| 520.551900| 520.551900| 520.551900| 520.551900| 520.552074|  1.000000  |   0.000000|   0.000000|   0.000000|   0.000000|   0.000000|   0.000000  |   0.000000|   0.000000|   0.000000|   0.000000|   0.000000|   0.000000  |   0.000000|   0.000000|2496.240326| 742.931334| 371.965668  |---  | Count after transferring surplus votes. Keep factors of candidates who | have exceeded the threshold: 1, 0.510345; 2, 0.510345; 3, 0.510345; 4, | 0.510345; and 5, 0.510846.

=
============================================================= 4| 371.966460| 371.966460| 371.966460| 371.966460| 371.966589|  1.000000  |   0.000000|   0.000000|   0.000000|   0.000000|   0.000000|   0.000000  |   0.000000|   0.000000|   0.000000|   0.000000|   0.000000|   0.000000  |   0.000000|   0.000000|3239.167571| 530.666404| 265.833205  |---  | Count after transferring surplus votes. Keep factors of candidates who | have exceeded the threshold: 1, 0.364673; 2, 0.364673; 3, 0.364673; 4, | 0.364673; and 5, 0.365031.

=
============================================================= 5| 265.833420| 265.833420| 265.833420| 265.833420| 265.833663|  1.000000  |   0.000000|   0.000000|   0.000000|   0.000000|   0.000000|   0.000000  |   0.000000|   0.000000|   0.000000|   0.000000|   0.000000|   0.000000  |   0.000000|   0.000000|3769.832657| 379.047808| 190.023907  |---  | Count after transferring surplus votes. Keep factors of candidates who | have exceeded the threshold: 1, 0.260621; 2, 0.260621; 3, 0.260621; 4, | 0.260621; and 5, 0.260877.

=
============================================================= 6| 190.023960| 190.023960| 190.023960| 190.023960| 190.024139|  1.000000  |   0.000000|   0.000000|   0.000000|   0.000000|   0.000000|   0.000000  |   0.000000|   0.000000|   0.000000|   0.000000|   0.000000|   0.000000  |   0.000000|   0.000000|4148.880021| 270.748564| 135.874283  |---  | Count after transferring surplus votes. Keep factors of candidates who | have exceeded the threshold: 1, 0.186298; 2, 0.186298; 3, 0.186298; 4, | 0.186298; and 5, 0.186481.

=
============================================================= 7| 135.875220| 135.875220| 135.875220| 135.875220| 135.874479|  1.000000  |   0.000000|   0.000000|   0.000000|   0.000000|   0.000000|   0.000000  |   0.000000|   0.000000|   0.000000|   0.000000|   0.000000|   0.000000  |   0.000000|   0.000000|4419.624641| 193.392959|  97.196480  |---  | Count after transferring surplus votes. Keep factors of candidates who | have exceeded the threshold: 1, 0.133211; 2, 0.133211; 3, 0.133211; 4, | 0.133211; and 5, 0.133341.

=
============================================================= 8| 97.196820|  97.196820|  97.196820|  97.196820|  97.197315|   1.000000  |   0.000000|   0.000000|   0.000000|   0.000000|   0.000000|   0.000000  |   0.000000|   0.000000|   0.000000|   0.000000|   0.000000|   0.000000  |   0.000000|   0.000000|4613.015405| 138.138455|  69.569228  |---  | Count after transferring surplus votes. Keep factors of candidates who | have exceeded the threshold: 1, 0.095291; 2, 0.095291; 3, 0.095291; 4, | 0.095291; and 5, 0.095385.

=
============================================================= 9| 69.570120|  69.570120|  69.570120|  69.570120|  69.570187|   1.000000  |   0.000000|   0.000000|   0.000000|   0.000000|   0.000000|   0.000000  |   0.000000|   0.000000|   0.000000|   0.000000|   0.000000|   0.000000  |   0.000000|   0.000000|4751.149333|  98.671617|  49.835810  |---  | Count after transferring surplus votes. Keep factors of candidates who | have exceeded the threshold: 1, 0.068206; 2, 0.068206; 3, 0.068206; 4, | 0.068206; and 5, 0.068273.

=
============================================================= 10| 49.836180|  49.836180|  49.836180|  49.836180|  49.836233|   1.000000  |   0.000000|   0.000000|   0.000000|   0.000000|   0.000000|   0.000000  |   0.000000|   0.000000|   0.000000|   0.000000|   0.000000|   0.000000  |   0.000000|   0.000000|4849.819047|  70.480268|  35.740137  |---  | Count after transferring surplus votes. Keep factors of candidates who | have exceeded the threshold: 1, 0.048859; 2, 0.048859; 3, 0.048859; 4, | 0.048859; and 5, 0.048907.

=
============================================================= 11| 35.740800|  35.740800|  35.740800|  35.740800|  35.740406|   1.000000  |   0.000000|   0.000000|   0.000000|   0.000000|   0.000000|   0.000000  |   0.000000|   0.000000|   0.000000|   0.000000|   0.000000|   0.000000  |   0.000000|   0.000000|4920.296394|  50.343886|  25.671944  |---  | Count after transferring surplus votes. Keep factors of candidates who | have exceeded the threshold: 1, 0.035040; 2, 0.035040; 3, 0.035040; 4, | 0.035040; and 5, 0.035074.

=
============================================================= 12| 25.672380|  25.672380|  25.672380|  25.672380|  25.672686|   1.000000  |   0.000000|   0.000000|   0.000000|   0.000000|   0.000000|   0.000000  |   0.000000|   0.000000|   0.000000|   0.000000|   0.000000|   0.000000  |   0.000000|   0.000000|4970.637794|  35.960626|  18.480316  |---  | Count after transferring surplus votes. Keep factors of candidates who | have exceeded the threshold: 1, 0.025169; 2, 0.025169; 3, 0.025169; 4, | 0.025169; and 5, 0.025194.

=
============================================================= 13| 18.480360|  18.480360|  18.480360|  18.480360|  18.480584|   1.000000  |   0.000000|   0.000000|   0.000000|   0.000000|   0.000000|   0.000000  |   0.000000|   0.000000|   0.000000|   0.000000|   0.000000|   0.000000  |   0.000000|   0.000000|5006.597976|  25.686289|  13.343147  |---  | Count after transferring surplus votes. Keep factors of candidates who | have exceeded the threshold: 1, 0.018118; 2, 0.018118; 3, 0.018118; 4, | 0.018118; and 5, 0.018136.

=
============================================================= 14| 13.343640|  13.343640|  13.343640|  13.343640|  13.343805|   1.000000  |   0.000000|   0.000000|   0.000000|   0.000000|   0.000000|   0.000000  |   0.000000|   0.000000|   0.000000|   0.000000|   0.000000|   0.000000  |   0.000000|   0.000000|5032.281635|  18.348100|   9.674053  |---  | Count after transferring surplus votes. Keep factors of candidates who | have exceeded the threshold: 1, 0.013082; 2, 0.013082; 3, 0.013082; 4, | 0.013082; and 5, 0.013095.

=
============================================================= 15|  9.674700|   9.674700|   9.674700|   9.674700|   9.674386|   1.000000  |   0.000000|   0.000000|   0.000000|   0.000000|   0.000000|   0.000000  |   0.000000|   0.000000|   0.000000|   0.000000|   0.000000|   0.000000  |   0.000000|   0.000000|5050.626814|  13.106621|   7.053313  |---  | Count after transferring surplus votes. Keep factors of candidates who | have exceeded the threshold: 1, 0.009485; 2, 0.009485; 3, 0.009485; 4, | 0.009485; and 5, 0.009494.

=
============================================================= 16|  7.054320|   7.054320|   7.054320|   7.054320|   7.053518|   1.000000  |   0.000000|   0.000000|   0.000000|   0.000000|   0.000000|   0.000000  |   0.000000|   0.000000|   0.000000|   0.000000|   0.000000|   0.000000  |   0.000000|   0.000000|5063.729202|   9.363083|   5.181543  |---  | Count after transferring surplus votes. Keep factors of candidates who | have exceeded the threshold: 1, 0.006916; 2, 0.006916; 3, 0.006916; 4, | 0.006916; and 5, 0.006922.

=
============================================================= 17|  5.181600|   5.181600|   5.181600|   5.181600|   5.181615|   1.000000  |   0.000000|   0.000000|   0.000000|   0.000000|   0.000000|   0.000000  |   0.000000|   0.000000|   0.000000|   0.000000|   0.000000|   0.000000  |   0.000000|   0.000000|5073.091985|   6.688000|   3.844003  |---  | Count after transferring surplus votes. Keep factors of candidates who | have exceeded the threshold: 1, 0.005080; 2, 0.005080; 3, 0.005080; 4, | 0.005080; and 5, 0.005085.

=
============================================================= 18|  3.844380|   3.844380|   3.844380|   3.844380|   3.844687|   1.000000  |   0.000000|   0.000000|   0.000000|   0.000000|   0.000000|   0.000000  |   0.000000|   0.000000|   0.000000|   0.000000|   0.000000|   0.000000  |   0.000000|   0.000000|5079.777793|   4.777772|   2.888887  |---  | Count after transferring surplus votes. Keep factors of candidates who | have exceeded the threshold: 1, 0.003769; 2, 0.003769; 3, 0.003769; 4, | 0.003769; and 5, 0.003773.

=
============================================================= 19|  2.889660|   2.889660|   2.889660|   2.889660|   2.889884|   1.000000  |   0.000000|   0.000000|   0.000000|   0.000000|   0.000000|   0.000000  |   0.000000|   0.000000|   0.000000|   0.000000|   0.000000|   0.000000  |   0.000000|   0.000000|5084.551476|   3.413859|   2.206933  |---  | Count after transferring surplus votes. Keep factors of candidates who | have exceeded the threshold: 1, 0.002833; 2, 0.002833; 3, 0.002833; 4, | 0.002833; and 5, 0.002836.

=
============================================================= 20|  2.207280|   2.207280|   2.207280|   2.207280|   2.207154|   1.000000  |   0.000000|   0.000000|   0.000000|   0.000000|   0.000000|   0.000000  |   0.000000|   0.000000|   0.000000|   0.000000|   0.000000|   0.000000  |   0.000000|   0.000000|5087.963726|   2.438934|   1.719468  |---  | Count after transferring surplus votes. Keep factors of candidates who | have exceeded the threshold: 1, 0.002164; 2, 0.002164; 3, 0.002164; 4, | 0.002164; and 5, 0.002166.

=
============================================================= 21|  1.719720|   1.719720|   1.719720|   1.719720|   1.720072|   1.000000  |   0.000000|   0.000000|   0.000000|   0.000000|   0.000000|   0.000000  |   0.000000|   0.000000|   0.000000|   0.000000|   0.000000|   0.000000  |   0.000000|   0.000000|5090.401048|   1.742557|   1.371279  |---  | Count after transferring surplus votes. Keep factors of candidates who | have exceeded the threshold: 1, 0.001686; 2, 0.001686; 3, 0.001686; 4, | 0.001686; and 5, 0.001688.

=
============================================================= 22|  1.371900|   1.371900|   1.371900|   1.371900|   1.371574|   1.000000  |   0.000000|   0.000000|   0.000000|   0.000000|   0.000000|   0.000000  |   0.000000|   0.000000|   0.000000|   0.000000|   0.000000|   0.000000  |   0.000000|   0.000000|5092.140826|   1.245474|   1.122740  |---  | Count after transferring surplus votes. Keep factors of candidates who | have exceeded the threshold: 1, 0.001345; 2, 0.001345; 3, 0.001345; 4, | 0.001345; and 5, 0.001346.

=
============================================================= 23|  1.123020|   1.123020|   1.123020|   1.123020|   1.122938|   1.000000  |           |           |           |           |           |             |           |           |           |           |           |             |           |           |5093.384982|   0.945000|   0.945003  |---  | Count after transferring surplus votes. Keep factors of candidates who | have exceeded the threshold: 1, 0.001101; 2, 0.001101; 3, 0.001101; 4, | 0.001101; and 5, 0.001102. Candidate 6 has reached the threshold and | is elected.

Winners are 1, 2, 3, 4, 5, and 6.

Files
array ( 4 =>   array ( 'count' => 1020, 'rank' => array (     1 => 4,    ), ), 1 =>   array ( 'count' => 1020, 'rank' => array (     1 => 1,    ), ), 5 =>   array ( 'count' => 1019, 'rank' => array (     1 => 5,    ), ), 3 =>   array ( 'count' => 1020, 'rank' => array (     1 => 3,    ), ), 2 =>   array ( 'count' => 1020, 'rank' => array (     1 => 2,    ), ), 6 =>   array ( 'count' => 1, 'rank' => array (     1 => 6,    ), ), )
 * blt: https://github.com/dominic998/SecurePoll-Test-Data/blob/main/test_data/20_6_5100_1116366364.blt
 * php:

Environment

 * Where you tested: local docker using PHPUnit
 * Version of SecurePoll: commit 92f76b9a4cbc529e135178abc142658ec0012b9e (patch 20 from https://gerrit.wikimedia.org/r/c/mediawiki/extensions/SecurePoll/+/704454/)