Anti-Harassment Tools/SecurePoll Improvements/Test Results/20 2 5200 1308507669

Comments
SecurePoll elects candidate 1.

OpenSTV elects candidate 1 and 2.

I think this is (at least in part) due to both using different formulas to calculate the droop quota. SecurePoll's droop quota is slightly greater than OpenSTV's.

SecurePoll uses the formula $\left \lfloor \frac{\text{total valid poll}}{ \text{seats}+1 } \right \rfloor + 1$ (from here). OpenSTV appears to use something like $\frac{\text{total valid poll}}{ \text{seats}+1 } + 0.000001$.

In OpenSTV, candidate 1 exceeds the quota in round 1 and transfers their surplus votes to candidate 2, saving candidate 2 from elimination.

In SecurePoll, candidate 1 does not exceed the quota in round 1, so they have no surplus to transfer, and candidate 2 gets eliminated at the same times as the rest of the candidates.

Election setup

 * Candidates: 20
 * Seats: 2
 * Votes: 5200

Actual
Output from SecurePoll:    array ( 0 => 1, ),  'eliminated' =>   array ( 0 => 17,   1 => 18,    2 => 19,    3 => 20,    4 => 10,    5 => 15,    6 => 14,    7 => 13,    8 => 12,    9 => 2,    10 => 11,    11 => 9,    12 => 8,    13 => 7,    14 => 6,    15 => 5,    16 => 4,    17 => 3,    18 => 16,  ),  'rounds' =>   array ( 0 =>    array (      'round' => 1,      'surplus' => 0,      'rankings' =>       array ( 1 =>        array (          'votes' => 0,          'earned' => 1734,          'total' => 1734,        ), 2 =>        array (          'votes' => 0,          'earned' => 231,          'total' => 231,        ), 3 =>        array (          'votes' => 0,          'earned' => 231,          'total' => 231,        ), 4 =>        array (          'votes' => 0,          'earned' => 231,          'total' => 231,        ), 5 =>        array (          'votes' => 0,          'earned' => 231,          'total' => 231,        ), 6 =>        array (          'votes' => 0,          'earned' => 231,          'total' => 231,        ), 7 =>        array (          'votes' => 0,          'earned' => 231,          'total' => 231,        ), 8 =>        array (          'votes' => 0,          'earned' => 231,          'total' => 231,        ), 9 =>        array (          'votes' => 0,          'earned' => 231,          'total' => 231,        ), 10 =>        array (          'votes' => 0,          'earned' => 231,          'total' => 231,        ), 11 =>        array (          'votes' => 0,          'earned' => 231,          'total' => 231,        ), 12 =>        array (          'votes' => 0,          'earned' => 231,          'total' => 231,        ), 13 =>        array (          'votes' => 0,          'earned' => 231,          'total' => 231,        ), 14 =>        array (          'votes' => 0,          'earned' => 231,          'total' => 231,        ), 15 =>        array (          'votes' => 0,          'earned' => 231,          'total' => 231,        ), 16 =>        array (          'votes' => 0,          'earned' => 232,          'total' => 232,        ), 17 =>        array (          'votes' => 0,          'earned' => 0,          'total' => 0,        ), 18 =>        array (          'votes' => 0,          'earned' => 0,          'total' => 0,        ), 19 =>        array (          'votes' => 0,          'earned' => 0,          'total' => 0,        ), 20 =>        array (          'votes' => 0,          'earned' => 0,          'total' => 0,        ), ),     'totalVotes' => 5200,      'keepFactors' =>       array ( 1 => 1,       2 => 1,        3 => 1,        4 => 1,        5 => 1,        6 => 1,        7 => 1,        8 => 1,        9 => 1,        10 => 1,        11 => 1,        12 => 1,        13 => 1,        14 => 1,        15 => 1,        16 => 1,        17 => 1,        18 => 1,        19 => 1,        20 => 1,      ),      'quota' => 1734,      'elected' =>       array ( ),     'eliminated' =>       array ( ),   ),    1 =>     array (      'round' => 2,      'elected' =>       array ( 0 => 1,     ),      'eliminated' =>       array ( ),     'surplus' => 0,      'keepFactors' =>       array ( 1 => 1,       2 => 1,        3 => 1,        4 => 1,        5 => 1,        6 => 1,        7 => 1,        8 => 1,        9 => 1,        10 => 1,        11 => 1,        12 => 1,        13 => 1,        14 => 1,        15 => 1,        16 => 1,        17 => 1,        18 => 1,        19 => 1,        20 => 1,      ),      'quota' => 1734,      'rankings' =>       array ( 1 =>        array (          'votes' => 1734,          'earned' => 0,          'total' => 1734,        ), 2 =>        array (          'votes' => 231,          'earned' => 0,          'total' => 231,        ), 3 =>        array (          'votes' => 231,          'earned' => 0,          'total' => 231,        ), 4 =>        array (          'votes' => 231,          'earned' => 0,          'total' => 231,        ), 5 =>        array (          'votes' => 231,          'earned' => 0,          'total' => 231,        ), 6 =>        array (          'votes' => 231,          'earned' => 0,          'total' => 231,        ), 7 =>        array (          'votes' => 231,          'earned' => 0,          'total' => 231,        ), 8 =>        array (          'votes' => 231,          'earned' => 0,          'total' => 231,        ), 9 =>        array (          'votes' => 231,          'earned' => 0,          'total' => 231,        ), 10 =>        array (          'votes' => 231,          'earned' => 0,          'total' => 231,        ), 11 =>        array (          'votes' => 231,          'earned' => 0,          'total' => 231,        ), 12 =>        array (          'votes' => 231,          'earned' => 0,          'total' => 231,        ), 13 =>        array (          'votes' => 231,          'earned' => 0,          'total' => 231,        ), 14 =>        array (          'votes' => 231,          'earned' => 0,          'total' => 231,        ), 15 =>        array (          'votes' => 231,          'earned' => 0,          'total' => 231,        ), 16 =>        array (          'votes' => 232,          'earned' => 0,          'total' => 232,        ), 17 =>        array (          'votes' => 0,          'earned' => 0,          'total' => 0,        ), 18 =>        array (          'votes' => 0,          'earned' => 0,          'total' => 0,        ), 19 =>        array (          'votes' => 0,          'earned' => 0,          'total' => 0,        ), 20 =>        array (          'votes' => 0,          'earned' => 0,          'total' => 0,        ), ),     'totalVotes' => 5200,    ), 2 =>    array (      'round' => 3,      'elected' =>       array ( ),     'eliminated' =>       array ( 0 => 17,       1 => 18,        2 => 19,        3 => 20,      ),      'surplus' => 0,      'keepFactors' =>       array ( 1 => 1,       2 => 1,        3 => 1,        4 => 1,        5 => 1,        6 => 1,        7 => 1,        8 => 1,        9 => 1,        10 => 1,        11 => 1,        12 => 1,        13 => 1,        14 => 1,        15 => 1,        16 => 1,        17 => 1,        18 => 1,        19 => 1,        20 => 1,      ),      'quota' => 1734,      'rankings' =>       array ( 1 =>        array (          'votes' => 1734,          'earned' => 0,          'total' => 1734,        ), 2 =>        array (          'votes' => 231,          'earned' => 0,          'total' => 231,        ), 3 =>        array (          'votes' => 231,          'earned' => 0,          'total' => 231,        ), 4 =>        array (          'votes' => 231,          'earned' => 0,          'total' => 231,        ), 5 =>        array (          'votes' => 231,          'earned' => 0,          'total' => 231,        ), 6 =>        array (          'votes' => 231,          'earned' => 0,          'total' => 231,        ), 7 =>        array (          'votes' => 231,          'earned' => 0,          'total' => 231,        ), 8 =>        array (          'votes' => 231,          'earned' => 0,          'total' => 231,        ), 9 =>        array (          'votes' => 231,          'earned' => 0,          'total' => 231,        ), 10 =>        array (          'votes' => 231,          'earned' => 0,          'total' => 231,        ), 11 =>        array (          'votes' => 231,          'earned' => 0,          'total' => 231,        ), 12 =>        array (          'votes' => 231,          'earned' => 0,          'total' => 231,        ), 13 =>        array (          'votes' => 231,          'earned' => 0,          'total' => 231,        ), 14 =>        array (          'votes' => 231,          'earned' => 0,          'total' => 231,        ), 15 =>        array (          'votes' => 231,          'earned' => 0,          'total' => 231,        ), 16 =>        array (          'votes' => 232,          'earned' => 0,          'total' => 232,        ), 17 =>        array (          'votes' => 0,          'earned' => 0,          'total' => 0,        ), 18 =>        array (          'votes' => 0,          'earned' => 0,          'total' => 0,        ), 19 =>        array (          'votes' => 0,          'earned' => 0,          'total' => 0,        ), 20 =>        array (          'votes' => 0,          'earned' => 0,          'total' => 0,        ), ),     'totalVotes' => 5200,    ), 3 =>    array (      'round' => 4,      'elected' =>       array ( ),     'eliminated' =>       array ( 0 => 10,       1 => 15,        2 => 14,        3 => 13,        4 => 12,        5 => 2,        6 => 11,        7 => 9,        8 => 8,        9 => 7,        10 => 6,        11 => 5,        12 => 4,        13 => 3,      ),      'surplus' => 0,      'keepFactors' =>       array ( 1 => 1,       2 => 1,        3 => 1,        4 => 1,        5 => 1,        6 => 1,        7 => 1,        8 => 1,        9 => 1,        10 => 1,        11 => 1,        12 => 1,        13 => 1,        14 => 1,        15 => 1,        16 => 1,        17 => 0,        18 => 0,        19 => 0,        20 => 0,      ),      'quota' => 1734,      'rankings' =>       array ( 1 =>        array (          'votes' => 1734,          'earned' => 0,          'total' => 1734,        ), 2 =>        array (          'votes' => 231,          'earned' => 0,          'total' => 231,        ), 3 =>        array (          'votes' => 231,          'earned' => 0,          'total' => 231,        ), 4 =>        array (          'votes' => 231,          'earned' => 0,          'total' => 231,        ), 5 =>        array (          'votes' => 231,          'earned' => 0,          'total' => 231,        ), 6 =>        array (          'votes' => 231,          'earned' => 0,          'total' => 231,        ), 7 =>        array (          'votes' => 231,          'earned' => 0,          'total' => 231,        ), 8 =>        array (          'votes' => 231,          'earned' => 0,          'total' => 231,        ), 9 =>        array (          'votes' => 231,          'earned' => 0,          'total' => 231,        ), 10 =>        array (          'votes' => 231,          'earned' => 0,          'total' => 231,        ), 11 =>        array (          'votes' => 231,          'earned' => 0,          'total' => 231,        ), 12 =>        array (          'votes' => 231,          'earned' => 0,          'total' => 231,        ), 13 =>        array (          'votes' => 231,          'earned' => 0,          'total' => 231,        ), 14 =>        array (          'votes' => 231,          'earned' => 0,          'total' => 231,        ), 15 =>        array (          'votes' => 231,          'earned' => 0,          'total' => 231,        ), 16 =>        array (          'votes' => 232,          'earned' => 0,          'total' => 232,        ), 17 =>        array (          'votes' => 0,          'earned' => 0,          'total' => 0,        ), 18 =>        array (          'votes' => 0,          'earned' => 0,          'total' => 0,        ), 19 =>        array (          'votes' => 0,          'earned' => 0,          'total' => 0,        ), 20 =>        array (          'votes' => 0,          'earned' => 0,          'total' => 0,        ), ),     'totalVotes' => 5200,    ), 4 =>    array (      'round' => 5,      'elected' =>       array ( ),     'eliminated' =>       array ( 0 => 16,     ),      'surplus' => 1078,      'keepFactors' =>       array ( 1 => 1,       2 => 0,        3 => 0,        4 => 0,        5 => 0,        6 => 0,        7 => 0,        8 => 0,        9 => 0,        10 => 0,        11 => 0,        12 => 0,        13 => 0,        14 => 0,        15 => 0,        16 => 1,        17 => 0,        18 => 0,        19 => 0,        20 => 0,      ),      'quota' => 656,      'rankings' =>       array ( 1 =>        array (          'votes' => 1734,          'earned' => 0,          'total' => 1734,        ), 2 =>        array (          'votes' => 231,          'earned' => -231,          'total' => 0,        ), 3 =>        array (          'votes' => 231,          'earned' => -231,          'total' => 0,        ), 4 =>        array (          'votes' => 231,          'earned' => -231,          'total' => 0,        ), 5 =>        array (          'votes' => 231,          'earned' => -231,          'total' => 0,        ), 6 =>        array (          'votes' => 231,          'earned' => -231,          'total' => 0,        ), 7 =>        array (          'votes' => 231,          'earned' => -231,          'total' => 0,        ), 8 =>        array (          'votes' => 231,          'earned' => -231,          'total' => 0,        ), 9 =>        array (          'votes' => 231,          'earned' => -231,          'total' => 0,        ), 10 =>        array (          'votes' => 231,          'earned' => -231,          'total' => 0,        ), 11 =>        array (          'votes' => 231,          'earned' => -231,          'total' => 0,        ), 12 =>        array (          'votes' => 231,          'earned' => -231,          'total' => 0,        ), 13 =>        array (          'votes' => 231,          'earned' => -231,          'total' => 0,        ), 14 =>        array (          'votes' => 231,          'earned' => -231,          'total' => 0,        ), 15 =>        array (          'votes' => 231,          'earned' => -231,          'total' => 0,        ), 16 =>        array (          'votes' => 232,          'earned' => 0,          'total' => 232,        ), 17 =>        array (          'votes' => 0,          'earned' => 0,          'total' => 0,        ), 18 =>        array (          'votes' => 0,          'earned' => 0,          'total' => 0,        ), 19 =>        array (          'votes' => 0,          'earned' => 0,          'total' => 0,        ), 20 =>        array (          'votes' => 0,          'earned' => 0,          'total' => 0,        ), ),     'totalVotes' => 1966,    ), ), );

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

