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

Comments
PHPUnit does not return, I assume because of a problem like infinite recursion.

Election setup

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

Actual
PHPUnit does not return, I assume because of a problem like infinite recursion.

Expected
Loading ballots from file 20_6_5100_1090197746.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|1275.000000|1275.000000|1275.000000|1274.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|   0.000000|2184.714284| 728.571429  |---  | Count of first choices. Candidates 1, 2, 3, and 4 have reached the | threshold and are elected.

=
============================================================= 2| 728.571975| 728.571975| 728.571975| 728.572572|  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|2184.711503|1248.409353| 416.469786  |---  | Count after transferring surplus votes. Keep factors of candidates who | have exceeded the threshold: 1, 0.571429; 2, 0.571429; 3, 0.571429; | and 4, 0.571878.

=
============================================================= 3| 416.469825| 416.469825| 416.469825| 416.470600|  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|3433.119925| 713.377171| 238.125726  |---  | Count after transferring surplus votes. Keep factors of candidates who | have exceeded the threshold: 1, 0.326643; 2, 0.326643; 3, 0.326643; | and 4, 0.326900.

=
============================================================= 4| 238.126650| 238.126650| 238.126650| 238.125888|  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|4146.494162| 407.645358| 136.215120  |---  | Count after transferring surplus votes. Keep factors of candidates who | have exceeded the threshold: 1, 0.186766; 2, 0.186766; 3, 0.186766; | and 4, 0.186912.

=
============================================================= 5| 136.215900| 136.215900| 136.215900| 136.216080|  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|4554.136220| 232.941616|  77.980541  |---  | Count after transferring surplus votes. Keep factors of candidates who | have exceeded the threshold: 1, 0.106836; 2, 0.106836; 3, 0.106836; | and 4, 0.106920.

=
============================================================= 6| 77.981550|  77.981550|  77.981550|  77.981540|   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|4787.073810| 133.111222|  44.703742  |---  | Count after transferring surplus votes. Keep factors of candidates who | have exceeded the threshold: 1, 0.061162; 2, 0.061162; 3, 0.061162; | and 4, 0.061210.

=
============================================================= 7| 44.704050|  44.704050|  44.704050|  44.704660|   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|4920.183190|  76.064346|  25.688116  |---  | Count after transferring surplus votes. Keep factors of candidates who | have exceeded the threshold: 1, 0.035062; 2, 0.035062; 3, 0.035062; | and 4, 0.035090.

=
============================================================= 8| 25.688700|  25.688700|  25.688700|  25.688936|   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|4996.244964|  43.466440|  14.822149  |---  | Count after transferring surplus votes. Keep factors of candidates who | have exceeded the threshold: 1, 0.020148; 2, 0.020148; 3, 0.020148; | and 4, 0.020164.

=
============================================================= 9| 14.823150|  14.823150|  14.823150|  14.822990|   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|5039.707560|  24.839616|   8.613206  |---  | Count after transferring surplus votes. Keep factors of candidates who | have exceeded the threshold: 1, 0.011626; 2, 0.011626; 3, 0.011626; | and 4, 0.011635.

=
============================================================= 10|  8.613900|   8.613900|   8.613900|   8.613514|   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|5064.544786|  14.195090|   5.065031  |---  | Count after transferring surplus votes. Keep factors of candidates who | have exceeded the threshold: 1, 0.006756; 2, 0.006756; 3, 0.006756; | and 4, 0.006761.

=
============================================================= 11|  5.065575|   5.065575|   5.065575|   5.065424|   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|5078.737851|   8.112349|   3.037450  |---  | Count after transferring surplus votes. Keep factors of candidates who | have exceeded the threshold: 1, 0.003973; 2, 0.003973; 3, 0.003973; | and 4, 0.003976.

=
============================================================= 12|  3.038325|   3.038325|   3.038325|   3.038490|   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|5086.846535|   4.637197|   1.879067  |---  | Count after transferring surplus votes. Keep factors of candidates who | have exceeded the threshold: 1, 0.002383; 2, 0.002383; 3, 0.002383; | and 4, 0.002385.

=
============================================================= 13|  1.879350|   1.879350|   1.879350|   1.879150|   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|5091.482800|   2.650228|   1.216743  |---  | Count after transferring surplus votes. Keep factors of candidates who | have exceeded the threshold: 1, 0.001474; 2, 0.001474; 3, 0.001474; | and 4, 0.001475.

=
============================================================= 14|  1.217625|   1.217625|   1.217625|   1.217944|   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|5094.129181|   1.677374|   0.838689  |---  | Count after transferring surplus votes. Keep factors of candidates who | have exceeded the threshold: 1, 0.000955; 2, 0.000955; 3, 0.000955; | and 4, 0.000956. Candidate 5 has reached the threshold and is elected.

=
============================================================= 15|  0.838950|   0.838950|   0.838950|   0.839566|   0.838689|   0.161311  |   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|5095.643584|   1.083375|   0.622346  |---  | Count after transferring surplus votes. Keep factors of candidates who | have exceeded the threshold: 1, 0.000658; 2, 0.000658; 3, 0.000658; 4, | 0.000659; and 5, 0.838689.

=
============================================================= 16|  0.623475|   0.623475|   0.623475|   0.622986|   0.622346|   0.377654  |   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|5096.506589|   0.620462|   0.499059  |---  | Count after transferring surplus votes. Keep factors of candidates who | have exceeded the threshold: 1, 0.000489; 2, 0.000489; 3, 0.000489; 4, | 0.000489; and 5, 0.622346.

=
============================================================= 17|  0.499800|   0.499800|   0.499800|   0.499408|   0.499059|   0.500941  |           |           |           |           |           |             |           |           |           |           |           |             |           |           |5097.001192|   0.428396|   0.428402  |---  | Count after transferring surplus votes. Keep factors of candidates who | have exceeded the threshold: 1, 0.000392; 2, 0.000392; 3, 0.000392; 4, | 0.000392; and 5, 0.499059. Candidate 6 has reached the threshold and | is elected.

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

Files

 * blt: https://github.com/dominic998/SecurePoll-Test-Data/blob/main/test_data/20_6_5100_1090197746.blt
 * php: see https://phabricator.wikimedia.org/T283728#7226435

Environment
local docker using phpunit

version: SecurePoll commit 2ec357fdb086cece986d60d1b34759968c075c65 (patchset 15 from https://gerrit.wikimedia.org/r/c/mediawiki/extensions/SecurePoll/+/704454)