- if (@surpluses and $elimvotetotal > $deferredsurplus) {
- printf "no-elim, un-defer\n";
- last;
+ my @elim = equalpiles 'elim?', reverse @sorted;
+ my $elimvotenow = sum0 map { $_->{Total} } @elim;
+
+ if (@surpluses || $elimvotebefore) {
+ # rule 5.2.2
+ if (@sorted == @elim) {
+ printf "%18s\n", 'no-elim (all-equal)';
+ last;
+ }
+ my $nextup = $sorted[ $#sorted - @elim ];
+ printf "%7s %10s %s\n", 'nextup', $nextup->{Cand},
+ pr $nextup->{Total};
+ my $aheadby = $nextup->{Total} - ($elimvotenow + $elimvotebefore);
+ unless ($deferredsurplus <= $aheadby) {
+ # rule 5.2.2 (b)
+ printf "%18s %s\n", 'no-elim (nextup)', pr $aheadby;
+ last;
+ }