Counting votes for ElectionTitle using Meek STV. 20 candidates running for 2 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|1734.000000| 231.000000| 231.000000| 231.000000| 231.000000| 231.000000 | 231.000000| 231.000000| 231.000000| 231.000000| 231.000000| 231.000000  | 231.000000| 231.000000| 231.000000| 232.000000|   0.000000|   0.000000  |   0.000000|   0.000000|   0.000000|   0.666666|1733.333334  |---  | Count of first choices. Candidate 1 has reached the threshold and is | elected.

=
============================================================= 2|1734.000000| 231.000000| 231.000000| 231.000000| 231.000000| 231.000000 | 231.000000| 231.000000| 231.000000| 231.000000| 231.000000| 231.000000  | 231.000000| 231.000000| 231.000000| 232.000000|           |             |           |           |   0.000000|   0.666666|1733.333334  |---  | Count after eliminating 17, 18, 19, and 20 and transferring votes. All | losing candidates are eliminated.

=
============================================================= 3|1733.334144| 231.665856| 231.000000| 231.000000| 231.000000| 231.000000 | 231.000000| 231.000000| 231.000000| 231.000000| 231.000000| 231.000000  | 231.000000| 231.000000| 231.000000| 232.000000|           |             |           |           |   0.000000|   0.000810|1733.333334  |---  | Count after transferring surplus votes. Keep factors of candidates who | have exceeded the threshold: 1, 0.999616.

