diff --git a/src/main/java/network/brightspots/rcv/CastVoteRecord.java b/src/main/java/network/brightspots/rcv/CastVoteRecord.java index f34e9c43..30dbed6c 100644 --- a/src/main/java/network/brightspots/rcv/CastVoteRecord.java +++ b/src/main/java/network/brightspots/rcv/CastVoteRecord.java @@ -235,12 +235,67 @@ Map getWinnerToFractionalValue() { // as far as tabulation is concerned, all that matters is whether // it is active or not. enum StatusForRound { - ACTIVE, - DID_NOT_RANK_ANY_CANDIDATES, - EXHAUSTED_CHOICE, - INVALIDATED_BY_OVERVOTE, - INVALIDATED_BY_SKIPPED_RANKING, - INVALIDATED_BY_REPEATED_RANKING, + ACTIVE( + false, + "Active", + "active" + ), + DID_NOT_RANK_ANY_CANDIDATES( + true, + "Did Not Rank Any Candidates", + "didNotRankAnyCandidates" + ), + EXHAUSTED_CHOICE( + true, + "Inactive Ballots by Exhausted Choices", + "exhaustedChoices" + ), + INVALIDATED_BY_OVERVOTE( + true, + "Inactive Ballots by Overvotes", + "overvotes" + ), + INVALIDATED_BY_SKIPPED_RANKING( + true, + "Inactive Ballots by Skipped Rankings", + "skippedRankings" + ), + INVALIDATED_BY_REPEATED_RANKING( + true, + "Inactive Ballots by Repeated Rankings", + "repeatedRankings" + ), + FINAL_ROUND_SURPLUS( + false, + "Final Round Surplus", + "finalRoundSurplus" + ); + + private final boolean isInactiveBallot; + private final String titleCaseKey; + private final String camelCaseKey; + + StatusForRound( + boolean isInactiveBallot, + String titleCaseKey, + String camelCaseKey + ) { + this.isInactiveBallot = isInactiveBallot; + this.titleCaseKey = titleCaseKey; + this.camelCaseKey = camelCaseKey; + } + + public boolean isInactiveBallot() { + return isInactiveBallot; + } + + public String getTitleCaseKey() { + return titleCaseKey; + } + + public String getCamelCaseKey() { + return camelCaseKey; + } } enum VoteOutcomeType { diff --git a/src/main/java/network/brightspots/rcv/ContestConfig.java b/src/main/java/network/brightspots/rcv/ContestConfig.java index d32bdcc8..d261eaff 100644 --- a/src/main/java/network/brightspots/rcv/ContestConfig.java +++ b/src/main/java/network/brightspots/rcv/ContestConfig.java @@ -947,6 +947,10 @@ boolean isNonIntegerWinningThresholdEnabled() { return rawConfig.rules.nonIntegerWinningThreshold; } + boolean usesSurpluses() { + return getNumberOfWinners() > 1 && !isMultiSeatBottomsUpUntilNWinnersEnabled(); + } + boolean isHareQuotaEnabled() { return rawConfig.rules.hareQuota; } diff --git a/src/main/java/network/brightspots/rcv/ResultsWriter.java b/src/main/java/network/brightspots/rcv/ResultsWriter.java index a0c5d018..148e2e0d 100644 --- a/src/main/java/network/brightspots/rcv/ResultsWriter.java +++ b/src/main/java/network/brightspots/rcv/ResultsWriter.java @@ -46,6 +46,7 @@ import java.util.Map; import java.util.Map.Entry; import java.util.Set; +import java.util.stream.Collectors; import javafx.util.Pair; import network.brightspots.rcv.ContestConfig.TabulateBySlice; import network.brightspots.rcv.RawContestConfig.CvrSource; @@ -78,6 +79,14 @@ class ResultsWriter { private String timestampString; // map from round number to residual surplus generated in that round private Map roundToResidualSurplus; + // statuses to print in all summary files + // (additional fields are added if needed in specific summary filetypes) + private static final List STATUSES_TO_PRINT = List.of( + StatusForRound.INVALIDATED_BY_OVERVOTE, + StatusForRound.INVALIDATED_BY_SKIPPED_RANKING, + StatusForRound.EXHAUSTED_CHOICE, + StatusForRound.INVALIDATED_BY_REPEATED_RANKING); + // visible for testing @SuppressWarnings("WeakerAccess") @@ -333,8 +342,13 @@ private void generateSummarySpreadsheet( // Vote count csvPrinter.print(thisRoundTally); - // Vote % - BigDecimal votePctDivisor = roundTallies.get(round).activeAndLockedInBallotSum(); + // Vote % (divisor is 1st round total in STV or 1st round determines threshold) + BigDecimal votePctDivisor; + if (config.isSingleWinnerEnabled() && !config.isFirstRoundDeterminesThresholdEnabled()) { + votePctDivisor = roundTallies.get(round).activeAndLockedInBallotSum(); + } else { + votePctDivisor = roundTallies.get(1).activeAndLockedInBallotSum(); + } if (votePctDivisor != BigDecimal.ZERO) { // Turn a decimal into a human-readable percentage (e.g. 0.1234 -> 12.34%) BigDecimal divDecimal = thisRoundTally.divide(votePctDivisor, MathContext.DECIMAL32); @@ -377,20 +391,9 @@ private void generateSummarySpreadsheet( csvPrinter.println(); } - List> statusesToPrint = new ArrayList<>(); - statusesToPrint.add(new Pair<>("Overvotes", - StatusForRound.INVALIDATED_BY_OVERVOTE)); - statusesToPrint.add(new Pair<>("Skipped Rankings", - StatusForRound.INVALIDATED_BY_SKIPPED_RANKING)); - statusesToPrint.add(new Pair<>("Exhausted Choices", - StatusForRound.EXHAUSTED_CHOICE)); - statusesToPrint.add(new Pair<>("Repeated Rankings", - StatusForRound.INVALIDATED_BY_REPEATED_RANKING)); - - for (Pair statusToPrint : statusesToPrint) { - csvPrinter.print("Inactive Ballots by " + statusToPrint.getKey()); + for (StatusForRound status : STATUSES_TO_PRINT) { + csvPrinter.print(status.getTitleCaseKey()); - StatusForRound status = statusToPrint.getValue(); for (int round = 1; round <= numRounds; round++) { BigDecimal thisRoundInactive = roundTallies.get(round).getBallotStatusTally(status); csvPrinter.print(thisRoundInactive); @@ -450,6 +453,21 @@ private void generateSummarySpreadsheet( csvPrinter.println(); } + if (config.usesSurpluses()) { + // row for final round surplus (if needed) + csvPrinter.print(StatusForRound.FINAL_ROUND_SURPLUS.getTitleCaseKey()); + for (int round = 1; round <= numRounds; round++) { + BigDecimal finalRoundSurplus = + roundTallies.get(round).getBallotStatusTally(StatusForRound.FINAL_ROUND_SURPLUS); + csvPrinter.print(finalRoundSurplus.equals(BigDecimal.ZERO) ? "" : finalRoundSurplus); + + // Don't display transfer or percentage of residual surplus + csvPrinter.print(""); + csvPrinter.print(""); + } + csvPrinter.println(); + } + if (isSlice) { csvPrinter.println(); csvPrinter.print(String.format("*Elect/Eliminate decisions are from the full contest. " @@ -1007,23 +1025,16 @@ private Map updateCandidateNamesInTally(RoundTally roundSumm } private Map getInactiveJsonMap(RoundTally roundTally) { - Map inactiveMap = new HashMap<>(); - Pair[] statusesToPrint = - new Pair[] { - new Pair<>("overvotes", - StatusForRound.INVALIDATED_BY_OVERVOTE), - new Pair<>("skippedRankings", - StatusForRound.INVALIDATED_BY_SKIPPED_RANKING), - new Pair<>("repeatedRankings", - StatusForRound.INVALIDATED_BY_REPEATED_RANKING), - new Pair<>("exhaustedChoices", - StatusForRound.EXHAUSTED_CHOICE), - }; - for (Pair statusToPrint : statusesToPrint) { - inactiveMap.put( - statusToPrint.getKey(), roundTally.getBallotStatusTally(statusToPrint.getValue())); + Map result = STATUSES_TO_PRINT.stream() + .collect(Collectors.toMap(StatusForRound::getCamelCaseKey, + roundTally::getBallotStatusTally)); + + if (config.usesSurpluses() && roundTally.getRoundNumber() == numRounds) { + result.put(StatusForRound.FINAL_ROUND_SURPLUS.getCamelCaseKey(), + roundTally.getBallotStatusTally(StatusForRound.FINAL_ROUND_SURPLUS)); } - return inactiveMap; + + return result; } // adds action objects to input action list representing all actions applied this round @@ -1042,7 +1053,7 @@ private void addActionObjects( TallyTransfers tallyTransfers) { // check for valid candidates: // "drop undeclared write-in" may result in no one actually being eliminated - if (candidates != null && candidates.size() > 0) { + if (candidates != null && !candidates.isEmpty()) { // transfers contains all vote transfers for this round // we add one to the round since transfers are currently stored under the round AFTER // the tallies which triggered them diff --git a/src/main/java/network/brightspots/rcv/RoundTally.java b/src/main/java/network/brightspots/rcv/RoundTally.java index 2ff4cf8c..98c03860 100644 --- a/src/main/java/network/brightspots/rcv/RoundTally.java +++ b/src/main/java/network/brightspots/rcv/RoundTally.java @@ -204,14 +204,15 @@ public List getSortedCandidatesByTally() { private void countBallots() { inactiveBallotSum = BigDecimal.ZERO; + activeBallotSum = BigDecimal.ZERO; ballotStatusTallies.forEach( (statusForRound, tally) -> { - if (statusForRound != StatusForRound.ACTIVE) { + if (statusForRound.isInactiveBallot()) { inactiveBallotSum = inactiveBallotSum.add(tally); + } else { + activeBallotSum = activeBallotSum.add(tally); } }); - - activeBallotSum = ballotStatusTallies.get(StatusForRound.ACTIVE); } private void ensureFinalized() { diff --git a/src/main/java/network/brightspots/rcv/Tabulator.java b/src/main/java/network/brightspots/rcv/Tabulator.java index de52e372..0f44f583 100644 --- a/src/main/java/network/brightspots/rcv/Tabulator.java +++ b/src/main/java/network/brightspots/rcv/Tabulator.java @@ -206,7 +206,7 @@ Set tabulate(Progress progress) throws TabulationAbortedException { } // In multi-seat contests, we always redistribute the surplus (if any) unless bottoms-up // is enabled. - if (config.getNumberOfWinners() > 1 && !config.isMultiSeatBottomsUpUntilNWinnersEnabled()) { + if (config.usesSurpluses()) { for (String winner : winners) { BigDecimal candidateVotes = currentRoundTally.getCandidateTally(winner); // number that were surplus (beyond the required threshold) @@ -502,9 +502,8 @@ private boolean shouldContinueTabulating() { // bottoms-up is enabled, in which case we can stop as soon as we've declared the winners. keepTabulating = numWinnersDeclared < config.getNumberOfWinners() - || (config.getNumberOfWinners() > 1 - && winnerToRound.containsValue(currentRound) - && !config.isMultiSeatBottomsUpUntilNWinnersEnabled()); + || (config.usesSurpluses() + && winnerToRound.containsValue(currentRound)); } return keepTabulating; } @@ -1006,24 +1005,10 @@ private void recordSelectionForCastVoteRecord( } } - String outcomeDescription; - switch (statusForRound) { - case ACTIVE -> outcomeDescription = selectedCandidate; - case DID_NOT_RANK_ANY_CANDIDATES -> outcomeDescription = - "did not rank any candidates" + additionalLogText; - case INVALIDATED_BY_OVERVOTE -> outcomeDescription = - "invalidated by overvote" + additionalLogText; - case EXHAUSTED_CHOICE -> outcomeDescription = - "exhausted choice" + additionalLogText; - case INVALIDATED_BY_SKIPPED_RANKING -> outcomeDescription = - "invalidated by skipped ranking" + additionalLogText; - case INVALIDATED_BY_REPEATED_RANKING -> outcomeDescription = - "invalidated by repeated ranking" + additionalLogText; - default -> - // Programming error: we missed a status here - throw new RuntimeException("Unexpected ballot status: " + statusForRound); - } - VoteOutcomeType outcomeType = + final String outcomeDescription = statusForRound == StatusForRound.ACTIVE + ? selectedCandidate + : statusForRound.getTitleCaseKey() + additionalLogText; + final VoteOutcomeType outcomeType = selectedCandidate == null ? VoteOutcomeType.EXHAUSTED : VoteOutcomeType.COUNTED; cvr.logRoundOutcome( currentRoundTally.getRoundNumber(), @@ -1095,6 +1080,7 @@ && isCandidateContinuing(cvr.getCurrentRecipientOfVote())) { // iterate through the rankings in this cvr from most to least preferred. // for each ranking: + // check if it's a final round surplus // if it results in an overvote or undervote, exhaust the cvr // if a selected candidate is continuing, count cvr for that candidate // if no selected candidate is continuing, look at the next ranking @@ -1115,6 +1101,19 @@ && isCandidateContinuing(cvr.getCurrentRecipientOfVote())) { Integer rank = rankCandidatesPair.getKey(); CandidatesAtRanking candidates = rankCandidatesPair.getValue(); + // check for final round surplus + if (config.usesSurpluses() + && config.getNumberOfWinners() == winnerToRound.size()) { + recordSelectionForCastVoteRecord( + cvr, + roundTally, + roundTallyBySlice, + null, + StatusForRound.FINAL_ROUND_SURPLUS, + ""); + break; + } + // check for skipped ranking exhaustion if (config.getMaxSkippedRanksAllowed() != Integer.MAX_VALUE && (rank - lastRankSeen > config.getMaxSkippedRanksAllowed() + 1)) { diff --git a/src/test/resources/network/brightspots/rcv/test_data/2013_minneapolis_park/2013_minneapolis_park_expected_summary.csv b/src/test/resources/network/brightspots/rcv/test_data/2013_minneapolis_park/2013_minneapolis_park_expected_summary.csv index 83b406e1..874338c4 100644 --- a/src/test/resources/network/brightspots/rcv/test_data/2013_minneapolis_park/2013_minneapolis_park_expected_summary.csv +++ b/src/test/resources/network/brightspots/rcv/test_data/2013_minneapolis_park/2013_minneapolis_park_expected_summary.csv @@ -18,22 +18,23 @@ Number of Undervotes (No Rankings),20571 Rounds,Round 1 Votes,% of vote,transfer,Round 2 Votes,% of vote,transfer,Round 3 Votes,% of vote,transfer,Round 4 Votes,% of vote,transfer,Round 5 Votes,% of vote,transfer,Round 6 Votes,% of vote,transfer,Round 7 Votes,% of vote,transfer,Round 8 Votes,% of vote,transfer,Round 9 Votes,% of vote,transfer,Round 10 Votes,% of vote,transfer,Round 11 Votes,% of vote,transfer Eliminated,Undeclared Write-ins,,,CASPER HILL,,,,,,ISHMAEL ISRAEL,,,MARY LYNN MCPHERSON,,,STEVE BARLAND,,,HASHIM YONIS,,,JASON STONE,,,TOM NORDYKE,,,,,,,, Elected,,,,,,,JOHN ERWIN,,,,,,,,,,,,,,,,,,,,,ANNIE YOUNG; MEG FORNEY,,,,, -JOHN ERWIN,14678,24.68%,6,14684,24.81%,182,14866,25.24%,0.0000,14866.0000,25.24%,0.0000,14866.0000,25.69%,0.0000,14866.0000,26.18%,0.0000,14866.0000,27.09%,0.0000,14866.0000,28.87%,0.0000,14866.0000,30.7%,0.0000,14866.0000,35.26%,0.0000,14866.0000,35.41%,0 -ANNIE YOUNG,9294,15.62%,8,9302,15.71%,150,9452,16.05%,0.0000,9452.0000,16.05%,603.0000,10055.0000,17.37%,999.0000,11054.0000,19.46%,471.0000,11525.0000,21.0%,502.0000,12027.0000,23.36%,1859.0000,13886.0000,28.67%,1158.0000,15044.0000,35.68%,-178.0000,14866,35.41%,0 -MEG FORNEY,7856,13.21%,8,7864,13.28%,167,8031,13.64%,0.0000,8031.0000,13.64%,390.0000,8421.0000,14.55%,738.0000,9159.0000,16.13%,670.0000,9829.0000,17.91%,327.0000,10156.0000,19.72%,809.0000,10965.0000,22.64%,1280.0000,12245.0000,29.04%,0.0000,12245.0000,29.17%,0 -TOM NORDYKE,6511,10.94%,3,6514,11.0%,81,6595,11.2%,0.0000,6595.0000,11.2%,164.0000,6759.0000,11.68%,242.0000,7001.0000,12.33%,534.0000,7535.0000,13.73%,153.0000,7688.0000,14.93%,1013.0000,8701.0000,17.97%,-8701.0000,0,0.0%,0,0,0.0%,0 -JASON STONE,5357,9.0%,7,5364,9.06%,113,5477,9.3%,0.0000,5477.0000,9.3%,342.0000,5819.0000,10.05%,278.0000,6097.0000,10.73%,452.0000,6549.0000,11.93%,192.0000,6741.0000,13.09%,-6741.0000,0,0.0%,0,0,0.0%,0,0,0.0%,0 -HASHIM YONIS,3762,6.32%,5,3767,6.36%,32,3799,6.45%,0.0000,3799.0000,6.45%,547.0000,4346.0000,7.51%,144.0000,4490.0000,7.9%,81.0000,4571.0000,8.32%,-4571.0000,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 -STEVE BARLAND,3705,6.23%,2,3707,6.26%,96,3803,6.45%,0.0000,3803.0000,6.45%,98.0000,3901.0000,6.74%,212.0000,4113.0000,7.24%,-4113.0000,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 -MARY LYNN MCPHERSON,3373,5.67%,5,3378,5.7%,101,3479,5.9%,0.0000,3479.0000,5.9%,215.0000,3694.0000,6.38%,-3694.0000,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 -ISHMAEL ISRAEL,3305,5.55%,5,3310,5.59%,64,3374,5.73%,0.0000,3374.0000,5.73%,-3374.0000,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 -CASPER HILL,1280,2.15%,4,1284,2.16%,-1284,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 +JOHN ERWIN,14678,24.68%,6,14684,24.69%,182,14866,25.0%,0.0000,14866.0000,25.0%,0.0000,14866.0000,25.0%,0.0000,14866.0000,25.0%,0.0000,14866.0000,25.0%,0.0000,14866.0000,25.0%,0.0000,14866.0000,25.0%,0.0000,14866.0000,25.0%,0.0000,14866.0000,25.0%,0 +ANNIE YOUNG,9294,15.62%,8,9302,15.64%,150,9452,15.89%,0.0000,9452.0000,15.89%,603.0000,10055.0000,16.9%,999.0000,11054.0000,18.58%,471.0000,11525.0000,19.38%,502.0000,12027.0000,20.22%,1859.0000,13886.0000,23.35%,1158.0000,15044.0000,25.29%,-178.0000,14866,25.0%,0 +MEG FORNEY,7856,13.21%,8,7864,13.22%,167,8031,13.5%,0.0000,8031.0000,13.5%,390.0000,8421.0000,14.16%,738.0000,9159.0000,15.4%,670.0000,9829.0000,16.52%,327.0000,10156.0000,17.07%,809.0000,10965.0000,18.44%,1280.0000,12245.0000,20.59%,0.0000,12245.0000,20.59%,0 +TOM NORDYKE,6511,10.94%,3,6514,10.95%,81,6595,11.09%,0.0000,6595.0000,11.09%,164.0000,6759.0000,11.36%,242.0000,7001.0000,11.77%,534.0000,7535.0000,12.67%,153.0000,7688.0000,12.92%,1013.0000,8701.0000,14.63%,-8701.0000,0,0.0%,0,0,0.0%,0 +JASON STONE,5357,9.0%,7,5364,9.02%,113,5477,9.21%,0.0000,5477.0000,9.21%,342.0000,5819.0000,9.78%,278.0000,6097.0000,10.25%,452.0000,6549.0000,11.01%,192.0000,6741.0000,11.33%,-6741.0000,0,0.0%,0,0,0.0%,0,0,0.0%,0 +HASHIM YONIS,3762,6.32%,5,3767,6.33%,32,3799,6.38%,0.0000,3799.0000,6.38%,547.0000,4346.0000,7.3%,144.0000,4490.0000,7.55%,81.0000,4571.0000,7.68%,-4571.0000,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 +STEVE BARLAND,3705,6.23%,2,3707,6.23%,96,3803,6.39%,0.0000,3803.0000,6.39%,98.0000,3901.0000,6.56%,212.0000,4113.0000,6.91%,-4113.0000,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 +MARY LYNN MCPHERSON,3373,5.67%,5,3378,5.68%,101,3479,5.85%,0.0000,3479.0000,5.85%,215.0000,3694.0000,6.21%,-3694.0000,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 +ISHMAEL ISRAEL,3305,5.55%,5,3310,5.56%,64,3374,5.67%,0.0000,3374.0000,5.67%,-3374.0000,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 +CASPER HILL,1280,2.15%,4,1284,2.15%,-1284,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 Undeclared Write-ins,342,0.57%,-342,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 -Active Ballots,59463,,,59174,,,58876,,,58876.0000,,,57861.0000,,,56780.0000,,,54875.0000,,,51478.0000,,,48418.0000,,,42155.0000,,,41977.0000,, +Active Ballots,59463,,,59174,,,58876,,,58876.0000,,,57861.0000,,,56780.0000,,,54875.0000,,,51478.0000,,,48418.0000,,,42155.0000,,,42154.5192,, Current Round Threshold,14866,,,14866,,,14866,,,14866,,,14866,,,14866,,,14866,,,14866,,,14866,,,14866,,,14866,, Inactive Ballots by Overvotes,0,,0,0,,0,0,,0,0,,0,0,,0,0,,0,0,,0,0,,0,0,,0,0,,0,0,,0 Inactive Ballots by Skipped Rankings,0,,0,0,,0,0,,0,0,,0,0,,0,0,,0,0,,0,0,,0,0,,0,0,,0,0,,0 -Inactive Ballots by Exhausted Choices,67,,289,356,,298,654,,0.0000,654.0000,,1015.0000,1669.0000,,1081.0000,2750.0000,,1905.0000,4655.0000,,3397.0000,8052.0000,,3060.0000,11112.0000,,6263.0000,17375.0000,,177.5192,17552.5192,,0 +Inactive Ballots by Exhausted Choices,67,,289,356,,298,654,,0.0000,654.0000,,1015.0000,1669.0000,,1081.0000,2750.0000,,1905.0000,4655.0000,,3397.0000,8052.0000,,3060.0000,11112.0000,,6263.0000,17375.0000,,0.0000,17375.0000,,0 Inactive Ballots by Repeated Rankings,0,,0,0,,0,0,,0,0,,0,0,,0,0,,0,0,,0,0,,0,0,,0,0,,0,0,,0 -Inactive Ballots Total,67,,289,356,,298,654,,0.0000,654.0000,,1015.0000,1669.0000,,1081.0000,2750.0000,,1905.0000,4655.0000,,3397.0000,8052.0000,,3060.0000,11112.0000,,6263.0000,17375.0000,,177.5192,17552.5192,,0 +Inactive Ballots Total,67,,289,356,,298,654,,0.0000,654.0000,,1015.0000,1669.0000,,1081.0000,2750.0000,,1905.0000,4655.0000,,3397.0000,8052.0000,,3060.0000,11112.0000,,6263.0000,17375.0000,,0.0000,17375.0000,,0 Residual surplus,0,,,0,,,0,,,0,,,0,,,0,,,0,,,0,,,0,,,0,,,0.4808,, +Final Round Surplus,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,177.5192,, diff --git a/src/test/resources/network/brightspots/rcv/test_data/2013_minneapolis_park/2013_minneapolis_park_expected_summary.json b/src/test/resources/network/brightspots/rcv/test_data/2013_minneapolis_park/2013_minneapolis_park_expected_summary.json index 6ee956d5..5ddb8cad 100644 --- a/src/test/resources/network/brightspots/rcv/test_data/2013_minneapolis_park/2013_minneapolis_park_expected_summary.json +++ b/src/test/resources/network/brightspots/rcv/test_data/2013_minneapolis_park/2013_minneapolis_park_expected_summary.json @@ -299,7 +299,8 @@ "threshold" : "14866" }, { "inactiveBallots" : { - "exhaustedChoices" : "17552.5192", + "exhaustedChoices" : "17375.0000", + "finalRoundSurplus" : "177.5192", "overvotes" : "0", "repeatedRankings" : "0", "skippedRankings" : "0" diff --git a/src/test/resources/network/brightspots/rcv/test_data/2013_minneapolis_park_bottoms_up/2013_minneapolis_park_bottoms_up_expected_summary.csv b/src/test/resources/network/brightspots/rcv/test_data/2013_minneapolis_park_bottoms_up/2013_minneapolis_park_bottoms_up_expected_summary.csv index 6f7ae9a9..06e352c5 100644 --- a/src/test/resources/network/brightspots/rcv/test_data/2013_minneapolis_park_bottoms_up/2013_minneapolis_park_bottoms_up_expected_summary.csv +++ b/src/test/resources/network/brightspots/rcv/test_data/2013_minneapolis_park_bottoms_up/2013_minneapolis_park_bottoms_up_expected_summary.csv @@ -18,16 +18,16 @@ Number of Undervotes (No Rankings),20571 Rounds,Round 1 Votes,% of vote,transfer,Round 2 Votes,% of vote,transfer,Round 3 Votes,% of vote,transfer,Round 4 Votes,% of vote,transfer,Round 5 Votes,% of vote,transfer,Round 6 Votes,% of vote,transfer,Round 7 Votes,% of vote,transfer,Round 8 Votes,% of vote,transfer,Round 9 Votes,% of vote,transfer Eliminated,Undeclared Write-ins,,,CASPER HILL,,,ISHMAEL ISRAEL,,,MARY LYNN MCPHERSON,,,STEVE BARLAND,,,HASHIM YONIS,,,JASON STONE,,,TOM NORDYKE,,,,, Elected,,,,,,,,,,,,,,,,,,,,,,,,,ANNIE YOUNG; JOHN ERWIN; MEG FORNEY,, -JOHN ERWIN,14678,24.68%,6,14684,24.81%,182,14866,25.24%,282,15148,26.15%,216,15364,26.99%,530,15894,28.75%,180,16074,30.89%,1757,17831,35.68%,3819,21650,45.8%,0 -ANNIE YOUNG,9294,15.62%,8,9302,15.71%,150,9452,16.05%,531,9983,17.23%,959,10942,19.22%,411,11353,20.53%,486,11839,22.75%,1324,13163,26.34%,751,13914,29.43%,0 -MEG FORNEY,7856,13.21%,8,7864,13.28%,167,8031,13.64%,372,8403,14.5%,699,9102,15.98%,607,9709,17.56%,317,10026,19.27%,702,10728,21.46%,976,11704,24.76%,0 -TOM NORDYKE,6511,10.94%,3,6514,11.0%,81,6595,11.2%,128,6723,11.6%,210,6933,12.17%,436,7369,13.33%,139,7508,14.43%,738,8246,16.5%,-8246,0,0.0%,0 -JASON STONE,5357,9.0%,7,5364,9.06%,113,5477,9.3%,289,5766,9.95%,254,6020,10.57%,386,6406,11.58%,174,6580,12.64%,-6580,0,0.0%,0,0,0.0%,0 -HASHIM YONIS,3762,6.32%,5,3767,6.36%,32,3799,6.45%,530,4329,7.47%,140,4469,7.85%,74,4543,8.21%,-4543,0,0.0%,0,0,0.0%,0,0,0.0%,0 -STEVE BARLAND,3705,6.23%,2,3707,6.26%,96,3803,6.45%,90,3893,6.72%,201,4094,7.19%,-4094,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 -MARY LYNN MCPHERSON,3373,5.67%,5,3378,5.7%,101,3479,5.9%,202,3681,6.35%,-3681,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 -ISHMAEL ISRAEL,3305,5.55%,5,3310,5.59%,64,3374,5.73%,-3374,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 -CASPER HILL,1280,2.15%,4,1284,2.16%,-1284,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 +JOHN ERWIN,14678,24.68%,6,14684,24.69%,182,14866,25.0%,282,15148,25.47%,216,15364,25.83%,530,15894,26.72%,180,16074,27.03%,1757,17831,29.98%,3819,21650,36.4%,0 +ANNIE YOUNG,9294,15.62%,8,9302,15.64%,150,9452,15.89%,531,9983,16.78%,959,10942,18.4%,411,11353,19.09%,486,11839,19.9%,1324,13163,22.13%,751,13914,23.39%,0 +MEG FORNEY,7856,13.21%,8,7864,13.22%,167,8031,13.5%,372,8403,14.13%,699,9102,15.3%,607,9709,16.32%,317,10026,16.86%,702,10728,18.04%,976,11704,19.68%,0 +TOM NORDYKE,6511,10.94%,3,6514,10.95%,81,6595,11.09%,128,6723,11.3%,210,6933,11.65%,436,7369,12.39%,139,7508,12.62%,738,8246,13.86%,-8246,0,0.0%,0 +JASON STONE,5357,9.0%,7,5364,9.02%,113,5477,9.21%,289,5766,9.69%,254,6020,10.12%,386,6406,10.77%,174,6580,11.06%,-6580,0,0.0%,0,0,0.0%,0 +HASHIM YONIS,3762,6.32%,5,3767,6.33%,32,3799,6.38%,530,4329,7.28%,140,4469,7.51%,74,4543,7.64%,-4543,0,0.0%,0,0,0.0%,0,0,0.0%,0 +STEVE BARLAND,3705,6.23%,2,3707,6.23%,96,3803,6.39%,90,3893,6.54%,201,4094,6.88%,-4094,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 +MARY LYNN MCPHERSON,3373,5.67%,5,3378,5.68%,101,3479,5.85%,202,3681,6.19%,-3681,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 +ISHMAEL ISRAEL,3305,5.55%,5,3310,5.56%,64,3374,5.67%,-3374,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 +CASPER HILL,1280,2.15%,4,1284,2.15%,-1284,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 Undeclared Write-ins,342,0.57%,-342,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 Active Ballots,59463,,,59174,,,58876,,,57926,,,56924,,,55274,,,52027,,,49968,,,47268,, Current Round Threshold,14866,,,14866,,,14866,,,14866,,,14866,,,14866,,,14866,,,14866,,,14866,, diff --git a/src/test/resources/network/brightspots/rcv/test_data/2013_minneapolis_park_hare/2013_minneapolis_park_hare_expected_summary.csv b/src/test/resources/network/brightspots/rcv/test_data/2013_minneapolis_park_hare/2013_minneapolis_park_hare_expected_summary.csv index b49ca2f8..91a5c9fc 100644 --- a/src/test/resources/network/brightspots/rcv/test_data/2013_minneapolis_park_hare/2013_minneapolis_park_hare_expected_summary.csv +++ b/src/test/resources/network/brightspots/rcv/test_data/2013_minneapolis_park_hare/2013_minneapolis_park_hare_expected_summary.csv @@ -18,22 +18,23 @@ Number of Undervotes (No Rankings),20571 Rounds,Round 1 Votes,% of vote,transfer,Round 2 Votes,% of vote,transfer,Round 3 Votes,% of vote,transfer,Round 4 Votes,% of vote,transfer,Round 5 Votes,% of vote,transfer,Round 6 Votes,% of vote,transfer,Round 7 Votes,% of vote,transfer,Round 8 Votes,% of vote,transfer,Round 9 Votes,% of vote,transfer,Round 10 Votes,% of vote,transfer Eliminated,Undeclared Write-ins,,,CASPER HILL,,,ISHMAEL ISRAEL,,,MARY LYNN MCPHERSON,,,STEVE BARLAND,,,HASHIM YONIS,,,JASON STONE,,,TOM NORDYKE,,,,,,,, Elected,,,,,,,,,,,,,,,,,,,,,,,,,ANNIE YOUNG; JOHN ERWIN; MEG FORNEY,,,,, -JOHN ERWIN,14678,24.68%,6,14684,24.81%,182,14866,25.24%,282,15148,26.15%,216,15364,26.99%,530,15894,28.75%,180,16074,30.89%,1757,17831,35.68%,3819,21650,45.8%,-1829,19821,43.62%,0 -ANNIE YOUNG,9294,15.62%,8,9302,15.71%,150,9452,16.05%,531,9983,17.23%,959,10942,19.22%,411,11353,20.53%,486,11839,22.75%,1324,13163,26.34%,751,13914,29.43%,0.0000,13914.0000,30.62%,0 -MEG FORNEY,7856,13.21%,8,7864,13.28%,167,8031,13.64%,372,8403,14.5%,699,9102,15.98%,607,9709,17.56%,317,10026,19.27%,702,10728,21.46%,976,11704,24.76%,0.0000,11704.0000,25.75%,0 -TOM NORDYKE,6511,10.94%,3,6514,11.0%,81,6595,11.2%,128,6723,11.6%,210,6933,12.17%,436,7369,13.33%,139,7508,14.43%,738,8246,16.5%,-8246,0,0.0%,0,0,0.0%,0 -JASON STONE,5357,9.0%,7,5364,9.06%,113,5477,9.3%,289,5766,9.95%,254,6020,10.57%,386,6406,11.58%,174,6580,12.64%,-6580,0,0.0%,0,0,0.0%,0,0,0.0%,0 -HASHIM YONIS,3762,6.32%,5,3767,6.36%,32,3799,6.45%,530,4329,7.47%,140,4469,7.85%,74,4543,8.21%,-4543,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 -STEVE BARLAND,3705,6.23%,2,3707,6.26%,96,3803,6.45%,90,3893,6.72%,201,4094,7.19%,-4094,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 -MARY LYNN MCPHERSON,3373,5.67%,5,3378,5.7%,101,3479,5.9%,202,3681,6.35%,-3681,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 -ISHMAEL ISRAEL,3305,5.55%,5,3310,5.59%,64,3374,5.73%,-3374,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 -CASPER HILL,1280,2.15%,4,1284,2.16%,-1284,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 +JOHN ERWIN,14678,24.68%,6,14684,24.69%,182,14866,25.0%,282,15148,25.47%,216,15364,25.83%,530,15894,26.72%,180,16074,27.03%,1757,17831,29.98%,3819,21650,36.4%,-1829,19821,33.33%,0 +ANNIE YOUNG,9294,15.62%,8,9302,15.64%,150,9452,15.89%,531,9983,16.78%,959,10942,18.4%,411,11353,19.09%,486,11839,19.9%,1324,13163,22.13%,751,13914,23.39%,0.0000,13914.0000,23.39%,0 +MEG FORNEY,7856,13.21%,8,7864,13.22%,167,8031,13.5%,372,8403,14.13%,699,9102,15.3%,607,9709,16.32%,317,10026,16.86%,702,10728,18.04%,976,11704,19.68%,0.0000,11704.0000,19.68%,0 +TOM NORDYKE,6511,10.94%,3,6514,10.95%,81,6595,11.09%,128,6723,11.3%,210,6933,11.65%,436,7369,12.39%,139,7508,12.62%,738,8246,13.86%,-8246,0,0.0%,0,0,0.0%,0 +JASON STONE,5357,9.0%,7,5364,9.02%,113,5477,9.21%,289,5766,9.69%,254,6020,10.12%,386,6406,10.77%,174,6580,11.06%,-6580,0,0.0%,0,0,0.0%,0,0,0.0%,0 +HASHIM YONIS,3762,6.32%,5,3767,6.33%,32,3799,6.38%,530,4329,7.28%,140,4469,7.51%,74,4543,7.64%,-4543,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 +STEVE BARLAND,3705,6.23%,2,3707,6.23%,96,3803,6.39%,90,3893,6.54%,201,4094,6.88%,-4094,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 +MARY LYNN MCPHERSON,3373,5.67%,5,3378,5.68%,101,3479,5.85%,202,3681,6.19%,-3681,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 +ISHMAEL ISRAEL,3305,5.55%,5,3310,5.56%,64,3374,5.67%,-3374,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 +CASPER HILL,1280,2.15%,4,1284,2.15%,-1284,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 Undeclared Write-ins,342,0.57%,-342,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 -Active Ballots,59463,,,59174,,,58876,,,57926,,,56924,,,55274,,,52027,,,49968,,,47268,,,45439.0000,, +Active Ballots,59463,,,59174,,,58876,,,57926,,,56924,,,55274,,,52027,,,49968,,,47268,,,47266.2600,, Current Round Threshold,19821,,,19821,,,19821,,,19821,,,19821,,,19821,,,19821,,,19821,,,19821,,,19821,, Inactive Ballots by Overvotes,0,,0,0,,0,0,,0,0,,0,0,,0,0,,0,0,,0,0,,0,0,,0,0,,0 Inactive Ballots by Skipped Rankings,0,,0,0,,0,0,,0,0,,0,0,,0,0,,0,0,,0,0,,0,0,,0,0,,0 -Inactive Ballots by Exhausted Choices,67,,289,356,,298,654,,950,1604,,1002,2606,,1650,4256,,3247,7503,,2059,9562,,2700,12262,,1827.2600,14089.2600,,0 +Inactive Ballots by Exhausted Choices,67,,289,356,,298,654,,950,1604,,1002,2606,,1650,4256,,3247,7503,,2059,9562,,2700,12262,,0,12262,,0 Inactive Ballots by Repeated Rankings,0,,0,0,,0,0,,0,0,,0,0,,0,0,,0,0,,0,0,,0,0,,0,0,,0 -Inactive Ballots Total,67,,289,356,,298,654,,950,1604,,1002,2606,,1650,4256,,3247,7503,,2059,9562,,2700,12262,,1827.2600,14089.2600,,0 +Inactive Ballots Total,67,,289,356,,298,654,,950,1604,,1002,2606,,1650,4256,,3247,7503,,2059,9562,,2700,12262,,0,12262,,0 Residual surplus,0,,,0,,,0,,,0,,,0,,,0,,,0,,,0,,,0,,,1.7400,, +Final Round Surplus,,,,,,,,,,,,,,,,,,,,,,,,,,,,1827.2600,, diff --git a/src/test/resources/network/brightspots/rcv/test_data/2013_minneapolis_park_hare/2013_minneapolis_park_hare_expected_summary.json b/src/test/resources/network/brightspots/rcv/test_data/2013_minneapolis_park_hare/2013_minneapolis_park_hare_expected_summary.json index 8ca6d0fd..8b535721 100644 --- a/src/test/resources/network/brightspots/rcv/test_data/2013_minneapolis_park_hare/2013_minneapolis_park_hare_expected_summary.json +++ b/src/test/resources/network/brightspots/rcv/test_data/2013_minneapolis_park_hare/2013_minneapolis_park_hare_expected_summary.json @@ -284,7 +284,8 @@ "threshold" : "19821" }, { "inactiveBallots" : { - "exhaustedChoices" : "14089.2600", + "exhaustedChoices" : "12262", + "finalRoundSurplus" : "1827.2600", "overvotes" : "0", "repeatedRankings" : "0", "skippedRankings" : "0" diff --git a/src/test/resources/network/brightspots/rcv/test_data/2013_minneapolis_park_sequential/2013_minneapolis_park_sequential_1_expected_summary.csv b/src/test/resources/network/brightspots/rcv/test_data/2013_minneapolis_park_sequential/2013_minneapolis_park_sequential_1_expected_summary.csv index 900aa9bd..aeb6e240 100644 --- a/src/test/resources/network/brightspots/rcv/test_data/2013_minneapolis_park_sequential/2013_minneapolis_park_sequential_1_expected_summary.csv +++ b/src/test/resources/network/brightspots/rcv/test_data/2013_minneapolis_park_sequential/2013_minneapolis_park_sequential_1_expected_summary.csv @@ -18,16 +18,16 @@ Number of Undervotes (No Rankings),20571 Rounds,Round 1 Votes,% of vote,transfer,Round 2 Votes,% of vote,transfer,Round 3 Votes,% of vote,transfer,Round 4 Votes,% of vote,transfer,Round 5 Votes,% of vote,transfer,Round 6 Votes,% of vote,transfer,Round 7 Votes,% of vote,transfer,Round 8 Votes,% of vote,transfer,Round 9 Votes,% of vote,transfer,Round 10 Votes,% of vote,transfer Eliminated,Undeclared Write-ins,,,CASPER HILL,,,ISHMAEL ISRAEL,,,MARY LYNN MCPHERSON,,,STEVE BARLAND,,,HASHIM YONIS,,,JASON STONE,,,TOM NORDYKE,,,MEG FORNEY,,,,, Elected,,,,,,,,,,,,,,,,,,,,,,,,,,,,JOHN ERWIN,, -JOHN ERWIN,14678,24.68%,6,14684,24.81%,182,14866,25.24%,282,15148,26.15%,216,15364,26.99%,530,15894,28.75%,180,16074,30.89%,1757,17831,35.68%,3819,21650,45.8%,1340,22990,57.01%,0 -ANNIE YOUNG,9294,15.62%,8,9302,15.71%,150,9452,16.05%,531,9983,17.23%,959,10942,19.22%,411,11353,20.53%,486,11839,22.75%,1324,13163,26.34%,751,13914,29.43%,3420,17334,42.98%,0 -MEG FORNEY,7856,13.21%,8,7864,13.28%,167,8031,13.64%,372,8403,14.5%,699,9102,15.98%,607,9709,17.56%,317,10026,19.27%,702,10728,21.46%,976,11704,24.76%,-11704,0,0.0%,0 -TOM NORDYKE,6511,10.94%,3,6514,11.0%,81,6595,11.2%,128,6723,11.6%,210,6933,12.17%,436,7369,13.33%,139,7508,14.43%,738,8246,16.5%,-8246,0,0.0%,0,0,0.0%,0 -JASON STONE,5357,9.0%,7,5364,9.06%,113,5477,9.3%,289,5766,9.95%,254,6020,10.57%,386,6406,11.58%,174,6580,12.64%,-6580,0,0.0%,0,0,0.0%,0,0,0.0%,0 -HASHIM YONIS,3762,6.32%,5,3767,6.36%,32,3799,6.45%,530,4329,7.47%,140,4469,7.85%,74,4543,8.21%,-4543,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 -STEVE BARLAND,3705,6.23%,2,3707,6.26%,96,3803,6.45%,90,3893,6.72%,201,4094,7.19%,-4094,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 -MARY LYNN MCPHERSON,3373,5.67%,5,3378,5.7%,101,3479,5.9%,202,3681,6.35%,-3681,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 -ISHMAEL ISRAEL,3305,5.55%,5,3310,5.59%,64,3374,5.73%,-3374,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 -CASPER HILL,1280,2.15%,4,1284,2.16%,-1284,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 +JOHN ERWIN,14678,24.68%,6,14684,24.69%,182,14866,25.0%,282,15148,25.47%,216,15364,25.83%,530,15894,26.72%,180,16074,27.03%,1757,17831,29.98%,3819,21650,36.4%,1340,22990,38.66%,0 +ANNIE YOUNG,9294,15.62%,8,9302,15.64%,150,9452,15.89%,531,9983,16.78%,959,10942,18.4%,411,11353,19.09%,486,11839,19.9%,1324,13163,22.13%,751,13914,23.39%,3420,17334,29.15%,0 +MEG FORNEY,7856,13.21%,8,7864,13.22%,167,8031,13.5%,372,8403,14.13%,699,9102,15.3%,607,9709,16.32%,317,10026,16.86%,702,10728,18.04%,976,11704,19.68%,-11704,0,0.0%,0 +TOM NORDYKE,6511,10.94%,3,6514,10.95%,81,6595,11.09%,128,6723,11.3%,210,6933,11.65%,436,7369,12.39%,139,7508,12.62%,738,8246,13.86%,-8246,0,0.0%,0,0,0.0%,0 +JASON STONE,5357,9.0%,7,5364,9.02%,113,5477,9.21%,289,5766,9.69%,254,6020,10.12%,386,6406,10.77%,174,6580,11.06%,-6580,0,0.0%,0,0,0.0%,0,0,0.0%,0 +HASHIM YONIS,3762,6.32%,5,3767,6.33%,32,3799,6.38%,530,4329,7.28%,140,4469,7.51%,74,4543,7.64%,-4543,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 +STEVE BARLAND,3705,6.23%,2,3707,6.23%,96,3803,6.39%,90,3893,6.54%,201,4094,6.88%,-4094,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 +MARY LYNN MCPHERSON,3373,5.67%,5,3378,5.68%,101,3479,5.85%,202,3681,6.19%,-3681,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 +ISHMAEL ISRAEL,3305,5.55%,5,3310,5.56%,64,3374,5.67%,-3374,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 +CASPER HILL,1280,2.15%,4,1284,2.15%,-1284,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 Undeclared Write-ins,342,0.57%,-342,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 Active Ballots,59463,,,59174,,,58876,,,57926,,,56924,,,55274,,,52027,,,49968,,,47268,,,40324,, Current Round Threshold,29732,,,29588,,,29439,,,28964,,,28463,,,27638,,,26014,,,24985,,,23635,,,20163,, diff --git a/src/test/resources/network/brightspots/rcv/test_data/2013_minneapolis_park_sequential/2013_minneapolis_park_sequential_2_expected_summary.csv b/src/test/resources/network/brightspots/rcv/test_data/2013_minneapolis_park_sequential/2013_minneapolis_park_sequential_2_expected_summary.csv index 08bd832e..db0f06a0 100644 --- a/src/test/resources/network/brightspots/rcv/test_data/2013_minneapolis_park_sequential/2013_minneapolis_park_sequential_2_expected_summary.csv +++ b/src/test/resources/network/brightspots/rcv/test_data/2013_minneapolis_park_sequential/2013_minneapolis_park_sequential_2_expected_summary.csv @@ -18,15 +18,15 @@ Number of Undervotes (No Rankings),20571 Rounds,Round 1 Votes,% of vote,transfer,Round 2 Votes,% of vote,transfer,Round 3 Votes,% of vote,transfer,Round 4 Votes,% of vote,transfer,Round 5 Votes,% of vote,transfer,Round 6 Votes,% of vote,transfer,Round 7 Votes,% of vote,transfer,Round 8 Votes,% of vote,transfer,Round 9 Votes,% of vote,transfer Eliminated,Undeclared Write-ins,,,CASPER HILL,,,MARY LYNN MCPHERSON,,,ISHMAEL ISRAEL,,,STEVE BARLAND,,,HASHIM YONIS,,,JASON STONE,,,MEG FORNEY,,,,, Elected,,,,,,,,,,,,,,,,,,,,,,,,,ANNIE YOUNG,, -ANNIE YOUNG,12947,22.55%,9,12956,22.68%,240,13196,23.25%,972,14168,25.44%,790,14958,27.5%,531,15489,29.63%,521,16010,32.88%,2734,18744,42.14%,3561,22305,60.42%,0 -TOM NORDYKE,10594,18.45%,7,10601,18.56%,136,10737,18.92%,267,11004,19.76%,232,11236,20.65%,619,11855,22.67%,169,12024,24.69%,1347,13371,30.06%,1238,14609,39.57%,0 -MEG FORNEY,8827,15.37%,8,8835,15.47%,216,9051,15.95%,735,9786,17.57%,515,10301,18.93%,715,11016,21.07%,337,11353,23.31%,1010,12363,27.79%,-12363,0,0.0%,0 -JASON STONE,7528,13.11%,9,7537,13.19%,214,7751,13.66%,309,8060,14.47%,498,8558,15.73%,529,9087,17.38%,215,9302,19.1%,-9302,0,0.0%,0,0,0.0%,0 -STEVE BARLAND,4104,7.14%,3,4107,7.19%,133,4240,7.47%,234,4474,8.03%,125,4599,8.45%,-4599,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 -HASHIM YONIS,3946,6.87%,6,3952,6.92%,46,3998,7.04%,122,4120,7.39%,620,4740,8.71%,87,4827,9.23%,-4827,0,0.0%,0,0,0.0%,0,0,0.0%,0 -ISHMAEL ISRAEL,3800,6.62%,5,3805,6.66%,108,3913,6.89%,163,4076,7.31%,-4076,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 -MARY LYNN MCPHERSON,3713,6.46%,5,3718,6.51%,131,3849,6.78%,-3849,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 -CASPER HILL,1586,2.76%,4,1590,2.78%,-1590,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 +ANNIE YOUNG,12947,22.55%,9,12956,22.57%,240,13196,22.98%,972,14168,24.68%,790,14958,26.05%,531,15489,26.98%,521,16010,27.89%,2734,18744,32.65%,3561,22305,38.85%,0 +TOM NORDYKE,10594,18.45%,7,10601,18.46%,136,10737,18.7%,267,11004,19.17%,232,11236,19.57%,619,11855,20.65%,169,12024,20.94%,1347,13371,23.29%,1238,14609,25.45%,0 +MEG FORNEY,8827,15.37%,8,8835,15.39%,216,9051,15.76%,735,9786,17.04%,515,10301,17.94%,715,11016,19.19%,337,11353,19.77%,1010,12363,21.53%,-12363,0,0.0%,0 +JASON STONE,7528,13.11%,9,7537,13.13%,214,7751,13.5%,309,8060,14.04%,498,8558,14.9%,529,9087,15.83%,215,9302,16.2%,-9302,0,0.0%,0,0,0.0%,0 +STEVE BARLAND,4104,7.14%,3,4107,7.15%,133,4240,7.38%,234,4474,7.79%,125,4599,8.01%,-4599,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 +HASHIM YONIS,3946,6.87%,6,3952,6.88%,46,3998,6.96%,122,4120,7.17%,620,4740,8.25%,87,4827,8.4%,-4827,0,0.0%,0,0,0.0%,0,0,0.0%,0 +ISHMAEL ISRAEL,3800,6.62%,5,3805,6.62%,108,3913,6.81%,163,4076,7.1%,-4076,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 +MARY LYNN MCPHERSON,3713,6.46%,5,3718,6.47%,131,3849,6.7%,-3849,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 +CASPER HILL,1586,2.76%,4,1590,2.76%,-1590,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 Undeclared Write-ins,356,0.62%,-356,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 Active Ballots,57401,,,57101,,,56735,,,55688,,,54392,,,52274,,,48689,,,44478,,,36914,, Current Round Threshold,28701,,,28551,,,28368,,,27845,,,27197,,,26138,,,24345,,,22240,,,18458,, diff --git a/src/test/resources/network/brightspots/rcv/test_data/2013_minneapolis_park_sequential/2013_minneapolis_park_sequential_3_expected_summary.csv b/src/test/resources/network/brightspots/rcv/test_data/2013_minneapolis_park_sequential/2013_minneapolis_park_sequential_3_expected_summary.csv index f9d0c88e..2139e79a 100644 --- a/src/test/resources/network/brightspots/rcv/test_data/2013_minneapolis_park_sequential/2013_minneapolis_park_sequential_3_expected_summary.csv +++ b/src/test/resources/network/brightspots/rcv/test_data/2013_minneapolis_park_sequential/2013_minneapolis_park_sequential_3_expected_summary.csv @@ -18,14 +18,14 @@ Number of Undervotes (No Rankings),20571 Rounds,Round 1 Votes,% of vote,transfer,Round 2 Votes,% of vote,transfer,Round 3 Votes,% of vote,transfer,Round 4 Votes,% of vote,transfer,Round 5 Votes,% of vote,transfer,Round 6 Votes,% of vote,transfer,Round 7 Votes,% of vote,transfer,Round 8 Votes,% of vote,transfer Eliminated,Undeclared Write-ins,,,CASPER HILL,,,HASHIM YONIS,,,STEVE BARLAND,,,MARY LYNN MCPHERSON,,,ISHMAEL ISRAEL,,,JASON STONE,,,,, Elected,,,,,,,,,,,,,,,,,,,,,,MEG FORNEY,, -TOM NORDYKE,11939,21.86%,7,11946,22.01%,150,12096,22.56%,124,12220,24.11%,621,12841,26.51%,397,13238,28.77%,358,13596,32.38%,1540,15136,48.28%,0 -JASON STONE,11221,20.55%,9,11230,20.69%,273,11503,21.46%,179,11682,23.05%,540,12222,25.23%,503,12725,27.65%,711,13436,32.0%,-13436,0,0.0%,0 -MEG FORNEY,10994,20.13%,13,11007,20.28%,283,11290,21.06%,221,11511,22.71%,764,12275,25.34%,1796,14071,30.58%,883,14954,35.61%,1258,16212,51.71%,0 -ISHMAEL ISRAEL,4683,8.57%,5,4688,8.63%,134,4822,8.99%,639,5461,10.77%,227,5688,11.74%,291,5979,12.99%,-5979,0,0.0%,0,0,0.0%,0 -MARY LYNN MCPHERSON,4654,8.52%,6,4660,8.58%,183,4843,9.03%,180,5023,9.91%,384,5407,11.16%,-5407,0,0.0%,0,0,0.0%,0,0,0.0%,0 -STEVE BARLAND,4546,8.32%,3,4549,8.38%,155,4704,8.77%,78,4782,9.43%,-4782,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 -HASHIM YONIS,4277,7.83%,7,4284,7.89%,57,4341,8.09%,-4341,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 -CASPER HILL,1903,3.48%,5,1908,3.51%,-1908,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 +TOM NORDYKE,11939,21.86%,7,11946,21.87%,150,12096,22.15%,124,12220,22.38%,621,12841,23.51%,397,13238,24.24%,358,13596,24.9%,1540,15136,27.72%,0 +JASON STONE,11221,20.55%,9,11230,20.56%,273,11503,21.06%,179,11682,21.39%,540,12222,22.38%,503,12725,23.3%,711,13436,24.6%,-13436,0,0.0%,0 +MEG FORNEY,10994,20.13%,13,11007,20.16%,283,11290,20.67%,221,11511,21.08%,764,12275,22.48%,1796,14071,25.77%,883,14954,27.38%,1258,16212,29.69%,0 +ISHMAEL ISRAEL,4683,8.57%,5,4688,8.58%,134,4822,8.83%,639,5461,10.0%,227,5688,10.41%,291,5979,10.95%,-5979,0,0.0%,0,0,0.0%,0 +MARY LYNN MCPHERSON,4654,8.52%,6,4660,8.53%,183,4843,8.87%,180,5023,9.19%,384,5407,9.9%,-5407,0,0.0%,0,0,0.0%,0,0,0.0%,0 +STEVE BARLAND,4546,8.32%,3,4549,8.33%,155,4704,8.61%,78,4782,8.75%,-4782,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 +HASHIM YONIS,4277,7.83%,7,4284,7.84%,57,4341,7.95%,-4341,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 +CASPER HILL,1903,3.48%,5,1908,3.49%,-1908,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 Undeclared Write-ins,381,0.69%,-381,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 Active Ballots,54598,,,54272,,,53599,,,50679,,,48433,,,46013,,,41986,,,31348,, Current Round Threshold,27300,,,27137,,,26800,,,25340,,,24217,,,23007,,,20994,,,15675,, diff --git a/src/test/resources/network/brightspots/rcv/test_data/first_round_determines_threshold_test/first_round_determines_threshold_test_expected_summary.csv b/src/test/resources/network/brightspots/rcv/test_data/first_round_determines_threshold_test/first_round_determines_threshold_test_expected_summary.csv index dd8cad12..70a94d11 100644 --- a/src/test/resources/network/brightspots/rcv/test_data/first_round_determines_threshold_test/first_round_determines_threshold_test_expected_summary.csv +++ b/src/test/resources/network/brightspots/rcv/test_data/first_round_determines_threshold_test/first_round_determines_threshold_test_expected_summary.csv @@ -18,9 +18,9 @@ Number of Undervotes (No Rankings),3 Rounds,Round 1 Votes,% of vote,transfer,Round 2 Votes,% of vote,transfer Eliminated,"Haadoow, Hamza A.",,,,, Elected,,,,"Vail, Christopher L.",, -"Vail, Christopher L.",6,37.5%,0,6,54.54%,0 +"Vail, Christopher L.",6,37.5%,0,6,37.5%,0 "Haadoow, Hamza A.",5,31.25%,-5,0,0.0%,0 -"Carmona, Ralph C.",5,31.25%,0,5,45.45%,0 +"Carmona, Ralph C.",5,31.25%,0,5,31.25%,0 Active Ballots,16,,,11,, Current Round Threshold,9,,,9,, Inactive Ballots by Overvotes,0,,0,0,,0 diff --git a/src/test/resources/network/brightspots/rcv/test_data/first_round_determines_threshold_tiebreaker_test/first_round_determines_threshold_tiebreaker_test_expected_summary.csv b/src/test/resources/network/brightspots/rcv/test_data/first_round_determines_threshold_tiebreaker_test/first_round_determines_threshold_tiebreaker_test_expected_summary.csv index 3e329280..2c8ac975 100644 --- a/src/test/resources/network/brightspots/rcv/test_data/first_round_determines_threshold_tiebreaker_test/first_round_determines_threshold_tiebreaker_test_expected_summary.csv +++ b/src/test/resources/network/brightspots/rcv/test_data/first_round_determines_threshold_tiebreaker_test/first_round_determines_threshold_tiebreaker_test_expected_summary.csv @@ -18,8 +18,8 @@ Number of Undervotes (No Rankings),2 Rounds,Round 1 Votes,% of vote,transfer,Round 2 Votes,% of vote,transfer Eliminated,"Haadoow, Hamza A.",,,,, Elected,,,,"Vail, Christopher L.",, -"Carmona, Ralph C.",6,35.29%,0,6,50.0%,0 -"Vail, Christopher L.",6,35.29%,0,6,50.0%,0 +"Carmona, Ralph C.",6,35.29%,0,6,35.29%,0 +"Vail, Christopher L.",6,35.29%,0,6,35.29%,0 "Haadoow, Hamza A.",5,29.41%,-5,0,0.0%,0 Active Ballots,17,,,12,, Current Round Threshold,9,,,9,, diff --git a/src/test/resources/network/brightspots/rcv/test_data/minneapolis_multi_seat_threshold/minneapolis_multi_seat_threshold_expected_pc1_precinct_summary.csv b/src/test/resources/network/brightspots/rcv/test_data/minneapolis_multi_seat_threshold/minneapolis_multi_seat_threshold_expected_pc1_precinct_summary.csv index 04430c17..807d9474 100644 --- a/src/test/resources/network/brightspots/rcv/test_data/minneapolis_multi_seat_threshold/minneapolis_multi_seat_threshold_expected_pc1_precinct_summary.csv +++ b/src/test/resources/network/brightspots/rcv/test_data/minneapolis_multi_seat_threshold/minneapolis_multi_seat_threshold_expected_pc1_precinct_summary.csv @@ -18,17 +18,18 @@ Number of Undervotes (No Rankings),0 Rounds,Round 1 Votes,% of vote,transfer,Round 2 Votes,% of vote,transfer,Round 3 Votes,% of vote,transfer,Round 4 Votes,% of vote,transfer,Round 5 Votes,% of vote,transfer,Round 6 Votes,% of vote,transfer Eliminated*,D,,,,,,F,,,E,,,,,,,, Elected*,,,,C,,,,,,,,,A; B,,,,, -C,5,20.83%,1,6,26.08%,0.0000,6.0000,26.08%,0.0000,6.0000,26.08%,0.0000,6.0000,26.08%,0.0000,6.0000,30.61%,0 -A,5,20.83%,0,5,21.73%,0,5,21.73%,1,6,26.08%,3.0000,9.0000,39.13%,-1.8000,7.2000,36.73%,0 -E,5,20.83%,0,5,21.73%,0.0000,5.0000,21.73%,0.0000,5.0000,21.73%,-5.0000,0,0.0%,0,0,0.0%,0 -B,4,16.66%,0,4,17.39%,0,4,17.39%,2.0000,6.0000,26.08%,2.0000,8.0000,34.78%,-1.6000,6.4000,32.65%,0 -F,3,12.5%,0,3,13.04%,0.0000,3.0000,13.04%,-3.0000,0,0.0%,0,0,0.0%,0,0,0.0%,0 +C,5,20.83%,1,6,25.0%,0.0000,6.0000,25.0%,0.0000,6.0000,25.0%,0.0000,6.0000,25.0%,0.0000,6.0000,25.0%,0 +A,5,20.83%,0,5,20.83%,0,5,20.83%,1,6,25.0%,3.0000,9.0000,37.5%,-1.8000,7.2000,30.0%,0 +E,5,20.83%,0,5,20.83%,0.0000,5.0000,20.83%,0.0000,5.0000,20.83%,-5.0000,0,0.0%,0,0,0.0%,0 +B,4,16.66%,0,4,16.66%,0,4,16.66%,2.0000,6.0000,25.0%,2.0000,8.0000,33.33%,-1.6000,6.4000,26.66%,0 +F,3,12.5%,0,3,12.5%,0.0000,3.0000,12.5%,-3.0000,0,0.0%,0,0,0.0%,0,0,0.0%,0 D,2,8.33%,-2,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 -Active Ballots,24,,,23,,,23.0000,,,23.0000,,,23.0000,,,19.6000,, +Active Ballots,24,,,23,,,23.0000,,,23.0000,,,23.0000,,,23.0000,, Inactive Ballots by Overvotes,0,,0,0,,0,0,,0,0,,0,0,,0,0,,0 -Inactive Ballots by Skipped Rankings,1,,1,2,,0,2,,0,2,,0.0000,2.0000,,0.6000,2.6000,,0 -Inactive Ballots by Exhausted Choices,0,,0,0,,0,0,,0,0,,0.0000,0.0000,,2.8000,2.8000,,0 +Inactive Ballots by Skipped Rankings,1,,1,2,,0,2,,0,2,,0.0000,2.0000,,0.0000,2.0000,,0 +Inactive Ballots by Exhausted Choices,0,,0,0,,0,0,,0,0,,0.0000,0.0000,,0.0000,0.0000,,0 Inactive Ballots by Repeated Rankings,0,,0,0,,0,0,,0,0,,0,0,,0,0,,0 -Inactive Ballots Total,1,,1,2,,0,2,,0,2,,0.0000,2.0000,,3.4000,5.4000,,0 +Inactive Ballots Total,1,,1,2,,0,2,,0,2,,0.0000,2.0000,,0.0000,2.0000,,0 +Final Round Surplus,,,,,,,,,,,,,,,,3.4000,, *Elect/Eliminate decisions are from the full contest. All other results on this report are at the precinct level. diff --git a/src/test/resources/network/brightspots/rcv/test_data/minneapolis_multi_seat_threshold/minneapolis_multi_seat_threshold_expected_pc2_precinct_summary.csv b/src/test/resources/network/brightspots/rcv/test_data/minneapolis_multi_seat_threshold/minneapolis_multi_seat_threshold_expected_pc2_precinct_summary.csv index a79494a2..a65d3cc4 100644 --- a/src/test/resources/network/brightspots/rcv/test_data/minneapolis_multi_seat_threshold/minneapolis_multi_seat_threshold_expected_pc2_precinct_summary.csv +++ b/src/test/resources/network/brightspots/rcv/test_data/minneapolis_multi_seat_threshold/minneapolis_multi_seat_threshold_expected_pc2_precinct_summary.csv @@ -18,17 +18,18 @@ Number of Undervotes (No Rankings),0 Rounds,Round 1 Votes,% of vote,transfer,Round 2 Votes,% of vote,transfer,Round 3 Votes,% of vote,transfer,Round 4 Votes,% of vote,transfer,Round 5 Votes,% of vote,transfer,Round 6 Votes,% of vote,transfer Eliminated*,D,,,,,,F,,,E,,,,,,,, Elected*,,,,C,,,,,,,,,A; B,,,,, -C,2,40.0%,0,2,40.0%,0.0000,2.0000,40.0%,0.0000,2.0000,40.0%,0.0000,2.0000,40.0%,0.0000,2.0000,45.45%,0 -A,1,20.0%,0,1,20.0%,0,1,20.0%,0,1,20.0%,0,1,20.0%,-0.2000,0.8000,18.18%,0 +C,2,40.0%,0,2,40.0%,0.0000,2.0000,40.0%,0.0000,2.0000,40.0%,0.0000,2.0000,40.0%,0.0000,2.0000,40.0%,0 +A,1,20.0%,0,1,20.0%,0,1,20.0%,0,1,20.0%,0,1,20.0%,-0.2000,0.8000,16.0%,0 E,1,20.0%,0,1,20.0%,0.0000,1.0000,20.0%,0.0000,1.0000,20.0%,-1.0000,0,0.0%,0,0,0.0%,0 -B,1,20.0%,0,1,20.0%,0,1,20.0%,0,1,20.0%,1,2,40.0%,-0.4000,1.6000,36.36%,0 +B,1,20.0%,0,1,20.0%,0,1,20.0%,0,1,20.0%,1,2,40.0%,-0.4000,1.6000,32.0%,0 F,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 D,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 -Active Ballots,5,,,5,,,5.0000,,,5.0000,,,5.0000,,,4.4000,, +Active Ballots,5,,,5,,,5.0000,,,5.0000,,,5.0000,,,5.0000,, Inactive Ballots by Overvotes,0,,0,0,,0,0,,0,0,,0,0,,0,0,,0 Inactive Ballots by Skipped Rankings,0,,0,0,,0,0,,0,0,,0.0000,0.0000,,0.0000,0.0000,,0 -Inactive Ballots by Exhausted Choices,0,,0,0,,0,0,,0,0,,0.0000,0.0000,,0.6000,0.6000,,0 +Inactive Ballots by Exhausted Choices,0,,0,0,,0,0,,0,0,,0.0000,0.0000,,0.0000,0.0000,,0 Inactive Ballots by Repeated Rankings,0,,0,0,,0,0,,0,0,,0,0,,0,0,,0 -Inactive Ballots Total,0,,0,0,,0,0,,0,0,,0.0000,0.0000,,0.6000,0.6000,,0 +Inactive Ballots Total,0,,0,0,,0,0,,0,0,,0.0000,0.0000,,0.0000,0.0000,,0 +Final Round Surplus,,,,,,,,,,,,,,,,0.6000,, *Elect/Eliminate decisions are from the full contest. All other results on this report are at the precinct level. diff --git a/src/test/resources/network/brightspots/rcv/test_data/minneapolis_multi_seat_threshold/minneapolis_multi_seat_threshold_expected_pc2_precinct_summary.json b/src/test/resources/network/brightspots/rcv/test_data/minneapolis_multi_seat_threshold/minneapolis_multi_seat_threshold_expected_pc2_precinct_summary.json index b5aff97d..13a04be5 100644 --- a/src/test/resources/network/brightspots/rcv/test_data/minneapolis_multi_seat_threshold/minneapolis_multi_seat_threshold_expected_pc2_precinct_summary.json +++ b/src/test/resources/network/brightspots/rcv/test_data/minneapolis_multi_seat_threshold/minneapolis_multi_seat_threshold_expected_pc2_precinct_summary.json @@ -117,7 +117,8 @@ "threshold" : "8" }, { "inactiveBallots" : { - "exhaustedChoices" : "0.6000", + "exhaustedChoices" : "0.0000", + "finalRoundSurplus" : "0.6000", "overvotes" : "0", "repeatedRankings" : "0", "skippedRankings" : "0.0000" diff --git a/src/test/resources/network/brightspots/rcv/test_data/minneapolis_multi_seat_threshold/minneapolis_multi_seat_threshold_expected_summary.csv b/src/test/resources/network/brightspots/rcv/test_data/minneapolis_multi_seat_threshold/minneapolis_multi_seat_threshold_expected_summary.csv index e29d7219..13a43222 100644 --- a/src/test/resources/network/brightspots/rcv/test_data/minneapolis_multi_seat_threshold/minneapolis_multi_seat_threshold_expected_summary.csv +++ b/src/test/resources/network/brightspots/rcv/test_data/minneapolis_multi_seat_threshold/minneapolis_multi_seat_threshold_expected_summary.csv @@ -18,16 +18,17 @@ Number of Undervotes (No Rankings),0 Rounds,Round 1 Votes,% of vote,transfer,Round 2 Votes,% of vote,transfer,Round 3 Votes,% of vote,transfer,Round 4 Votes,% of vote,transfer,Round 5 Votes,% of vote,transfer,Round 6 Votes,% of vote,transfer Eliminated,D,,,,,,F,,,E,,,,,,,, Elected,,,,C,,,,,,,,,A; B,,,,, -C,7,24.13%,1,8,28.57%,0.0000,8.0000,28.57%,0.0000,8.0000,28.57%,0.0000,8.0000,28.57%,0.0000,8.0000,33.33%,0 -A,6,20.68%,0,6,21.42%,0,6,21.42%,1,7,25.0%,3.0000,10.0000,35.71%,-2.0000,8.0000,33.33%,0 -E,6,20.68%,0,6,21.42%,0.0000,6.0000,21.42%,0.0000,6.0000,21.42%,-6.0000,0,0.0%,0,0,0.0%,0 -B,5,17.24%,0,5,17.85%,0,5,17.85%,2.0000,7.0000,25.0%,3.0000,10.0000,35.71%,-2.0000,8.0000,33.33%,0 -F,3,10.34%,0,3,10.71%,0.0000,3.0000,10.71%,-3.0000,0,0.0%,0,0,0.0%,0,0,0.0%,0 +C,7,24.13%,1,8,27.58%,0.0000,8.0000,27.58%,0.0000,8.0000,27.58%,0.0000,8.0000,27.58%,0.0000,8.0000,27.58%,0 +A,6,20.68%,0,6,20.68%,0,6,20.68%,1,7,24.13%,3.0000,10.0000,34.48%,-2.0000,8.0000,27.58%,0 +E,6,20.68%,0,6,20.68%,0.0000,6.0000,20.68%,0.0000,6.0000,20.68%,-6.0000,0,0.0%,0,0,0.0%,0 +B,5,17.24%,0,5,17.24%,0,5,17.24%,2.0000,7.0000,24.13%,3.0000,10.0000,34.48%,-2.0000,8.0000,27.58%,0 +F,3,10.34%,0,3,10.34%,0.0000,3.0000,10.34%,-3.0000,0,0.0%,0,0,0.0%,0,0,0.0%,0 D,2,6.89%,-2,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 -Active Ballots,29,,,28,,,28.0000,,,28.0000,,,28.0000,,,24.0000,, +Active Ballots,29,,,28,,,28.0000,,,28.0000,,,28.0000,,,28.0000,, Current Round Threshold,8,,,8,,,8,,,8,,,8,,,8,, Inactive Ballots by Overvotes,0,,0,0,,0,0,,0,0,,0,0,,0,0,,0 -Inactive Ballots by Skipped Rankings,1,,1,2,,0,2,,0,2,,0.0000,2.0000,,0.6000,2.6000,,0 -Inactive Ballots by Exhausted Choices,0,,0,0,,0,0,,0,0,,0.0000,0.0000,,3.4000,3.4000,,0 +Inactive Ballots by Skipped Rankings,1,,1,2,,0,2,,0,2,,0.0000,2.0000,,0.0000,2.0000,,0 +Inactive Ballots by Exhausted Choices,0,,0,0,,0,0,,0,0,,0.0000,0.0000,,0.0000,0.0000,,0 Inactive Ballots by Repeated Rankings,0,,0,0,,0,0,,0,0,,0,0,,0,0,,0 -Inactive Ballots Total,1,,1,2,,0,2,,0,2,,0.0000,2.0000,,4.0000,6.0000,,0 +Inactive Ballots Total,1,,1,2,,0,2,,0,2,,0.0000,2.0000,,0.0000,2.0000,,0 +Final Round Surplus,,,,,,,,,,,,,,,,4.0000,, diff --git a/src/test/resources/network/brightspots/rcv/test_data/minneapolis_multi_seat_threshold/minneapolis_multi_seat_threshold_expected_summary.json b/src/test/resources/network/brightspots/rcv/test_data/minneapolis_multi_seat_threshold/minneapolis_multi_seat_threshold_expected_summary.json index d6b57821..682d324d 100644 --- a/src/test/resources/network/brightspots/rcv/test_data/minneapolis_multi_seat_threshold/minneapolis_multi_seat_threshold_expected_summary.json +++ b/src/test/resources/network/brightspots/rcv/test_data/minneapolis_multi_seat_threshold/minneapolis_multi_seat_threshold_expected_summary.json @@ -123,10 +123,11 @@ "threshold" : "8" }, { "inactiveBallots" : { - "exhaustedChoices" : "3.4000", + "exhaustedChoices" : "0.0000", + "finalRoundSurplus" : "4.0000", "overvotes" : "0", "repeatedRankings" : "0", - "skippedRankings" : "2.6000" + "skippedRankings" : "2.0000" }, "round" : 6, "tally" : { diff --git a/src/test/resources/network/brightspots/rcv/test_data/more_winners_than_candidates/more_winners_than_candidates_expected_summary.csv b/src/test/resources/network/brightspots/rcv/test_data/more_winners_than_candidates/more_winners_than_candidates_expected_summary.csv index 4304d9f4..5af221b3 100644 --- a/src/test/resources/network/brightspots/rcv/test_data/more_winners_than_candidates/more_winners_than_candidates_expected_summary.csv +++ b/src/test/resources/network/brightspots/rcv/test_data/more_winners_than_candidates/more_winners_than_candidates_expected_summary.csv @@ -29,3 +29,4 @@ Inactive Ballots by Skipped Rankings,0,,0 Inactive Ballots by Exhausted Choices,0,,0 Inactive Ballots by Repeated Rankings,0,,0 Inactive Ballots Total,0,,0 +Final Round Surplus,,, diff --git a/src/test/resources/network/brightspots/rcv/test_data/more_winners_than_candidates/more_winners_than_candidates_expected_summary.json b/src/test/resources/network/brightspots/rcv/test_data/more_winners_than_candidates/more_winners_than_candidates_expected_summary.json index 1f86f83d..bc21bf73 100644 --- a/src/test/resources/network/brightspots/rcv/test_data/more_winners_than_candidates/more_winners_than_candidates_expected_summary.json +++ b/src/test/resources/network/brightspots/rcv/test_data/more_winners_than_candidates/more_winners_than_candidates_expected_summary.json @@ -10,6 +10,7 @@ "results" : [ { "inactiveBallots" : { "exhaustedChoices" : "0", + "finalRoundSurplus" : "0", "overvotes" : "0", "repeatedRankings" : "0", "skippedRankings" : "0" diff --git a/src/test/resources/network/brightspots/rcv/test_data/multi_seat_uwi_test/multi_seat_uwi_test_expected_summary.csv b/src/test/resources/network/brightspots/rcv/test_data/multi_seat_uwi_test/multi_seat_uwi_test_expected_summary.csv index eba607d2..d2c0e8ff 100644 --- a/src/test/resources/network/brightspots/rcv/test_data/multi_seat_uwi_test/multi_seat_uwi_test_expected_summary.csv +++ b/src/test/resources/network/brightspots/rcv/test_data/multi_seat_uwi_test/multi_seat_uwi_test_expected_summary.csv @@ -18,9 +18,9 @@ Number of Undervotes (No Rankings),0 Rounds,Round 1 Votes,% of vote,transfer,Round 2 Votes,% of vote,transfer,Round 3 Votes,% of vote,transfer,Round 4 Votes,% of vote,transfer,Round 5 Votes,% of vote,transfer Eliminated,Undeclared Write-ins,,,,,,C,,,,,,,, Elected,,,,A,,,,,,B,,,,, -A,6,40.0%,0,6,54.54%,0.0000,6.0000,54.54%,0.0000,6.0000,66.66%,0.0000,6.0000,66.66%,0 -B,3,20.0%,0,3,27.27%,0,3,27.27%,0,3,33.33%,0.0000,3.0000,33.33%,0 -C,2,13.33%,0,2,18.18%,0,2,18.18%,-2,0,0.0%,0,0,0.0%,0 +A,6,40.0%,0,6,40.0%,0.0000,6.0000,40.0%,0.0000,6.0000,40.0%,0.0000,6.0000,40.0%,0 +B,3,20.0%,0,3,20.0%,0,3,20.0%,0,3,20.0%,0.0000,3.0000,20.0%,0 +C,2,13.33%,0,2,13.33%,0,2,13.33%,-2,0,0.0%,0,0,0.0%,0 Undeclared Write-ins,4,26.66%,-4,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 Active Ballots,15,,,11,,,11.0000,,,9.0000,,,9.0000,, Current Round Threshold,6,,,6,,,6,,,6,,,6,, @@ -29,3 +29,4 @@ Inactive Ballots by Skipped Rankings,0,,0,0,,0,0,,0,0,,0,0,,0 Inactive Ballots by Exhausted Choices,0,,4,4,,0.0000,4.0000,,2.0000,6.0000,,0.0000,6.0000,,0 Inactive Ballots by Repeated Rankings,0,,0,0,,0,0,,0,0,,0,0,,0 Inactive Ballots Total,0,,4,4,,0.0000,4.0000,,2.0000,6.0000,,0.0000,6.0000,,0 +Final Round Surplus,,,,,,,,,,,,,0.0000,, diff --git a/src/test/resources/network/brightspots/rcv/test_data/multi_seat_uwi_test/multi_seat_uwi_test_expected_summary.json b/src/test/resources/network/brightspots/rcv/test_data/multi_seat_uwi_test/multi_seat_uwi_test_expected_summary.json index 962b59af..d4041fe4 100644 --- a/src/test/resources/network/brightspots/rcv/test_data/multi_seat_uwi_test/multi_seat_uwi_test_expected_summary.json +++ b/src/test/resources/network/brightspots/rcv/test_data/multi_seat_uwi_test/multi_seat_uwi_test_expected_summary.json @@ -86,6 +86,7 @@ }, { "inactiveBallots" : { "exhaustedChoices" : "6.0000", + "finalRoundSurplus" : "0.0000", "overvotes" : "0", "repeatedRankings" : "0", "skippedRankings" : "0" diff --git a/src/test/resources/network/brightspots/rcv/test_data/sequential_with_batch/sequential_with_batch_2_expected_summary.csv b/src/test/resources/network/brightspots/rcv/test_data/sequential_with_batch/sequential_with_batch_2_expected_summary.csv index 9f7935a1..49c77056 100644 --- a/src/test/resources/network/brightspots/rcv/test_data/sequential_with_batch/sequential_with_batch_2_expected_summary.csv +++ b/src/test/resources/network/brightspots/rcv/test_data/sequential_with_batch/sequential_with_batch_2_expected_summary.csv @@ -18,8 +18,8 @@ Number of Undervotes (No Rankings),0 Rounds,Round 1 Votes,% of vote,transfer,Round 2 Votes,% of vote,transfer Eliminated,D; E; F,,,,, Elected,,,,B,, -B,2,40.0%,0,2,50.0%,0 -C,2,40.0%,0,2,50.0%,0 +B,2,40.0%,0,2,40.0%,0 +C,2,40.0%,0,2,40.0%,0 D,1,20.0%,-1,0,0.0%,0 E,0,0.0%,0,0,0.0%,0 F,0,0.0%,0,0,0.0%,0 diff --git a/src/test/resources/network/brightspots/rcv/test_data/sequential_with_continue_until_two/sequential_with_continue_until_two_1_expected_summary.csv b/src/test/resources/network/brightspots/rcv/test_data/sequential_with_continue_until_two/sequential_with_continue_until_two_1_expected_summary.csv index 0c406f75..0928db63 100644 --- a/src/test/resources/network/brightspots/rcv/test_data/sequential_with_continue_until_two/sequential_with_continue_until_two_1_expected_summary.csv +++ b/src/test/resources/network/brightspots/rcv/test_data/sequential_with_continue_until_two/sequential_with_continue_until_two_1_expected_summary.csv @@ -18,9 +18,9 @@ Number of Undervotes (No Rankings),0 Rounds,Round 1 Votes,% of vote,transfer,Round 2 Votes,% of vote,transfer,Round 3 Votes,% of vote,transfer,Round 4 Votes,% of vote,transfer,Round 5 Votes,% of vote,transfer,Round 6 Votes,% of vote,transfer Eliminated,,,,F,,,E,,,D,,,B,,,,, Elected,A,,,,,,,,,,,,,,,,, -A,5,55.55%,0,5,55.55%,0,5,55.55%,0,5,55.55%,0,5,62.5%,0,5,71.42%,0 -C,2,22.22%,0,2,22.22%,0,2,22.22%,0,2,22.22%,0,2,25.0%,0,2,28.57%,0 -B,1,11.11%,0,1,11.11%,0,1,11.11%,0,1,11.11%,0,1,12.5%,-1,0,0.0%,0 +A,5,55.55%,0,5,55.55%,0,5,55.55%,0,5,55.55%,0,5,55.55%,0,5,55.55%,0 +C,2,22.22%,0,2,22.22%,0,2,22.22%,0,2,22.22%,0,2,22.22%,0,2,22.22%,0 +B,1,11.11%,0,1,11.11%,0,1,11.11%,0,1,11.11%,0,1,11.11%,-1,0,0.0%,0 D,1,11.11%,0,1,11.11%,0,1,11.11%,0,1,11.11%,-1,0,0.0%,0,0,0.0%,0 E,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 F,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 diff --git a/src/test/resources/network/brightspots/rcv/test_data/sequential_with_continue_until_two/sequential_with_continue_until_two_2_expected_summary.csv b/src/test/resources/network/brightspots/rcv/test_data/sequential_with_continue_until_two/sequential_with_continue_until_two_2_expected_summary.csv index 6a6ebd5d..952d33fa 100644 --- a/src/test/resources/network/brightspots/rcv/test_data/sequential_with_continue_until_two/sequential_with_continue_until_two_2_expected_summary.csv +++ b/src/test/resources/network/brightspots/rcv/test_data/sequential_with_continue_until_two/sequential_with_continue_until_two_2_expected_summary.csv @@ -18,8 +18,8 @@ Number of Undervotes (No Rankings),0 Rounds,Round 1 Votes,% of vote,transfer,Round 2 Votes,% of vote,transfer,Round 3 Votes,% of vote,transfer,Round 4 Votes,% of vote,transfer Eliminated,F,,,E,,,D,,,,, Elected,,,,,,,,,,B,, -B,2,40.0%,0,2,40.0%,0,2,40.0%,0,2,50.0%,0 -C,2,40.0%,0,2,40.0%,0,2,40.0%,0,2,50.0%,0 +B,2,40.0%,0,2,40.0%,0,2,40.0%,0,2,40.0%,0 +C,2,40.0%,0,2,40.0%,0,2,40.0%,0,2,40.0%,0 D,1,20.0%,0,1,20.0%,0,1,20.0%,-1,0,0.0%,0 E,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 F,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 diff --git a/src/test/resources/network/brightspots/rcv/test_data/test_set_allow_only_one_winner_per_round/test_set_allow_only_one_winner_per_round_expected_summary.csv b/src/test/resources/network/brightspots/rcv/test_data/test_set_allow_only_one_winner_per_round/test_set_allow_only_one_winner_per_round_expected_summary.csv index 3853e842..edf4fddb 100644 --- a/src/test/resources/network/brightspots/rcv/test_data/test_set_allow_only_one_winner_per_round/test_set_allow_only_one_winner_per_round_expected_summary.csv +++ b/src/test/resources/network/brightspots/rcv/test_data/test_set_allow_only_one_winner_per_round/test_set_allow_only_one_winner_per_round_expected_summary.csv @@ -18,15 +18,16 @@ Number of Undervotes (No Rankings),0 Rounds,Round 1 Votes,% of vote,transfer,Round 2 Votes,% of vote,transfer,Round 3 Votes,% of vote,transfer,Round 4 Votes,% of vote,transfer Eliminated,,,,,,,,,,,, Elected,A,,,B,,,C,,,,, -A,3,33.33%,-0.7499,2.2501,25.0%,0.0000,2.2501,25.0%,0.0000,2.2501,25.42%,0 -B,3,33.33%,0.7497,3.7497,41.66%,-1.4996,2.2501,25.0%,0.0000,2.2501,25.42%,0 -C,3,33.33%,0,3,33.33%,1.4994,4.4994,49.99%,-2.2493,2.2501,25.42%,0 -D,0,0.0%,0,0,0.0%,0,0,0.0%,2.0994,2.0994,23.72%,0 -Active Ballots,9,,,8.9998,,,8.9996,,,8.8497,, +A,3,33.33%,-0.7499,2.2501,25.0%,0.0000,2.2501,25.0%,0.0000,2.2501,25.0%,0 +B,3,33.33%,0.7497,3.7497,41.66%,-1.4996,2.2501,25.0%,0.0000,2.2501,25.0%,0 +C,3,33.33%,0,3,33.33%,1.4994,4.4994,49.99%,-2.2493,2.2501,25.0%,0 +D,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 +Active Ballots,9,,,8.9998,,,8.9996,,,8.9994,, Current Round Threshold,2.2501,,,2.2501,,,2.2501,,,2.2501,, Inactive Ballots by Overvotes,0,,0,0,,0,0,,0,0,,0 Inactive Ballots by Skipped Rankings,0,,0,0,,0,0,,0,0,,0 -Inactive Ballots by Exhausted Choices,0,,0,0,,0,0,,0.1497,0.1497,,0 +Inactive Ballots by Exhausted Choices,0,,0,0,,0,0,,0,0,,0 Inactive Ballots by Repeated Rankings,0,,0,0,,0,0,,0,0,,0 -Inactive Ballots Total,0,,0,0,,0,0,,0.1497,0.1497,,0 +Inactive Ballots Total,0,,0,0,,0,0,,0,0,,0 Residual surplus,0,,,0.0002,,,0.0004,,,0.0006,, +Final Round Surplus,,,,,,,,,,2.2491,, diff --git a/src/test/resources/network/brightspots/rcv/test_data/test_set_allow_only_one_winner_per_round/test_set_allow_only_one_winner_per_round_expected_summary.json b/src/test/resources/network/brightspots/rcv/test_data/test_set_allow_only_one_winner_per_round/test_set_allow_only_one_winner_per_round_expected_summary.json index 4032b59f..fed63d99 100644 --- a/src/test/resources/network/brightspots/rcv/test_data/test_set_allow_only_one_winner_per_round/test_set_allow_only_one_winner_per_round_expected_summary.json +++ b/src/test/resources/network/brightspots/rcv/test_data/test_set_allow_only_one_winner_per_round/test_set_allow_only_one_winner_per_round_expected_summary.json @@ -68,15 +68,15 @@ "tallyResults" : [ { "elected" : "C", "transfers" : { - "D" : "2.0994", - "exhausted" : "0.1497", + "exhausted" : "2.2491", "residual surplus" : "0.0002" } } ], "threshold" : "2.2501" }, { "inactiveBallots" : { - "exhaustedChoices" : "0.1497", + "exhaustedChoices" : "0", + "finalRoundSurplus" : "2.2491", "overvotes" : "0", "repeatedRankings" : "0", "skippedRankings" : "0" @@ -86,7 +86,7 @@ "A" : "2.2501", "B" : "2.2501", "C" : "2.2501", - "D" : "2.0994" + "D" : "0" }, "tallyResults" : [ ], "threshold" : "2.2501" @@ -98,4 +98,4 @@ "totalNumBallots" : "9", "undervotes" : 0 } -} \ No newline at end of file +} diff --git a/src/test/resources/network/brightspots/rcv/test_data/test_set_multi_winner_fractional_threshold/test_set_multi_winner_fractional_threshold_expected_summary.csv b/src/test/resources/network/brightspots/rcv/test_data/test_set_multi_winner_fractional_threshold/test_set_multi_winner_fractional_threshold_expected_summary.csv index b378708c..257b5afa 100644 --- a/src/test/resources/network/brightspots/rcv/test_data/test_set_multi_winner_fractional_threshold/test_set_multi_winner_fractional_threshold_expected_summary.csv +++ b/src/test/resources/network/brightspots/rcv/test_data/test_set_multi_winner_fractional_threshold/test_set_multi_winner_fractional_threshold_expected_summary.csv @@ -18,17 +18,18 @@ Number of Undervotes (No Rankings),0 Rounds,Round 1 Votes,% of vote,transfer,Round 2 Votes,% of vote,transfer,Round 3 Votes,% of vote,transfer,Round 4 Votes,% of vote,transfer,Round 5 Votes,% of vote,transfer,Round 6 Votes,% of vote,transfer Eliminated,Candidate D Name,,,,,,Candidate F Name,,,Candidate E Name,,,,,,,, Elected,,,,Candidate C Name,,,,,,,,,Candidate A Name; Candidate B Name,,,,, -Candidate C Name,7,24.13%,1,8,28.57%,-0.7499,7.2501,25.89%,0.0000,7.2501,25.89%,0.0000,7.2501,26.24%,0.0000,7.2501,33.33%,0 -Candidate A Name,6,20.68%,0,6,21.42%,0,6,21.42%,1,7,25.0%,3.2811,10.2811,37.21%,-3.0310,7.2501,33.33%,0 -Candidate E Name,6,20.68%,0,6,21.42%,0.6559,6.6559,23.77%,0.0000,6.6559,23.77%,-6.6559,0,0.0%,0,0,0.0%,0 -Candidate B Name,5,17.24%,0,5,17.85%,0,5,17.85%,2.0937,7.0937,25.33%,3.0000,10.0937,36.53%,-2.8436,7.2501,33.33%,0 -Candidate F Name,3,10.34%,0,3,10.71%,0.0937,3.0937,11.04%,-3.0937,0,0.0%,0,0,0.0%,0,0,0.0%,0 +Candidate C Name,7,24.13%,1,8,27.58%,-0.7499,7.2501,25.0%,0.0000,7.2501,25.0%,0.0000,7.2501,25.0%,0.0000,7.2501,25.0%,0 +Candidate A Name,6,20.68%,0,6,20.68%,0,6,20.68%,1,7,24.13%,3.2811,10.2811,35.45%,-3.0310,7.2501,25.0%,0 +Candidate E Name,6,20.68%,0,6,20.68%,0.6559,6.6559,22.95%,0.0000,6.6559,22.95%,-6.6559,0,0.0%,0,0,0.0%,0 +Candidate B Name,5,17.24%,0,5,17.24%,0,5,17.24%,2.0937,7.0937,24.46%,3.0000,10.0937,34.8%,-2.8436,7.2501,25.0%,0 +Candidate F Name,3,10.34%,0,3,10.34%,0.0937,3.0937,10.66%,-3.0937,0,0.0%,0,0,0.0%,0,0,0.0%,0 Candidate D Name,2,6.89%,-2,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 -Active Ballots,29,,,28,,,27.9997,,,27.9997,,,27.6249,,,21.7503,, +Active Ballots,29,,,28,,,27.9997,,,27.9997,,,27.6249,,,27.6244,, Current Round Threshold,7.2501,,,7.2501,,,7.2501,,,7.2501,,,7.2501,,,7.2501,, Inactive Ballots by Overvotes,0,,0,0,,0,0,,0,0,,0,0,,0,0,,0 -Inactive Ballots by Skipped Rankings,1,,1,2,,0,2,,0,2,,0.1874,2.1874,,0.8582,3.0456,,0 -Inactive Ballots by Exhausted Choices,0,,0,0,,0,0,,0,0,,0.1874,0.1874,,5.0159,5.2033,,0 +Inactive Ballots by Skipped Rankings,1,,1,2,,0,2,,0,2,,0.1874,2.1874,,0.0000,2.1874,,0 +Inactive Ballots by Exhausted Choices,0,,0,0,,0,0,,0,0,,0.1874,0.1874,,0.0000,0.1874,,0 Inactive Ballots by Repeated Rankings,0,,0,0,,0,0,,0,0,,0,0,,0,0,,0 -Inactive Ballots Total,1,,1,2,,0,2,,0,2,,0.3748,2.3748,,5.8741,8.2489,,0 +Inactive Ballots Total,1,,1,2,,0,2,,0,2,,0.3748,2.3748,,0.0000,2.3748,,0 Residual surplus,0,,,0,,,0.0003,,,0.0003,,,0.0003,,,0.0008,, +Final Round Surplus,,,,,,,,,,,,,,,,5.8741,, diff --git a/src/test/resources/network/brightspots/rcv/test_data/test_set_multi_winner_fractional_threshold/test_set_multi_winner_fractional_threshold_expected_summary.json b/src/test/resources/network/brightspots/rcv/test_data/test_set_multi_winner_fractional_threshold/test_set_multi_winner_fractional_threshold_expected_summary.json index 021bbb99..982d420c 100644 --- a/src/test/resources/network/brightspots/rcv/test_data/test_set_multi_winner_fractional_threshold/test_set_multi_winner_fractional_threshold_expected_summary.json +++ b/src/test/resources/network/brightspots/rcv/test_data/test_set_multi_winner_fractional_threshold/test_set_multi_winner_fractional_threshold_expected_summary.json @@ -130,10 +130,11 @@ "threshold" : "7.2501" }, { "inactiveBallots" : { - "exhaustedChoices" : "5.2033", + "exhaustedChoices" : "0.1874", + "finalRoundSurplus" : "5.8741", "overvotes" : "0", "repeatedRankings" : "0", - "skippedRankings" : "3.0456" + "skippedRankings" : "2.1874" }, "round" : 6, "tally" : { diff --git a/src/test/resources/network/brightspots/rcv/test_data/test_set_multi_winner_whole_threshold/test_set_multi_winner_whole_threshold_expected_summary.csv b/src/test/resources/network/brightspots/rcv/test_data/test_set_multi_winner_whole_threshold/test_set_multi_winner_whole_threshold_expected_summary.csv index e3d10f20..b90c40da 100644 --- a/src/test/resources/network/brightspots/rcv/test_data/test_set_multi_winner_whole_threshold/test_set_multi_winner_whole_threshold_expected_summary.csv +++ b/src/test/resources/network/brightspots/rcv/test_data/test_set_multi_winner_whole_threshold/test_set_multi_winner_whole_threshold_expected_summary.csv @@ -18,17 +18,18 @@ Number of Undervotes (No Rankings),0 Rounds,Round 1 Votes,% of vote,transfer,Round 2 Votes,% of vote,transfer,Round 3 Votes,% of vote,transfer,Round 4 Votes,% of vote,transfer,Round 5 Votes,% of vote,transfer,Round 6 Votes,% of vote,transfer Eliminated,,,,Candidate D Name,,,Candidate F Name,,,Candidate E Name,,,,,,,, Elected,Candidate C Name,,,,,,,,,,,,Candidate A Name; Candidate B Name,,,,, -Candidate C Name,9,31.03%,-1,8,27.58%,0,8,28.57%,0,8,28.57%,0,8,29.03%,0,8,33.33%,0 -Candidate A Name,6,20.68%,0,6,20.68%,0,6,21.42%,1.1111,7.1111,25.39%,3.2222,10.3333,37.49%,-2.3333,8,33.33%,0 -Candidate B Name,5,17.24%,0,5,17.24%,0,5,17.85%,2.1111,7.1111,25.39%,2.1111,9.2222,33.46%,-1.2222,8,33.33%,0 -Candidate E Name,4,13.79%,0.7777,4.7777,16.47%,1.0000,5.7777,20.63%,0.0000,5.7777,20.63%,-5.7777,0,0.0%,0,0,0.0%,0 -Candidate F Name,3,10.34%,0.1111,3.1111,10.72%,0.1111,3.2222,11.5%,-3.2222,0,0.0%,0,0,0.0%,0,0,0.0%,0 +Candidate C Name,9,31.03%,-1,8,27.58%,0,8,27.58%,0,8,27.58%,0,8,27.58%,0,8,27.58%,0 +Candidate A Name,6,20.68%,0,6,20.68%,0,6,20.68%,1.1111,7.1111,24.52%,3.2222,10.3333,35.63%,-2.3333,8,27.58%,0 +Candidate B Name,5,17.24%,0,5,17.24%,0,5,17.24%,2.1111,7.1111,24.52%,2.1111,9.2222,31.8%,-1.2222,8,27.58%,0 +Candidate E Name,4,13.79%,0.7777,4.7777,16.47%,1.0000,5.7777,19.92%,0.0000,5.7777,19.92%,-5.7777,0,0.0%,0,0,0.0%,0 +Candidate F Name,3,10.34%,0.1111,3.1111,10.72%,0.1111,3.2222,11.11%,-3.2222,0,0.0%,0,0,0.0%,0,0,0.0%,0 Candidate D Name,2,6.89%,0.1111,2.1111,7.27%,-2.1111,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 -Active Ballots,29,,,28.9999,,,27.9999,,,27.9999,,,27.5555,,,24.0000,, +Active Ballots,29,,,28.9999,,,27.9999,,,27.9999,,,27.5555,,,27.5549,, Current Round Threshold,8,,,8,,,8,,,8,,,8,,,8,, Inactive Ballots by Overvotes,0,,0,0,,0,0,,0,0,,0,0,,0,0,,0 -Inactive Ballots by Skipped Rankings,1,,0,1,,1,2,,0,2,,0.2222,2.2222,,0.4908,2.7130,,0 -Inactive Ballots by Exhausted Choices,0,,0,0,,0,0,,0,0,,0.2222,0.2222,,3.0641,3.2863,,0 +Inactive Ballots by Skipped Rankings,1,,0,1,,1,2,,0,2,,0.2222,2.2222,,0.0000,2.2222,,0 +Inactive Ballots by Exhausted Choices,0,,0,0,,0,0,,0,0,,0.2222,0.2222,,0.0000,0.2222,,0 Inactive Ballots by Repeated Rankings,0,,0,0,,0,0,,0,0,,0,0,,0,0,,0 -Inactive Ballots Total,1,,0,1,,1,2,,0,2,,0.4444,2.4444,,3.5549,5.9993,,0 +Inactive Ballots Total,1,,0,1,,1,2,,0,2,,0.4444,2.4444,,0.0000,2.4444,,0 Residual surplus,0,,,0.0001,,,0.0001,,,0.0001,,,0.0001,,,0.0007,, +Final Round Surplus,,,,,,,,,,,,,,,,3.5549,, diff --git a/src/test/resources/network/brightspots/rcv/test_data/test_set_multi_winner_whole_threshold/test_set_multi_winner_whole_threshold_expected_summary.json b/src/test/resources/network/brightspots/rcv/test_data/test_set_multi_winner_whole_threshold/test_set_multi_winner_whole_threshold_expected_summary.json index 354f47a4..d8171b20 100644 --- a/src/test/resources/network/brightspots/rcv/test_data/test_set_multi_winner_whole_threshold/test_set_multi_winner_whole_threshold_expected_summary.json +++ b/src/test/resources/network/brightspots/rcv/test_data/test_set_multi_winner_whole_threshold/test_set_multi_winner_whole_threshold_expected_summary.json @@ -133,10 +133,11 @@ "threshold" : "8" }, { "inactiveBallots" : { - "exhaustedChoices" : "3.2863", + "exhaustedChoices" : "0.2222", + "finalRoundSurplus" : "3.5549", "overvotes" : "0", "repeatedRankings" : "0", - "skippedRankings" : "2.7130" + "skippedRankings" : "2.2222" }, "round" : 6, "tally" : {