=
============================================================= 4|1733.334144| 231.665856| 231.000000| 231.000000| 231.000000| 231.000000 | 231.000000| 231.000000| 231.000000| 231.000000| 231.000000| 231.000000  | 231.000000| 231.000000| 231.000000| 232.000000|           |             |           |           |   0.000000|   0.000810|1733.333334  |---  | Count after transferring surplus votes. Keep factors of candidates who | have exceeded the threshold: 1, 0.999616.

=
============================================================= 5|1733.334144| 231.665856| 231.000000| 231.000000| 231.000000| 231.000000 | 231.000000| 231.000000| 231.000000| 231.000000| 231.000000|             | 231.000000| 231.000000| 231.000000| 232.000000|           |             |           |           | 231.000000|  77.000810|1656.333334  |---  | Count after eliminating 12 and transferring votes. Candidates tied | within precision of computations. Candidates 3, 4, 5, 6, 7, 8, 9, 10, | 11, 12, 13, 14, and 15 were tied when choosing candidates to | eliminate. Candidate 12 was chosen by breaking the tie randomly.

=
============================================================= 6|1656.334140| 308.665860| 231.000000| 231.000000| 231.000000| 231.000000 | 231.000000| 231.000000| 231.000000| 231.000000| 231.000000|             | 231.000000| 231.000000| 231.000000| 232.000000|           |             |           |           | 231.000000|   0.000806|1656.333334  |---  | Count after transferring surplus votes. Keep factors of candidates who | have exceeded the threshold: 1, 0.955210.

=
============================================================= 7|1656.334140| 308.665860| 231.000000| 231.000000| 231.000000| 231.000000 | 231.000000| 231.000000| 231.000000| 231.000000| 231.000000|             | 231.000000| 231.000000| 231.000000| 232.000000|           |             |           |           | 231.000000|   0.000806|1656.333334  |---  | Count after transferring surplus votes. Keep factors of candidates who | have exceeded the threshold: 1, 0.955210.

=
============================================================= 8|1656.334140| 308.665860| 231.000000| 231.000000| 231.000000| 231.000000 | 231.000000| 231.000000| 231.000000| 231.000000| 231.000000|             |           | 231.000000| 231.000000| 232.000000|           |             |           |           | 462.000000|  77.000806|1579.333334  |---  | Count after eliminating 13 and transferring votes. Candidates tied | within precision of computations. Candidates 3, 4, 5, 6, 7, 8, 9, 10, | 11, 13, 14, and 15 were tied when choosing candidates to eliminate. | Candidate 13 was chosen by breaking the tie randomly.

=
============================================================= 9|1579.334136| 385.665864| 231.000000| 231.000000| 231.000000| 231.000000 | 231.000000| 231.000000| 231.000000| 231.000000| 231.000000|             |           | 231.000000| 231.000000| 232.000000|           |             |           |           | 462.000000|   0.000802|1579.333334  |---  | Count after transferring surplus votes. Keep factors of candidates who | have exceeded the threshold: 1, 0.910804.

=
============================================================= 10|1579.334136| 385.665864| 231.000000| 231.000000| 231.000000| 231.000000 | 231.000000| 231.000000| 231.000000| 231.000000| 231.000000|             |           | 231.000000| 231.000000| 232.000000|           |             |           |           | 462.000000|   0.000802|1579.333334  |---  | Count after transferring surplus votes. Keep factors of candidates who | have exceeded the threshold: 1, 0.910804.

=
============================================================= 11|1579.334136| 385.665864| 231.000000| 231.000000| 231.000000| 231.000000 | 231.000000| 231.000000| 231.000000|           | 231.000000|             |           | 231.000000| 231.000000| 232.000000|           |             |           |           | 693.000000|  77.000802|1502.333334  |---  | Count after eliminating 10 and transferring votes. Candidates tied | within precision of computations. Candidates 3, 4, 5, 6, 7, 8, 9, 10, | 11, 14, and 15 were tied when choosing candidates to eliminate. | Candidate 10 was chosen by breaking the tie randomly.

=
============================================================= 12|1502.334132| 462.665868| 231.000000| 231.000000| 231.000000| 231.000000 | 231.000000| 231.000000| 231.000000|           | 231.000000|             |           | 231.000000| 231.000000| 232.000000|           |             |           |           | 693.000000|   0.000798|1502.333334  |---  | Count after transferring surplus votes. Keep factors of candidates who | have exceeded the threshold: 1, 0.866398.

=
============================================================= 13|1502.334132| 462.665868| 231.000000| 231.000000| 231.000000| 231.000000 | 231.000000| 231.000000| 231.000000|           | 231.000000|             |           | 231.000000| 231.000000| 232.000000|           |             |           |           | 693.000000|   0.000798|1502.333334  |---  | Count after transferring surplus votes. Keep factors of candidates who | have exceeded the threshold: 1, 0.866398.

=
============================================================= 14|1502.334132| 462.665868| 231.000000| 231.000000| 231.000000| 231.000000 | 231.000000| 231.000000|           |           | 231.000000|             |           | 231.000000| 231.000000| 232.000000|           |             |           |           | 924.000000|  77.000798|1425.333334  |---  | Count after eliminating 9 and transferring votes. Candidates tied | within precision of computations. Candidates 3, 4, 5, 6, 7, 8, 9, 11, | 14, and 15 were tied when choosing candidates to eliminate. Candidate | 9 was chosen by breaking the tie randomly.

=
============================================================= 15|1425.334128| 539.665872| 231.000000| 231.000000| 231.000000| 231.000000 | 231.000000| 231.000000|           |           | 231.000000|             |           | 231.000000| 231.000000| 232.000000|           |             |           |           | 924.000000|   0.000794|1425.333334  |---  | Count after transferring surplus votes. Keep factors of candidates who | have exceeded the threshold: 1, 0.821992.

=
============================================================= 16|1425.334128| 539.665872| 231.000000| 231.000000| 231.000000| 231.000000 | 231.000000| 231.000000|           |           | 231.000000|             |           | 231.000000| 231.000000| 232.000000|           |             |           |           | 924.000000|   0.000794|1425.333334  |---  | Count after transferring surplus votes. Keep factors of candidates who | have exceeded the threshold: 1, 0.821992.

=
============================================================= 17|1425.334128| 539.665872| 231.000000| 231.000000| 231.000000|            | 231.000000| 231.000000|           |           | 231.000000|             |           | 231.000000| 231.000000| 232.000000|           |             |           |           |1155.000000|  77.000794|1348.333334  |---  | Count after eliminating 6 and transferring votes. Candidates tied | within precision of computations. Candidates 3, 4, 5, 6, 7, 8, 11, 14, | and 15 were tied when choosing candidates to eliminate. Candidate 6 | was chosen by breaking the tie randomly.

=
============================================================= 18|1348.334124| 616.665876| 231.000000| 231.000000| 231.000000|            | 231.000000| 231.000000|           |           | 231.000000|             |           | 231.000000| 231.000000| 232.000000|           |             |           |           |1155.000000|   0.000790|1348.333334  |---  | Count after transferring surplus votes. Keep factors of candidates who | have exceeded the threshold: 1, 0.777586.

=
============================================================= 19|1348.334124| 616.665876| 231.000000| 231.000000| 231.000000|            | 231.000000| 231.000000|           |           | 231.000000|             |           | 231.000000| 231.000000| 232.000000|           |             |           |           |1155.000000|   0.000790|1348.333334  |---  | Count after transferring surplus votes. Keep factors of candidates who | have exceeded the threshold: 1, 0.777586.

=
============================================================= 20|1348.334124| 616.665876| 231.000000| 231.000000| 231.000000|            | 231.000000| 231.000000|           |           | 231.000000|             |           |           | 231.000000| 232.000000|           |             |           |           |1386.000000|  77.000790|1271.333334  |---  | Count after eliminating 14 and transferring votes. Candidates tied | within precision of computations. Candidates 3, 4, 5, 7, 8, 11, 14, | and 15 were tied when choosing candidates to eliminate. Candidate 14 | was chosen by breaking the tie randomly.

=
============================================================= 21|1271.334120| 693.665880| 231.000000| 231.000000| 231.000000|            | 231.000000| 231.000000|           |           | 231.000000|             |           |           | 231.000000| 232.000000|           |             |           |           |1386.000000|   0.000786|1271.333334  |---  | Count after transferring surplus votes. Keep factors of candidates who | have exceeded the threshold: 1, 0.733180.

=
============================================================= 22|1271.334120| 693.665880| 231.000000| 231.000000| 231.000000|            | 231.000000| 231.000000|           |           | 231.000000|             |           |           | 231.000000| 232.000000|           |             |           |           |1386.000000|   0.000786|1271.333334  |---  | Count after transferring surplus votes. Keep factors of candidates who | have exceeded the threshold: 1, 0.733180.

=
============================================================= 23|1271.334120| 693.665880| 231.000000| 231.000000| 231.000000|            | 231.000000|           |           |           | 231.000000|             |           |           | 231.000000| 232.000000|           |             |           |           |1617.000000|  77.000786|1194.333334  |---  | Count after eliminating 8 and transferring votes. Candidates tied | within precision of computations. Candidates 3, 4, 5, 7, 8, 11, and 15 | were tied when choosing candidates to eliminate. Candidate 8 was | chosen by breaking the tie randomly.

=
============================================================= 24|1194.334116| 770.665884| 231.000000| 231.000000| 231.000000|            | 231.000000|           |           |           | 231.000000|             |           |           | 231.000000| 232.000000|           |             |           |           |1617.000000|   0.000782|1194.333334  |---  | Count after transferring surplus votes. Keep factors of candidates who | have exceeded the threshold: 1, 0.688774.

=
============================================================= 25|1194.334116| 770.665884| 231.000000| 231.000000| 231.000000|            | 231.000000|           |           |           | 231.000000|             |           |           | 231.000000| 232.000000|           |             |           |           |1617.000000|   0.000782|1194.333334  |---  | Count after transferring surplus votes. Keep factors of candidates who | have exceeded the threshold: 1, 0.688774.

=
============================================================= 26|1194.334116| 770.665884| 231.000000|          | 231.000000|             | 231.000000|           |           |           | 231.000000|             |           |           | 231.000000| 232.000000|           |             |           |           |1848.000000|  77.000782|1117.333334  |---  | Count after eliminating 4 and transferring votes. Candidates tied | within precision of computations. Candidates 3, 4, 5, 7, 11, and 15 | were tied when choosing candidates to eliminate. Candidate 4 was | chosen by breaking the tie randomly.

=
============================================================= 27|1117.334112| 847.665888| 231.000000|          | 231.000000|             | 231.000000|           |           |           | 231.000000|             |           |           | 231.000000| 232.000000|           |             |           |           |1848.000000|   0.000778|1117.333334  |---  | Count after transferring surplus votes. Keep factors of candidates who | have exceeded the threshold: 1, 0.644368.

=
============================================================= 28|1117.334112| 847.665888| 231.000000|          | 231.000000|             | 231.000000|           |           |           | 231.000000|             |           |           | 231.000000| 232.000000|           |             |           |           |1848.000000|   0.000778|1117.333334  |---  | Count after transferring surplus votes. Keep factors of candidates who | have exceeded the threshold: 1, 0.644368.

=
============================================================= 29|1117.334112| 847.665888| 231.000000|          | 231.000000|             | 231.000000|           |           |           |           |             |           |           | 231.000000| 232.000000|           |             |           |           |2079.000000|  77.000778|1040.333334  |---  | Count after eliminating 11 and transferring votes. Candidates tied | within precision of computations. Candidates 3, 5, 7, 11, and 15 were | tied when choosing candidates to eliminate. Candidate 11 was chosen by | breaking the tie randomly.

=
============================================================= 30|1040.334108| 924.665892| 231.000000|          | 231.000000|             | 231.000000|           |           |           |           |             |           |           | 231.000000| 232.000000|           |             |           |           |2079.000000|   0.000774|1040.333334  |---  | Count after transferring surplus votes. Keep factors of candidates who | have exceeded the threshold: 1, 0.599962.

=
============================================================= 31|1040.334108| 924.665892| 231.000000|          | 231.000000|             | 231.000000|           |           |           |           |             |           |           | 231.000000| 232.000000|           |             |           |           |2079.000000|   0.000774|1040.333334  |---  | Count after transferring surplus votes. Keep factors of candidates who | have exceeded the threshold: 1, 0.599962.

=
============================================================= 32|1040.334108| 924.665892| 231.000000|          |           |             | 231.000000|           |           |           |           |             |           |           | 231.000000| 232.000000|           |             |           |           |2310.000000|  77.000774| 963.333334  |---  | Count after eliminating 5 and transferring votes. Candidates tied | within precision of computations. Candidates 3, 5, 7, and 15 were tied | when choosing candidates to eliminate. Candidate 5 was chosen by | breaking the tie randomly.

=
============================================================= 33| 963.334104|1001.665896| 231.000000|          |           |             | 231.000000|           |           |           |           |             |           |           | 231.000000| 232.000000|           |             |           |           |2310.000000|  38.333332| 963.333334  |---  | Count after transferring surplus votes. Keep factors of candidates who | have exceeded the threshold: 1, 0.555556. Candidate 2 has reached the | threshold and is elected.

Winners are 1 and 2.

Files
array ( 13 =>   array ( 'count' => 231, 'rank' => array (     1 => 13,    ), ), 9 =>   array ( 'count' => 231, 'rank' => array (     1 => 9,    ), ), 8 =>   array ( 'count' => 231, 'rank' => array (     1 => 8,    ), ), 5 =>   array ( 'count' => 231, 'rank' => array (     1 => 5,    ), ), 14 =>   array ( 'count' => 231, 'rank' => array (     1 => 14,    ), ), 7 =>   array ( 'count' => 231, 'rank' => array (     1 => 7,    ), ), 16 =>   array ( 'count' => 232, 'rank' => array (     1 => 16,    ), ), '1_2' =>   array ( 'count' => 1734, 'rank' => array (     1 => 1,      2 => 2,    ), ), 4 =>   array ( 'count' => 231, 'rank' => array (     1 => 4,    ), ), 15 =>   array ( 'count' => 231, 'rank' => array (     1 => 15,    ), ), 10 =>   array ( 'count' => 231, 'rank' => array (     1 => 10,    ), ), 12 =>   array ( 'count' => 231, 'rank' => array (     1 => 12,    ), ), 3 =>   array ( 'count' => 231, 'rank' => array (     1 => 3,    ), ), 2 =>   array ( 'count' => 231, 'rank' => array (     1 => 2,    ), ), 11 =>   array ( 'count' => 231, 'rank' => array (     1 => 11,    ), ), 6 =>   array ( 'count' => 231, 'rank' => array (     1 => 6,    ), ), )
 * blt: https://github.com/dominic998/SecurePoll-Test-Data/blob/main/test_data/20_2_5200_1308507669.blt
 * php:

Environment

 * Where you tested: local docker using phpunit
 * Version of SecurePoll: commit 2ec357fdb086cece986d60d1b34759968c075c65 (patchset 15 from https://gerrit.wikimedia.org/r/c/mediawiki/extensions/SecurePoll/+/704454)