From 4445a3cd3ef8f234e2872a580b8450320de6749d Mon Sep 17 00:00:00 2001 From: Armin Samii Date: Wed, 10 Jul 2024 12:46:02 -0700 Subject: [PATCH 1/7] Updates to the per-slice CSV --- .../brightspots/rcv/ResultsWriter.java | 66 ++++++++++++------- .../network/brightspots/rcv/Tabulator.java | 5 +- ...MINNEAPOLIS_W-13_P-09_precinct_summary.csv | 42 ++++++------ ..._MINNEAPOLIS_W-1_P-01_precinct_summary.csv | 42 ++++++------ ...MINNEAPOLIS_W-13_P-13_precinct_summary.csv | 18 ++--- ..._MINNEAPOLIS_W-1_P-01_precinct_summary.csv | 20 +++--- ...MINNEAPOLIS_W-13_P-13_precinct_summary.csv | 12 ++-- ...d_missing_precinct_id_precinct_summary.csv | 12 ++-- ..._MINNEAPOLIS_W-1_P-02_precinct_summary.csv | 22 ++++--- 9 files changed, 136 insertions(+), 103 deletions(-) diff --git a/src/main/java/network/brightspots/rcv/ResultsWriter.java b/src/main/java/network/brightspots/rcv/ResultsWriter.java index 9c7386597..cb1ce50b6 100644 --- a/src/main/java/network/brightspots/rcv/ResultsWriter.java +++ b/src/main/java/network/brightspots/rcv/ResultsWriter.java @@ -258,9 +258,11 @@ ResultsWriter setTimestampString(String timestampString) { // creates summary files for the votes split by a TabulateBySlice // param: roundTalliesBySlice is map from a slice type to the round-by-round vote tallies // param: tallyTransfersBySlice is a map from a slice type to tally transfers for that slice + // param: candidateOrder is to allow a consistent ordering of candidates, including across slices void generateBySliceSummaryFiles( Tabulator.BreakdownBySlice roundTalliesBySlice, - Tabulator.BreakdownBySlice tallyTransfersBySlice) + Tabulator.BreakdownBySlice tallyTransfersBySlice, + List candidateOrder) throws IOException { for (ContestConfig.TabulateBySlice slice : config.enabledSlices()) { Set filenames = new HashSet<>(); @@ -271,7 +273,7 @@ void generateBySliceSummaryFiles( String sliceFileString = getFileStringForSlice(slice, sliceId, filenames); String outputPath = getOutputFilePathFromInstance( String.format("%s_summary", sliceFileString)); - generateSummarySpreadsheet(roundTallies, slice, sliceId, outputPath); + generateSummarySpreadsheet(roundTallies, candidateOrder, slice, sliceId, outputPath); generateSummaryJson(roundTallies, tallyTransfers, slice, sliceId, outputPath); } } @@ -279,12 +281,16 @@ void generateBySliceSummaryFiles( // create a summary spreadsheet .csv file // param: roundTallies is the round-by-count count of votes per candidate + // param: candidateOrder is to allow a consistent ordering of candidates, including across slices // param: slice indicates which type of slice we're reporting results for (null means all) // param: sliceId indicates the specific slice ID we're reporting results for (null means all) // param: outputPath is the path to the output file, minus its extension private void generateSummarySpreadsheet( - RoundTallies roundTallies, TabulateBySlice slice, String sliceId, String outputPath) - throws IOException { + RoundTallies roundTallies, + List candidateOrder, + TabulateBySlice slice, + String sliceId, + String outputPath) throws IOException { AuditableFile csvFile = new AuditableFile(outputPath + ".csv"); Logger.info("Generating summary spreadsheet: %s...", csvFile.getAbsolutePath()); @@ -310,16 +316,11 @@ private void generateSummarySpreadsheet( } csvPrinter.println(); - // actions don't make sense in individual by-slice results - if (isNullOrBlank(sliceId)) { - addActionRows(csvPrinter); - } - - // Get all candidates sorted by their first round tally. This determines the display order. - List sortedCandidates = roundTallies.get(1).getSortedCandidatesByTally(); + boolean isSlice = !isNullOrBlank(sliceId); + addActionRows(csvPrinter, isSlice); // For each candidate: for each round: output total votes - for (String candidate : sortedCandidates) { + for (String candidate : candidateOrder) { String candidateDisplayName = config.getNameForCandidate(candidate); csvPrinter.print(candidateDisplayName); for (int round = 1; round <= numRounds; round++) { @@ -366,13 +367,15 @@ private void generateSummarySpreadsheet( } csvPrinter.println(); - csvPrinter.print("Current Round Threshold"); - for (int round = 1; round <= numRounds; round++) { - csvPrinter.print(roundTallies.get(round).getWinningThreshold()); - csvPrinter.print(""); - csvPrinter.print(""); + if (!isSlice) { + csvPrinter.print("Current Round Threshold"); + for (int round = 1; round <= numRounds; round++) { + csvPrinter.print(roundTallies.get(round).getWinningThreshold()); + csvPrinter.print(""); + csvPrinter.print(""); + } + csvPrinter.println(); } - csvPrinter.println(); Pair[] statusesToPrint = new Pair[] { @@ -447,6 +450,13 @@ private void generateSummarySpreadsheet( csvPrinter.println(); } + if (isSlice) { + csvPrinter.println(); + csvPrinter.print(String.format("*Elect/Eliminate decisions are from the full contest. " + + "All other results on this report are at the %s level.", slice.toLowerString())); + csvPrinter.println(); + } + try { csvPrinter.flush(); csvPrinter.close(); @@ -459,11 +469,11 @@ private void generateSummarySpreadsheet( } // "action" rows describe which candidates were eliminated or elected - private void addActionRows(CSVPrinter csvPrinter) throws IOException { - csvPrinter.print("Eliminated"); + private void addActionRows(CSVPrinter csvPrinter, boolean withAsterisk) throws IOException { + csvPrinter.print(withAsterisk ? "Eliminated*" : "Eliminated"); printActionSummary(csvPrinter, roundToEliminatedCandidates); - csvPrinter.print("Elected"); + csvPrinter.print(withAsterisk ? "Elected*" : "Elected"); printActionSummary(csvPrinter, roundToWinningCandidates); } @@ -533,19 +543,27 @@ private void addContestInformationRows(CSVPrinter csvPrinter, winners.add(config.getNameForCandidate(candidateName)); } } + csvPrinter.printRecord("Winner(s)", String.join(", ", winners)); - csvPrinter.printRecord("Final Threshold", winningThreshold); + if (!isNullOrBlank(sliceId)) { + // Only silces print the slice information csvPrinter.printRecord(slice, sliceId); + } else { + // Only non-silces print threshold information + csvPrinter.printRecord("Final Threshold", winningThreshold); } + csvPrinter.println(); } // creates a summary spreadsheet and JSON for the full contest (as opposed to a specific slice) void generateOverallSummaryFiles( - RoundTallies roundTallies, TallyTransfers tallyTransfers) throws IOException { + RoundTallies roundTallies, + TallyTransfers tallyTransfers, + List candidateOrder) throws IOException { String outputPath = getOutputFilePathFromInstance("summary"); - generateSummarySpreadsheet(roundTallies, null, null, outputPath); + generateSummarySpreadsheet(roundTallies, candidateOrder, null, null, outputPath); generateSummaryJson(roundTallies, tallyTransfers, null, null, outputPath); } diff --git a/src/main/java/network/brightspots/rcv/Tabulator.java b/src/main/java/network/brightspots/rcv/Tabulator.java index 907dbddba..e72f705c5 100644 --- a/src/main/java/network/brightspots/rcv/Tabulator.java +++ b/src/main/java/network/brightspots/rcv/Tabulator.java @@ -805,8 +805,9 @@ void generateSummaryFiles(String timestamp) throws IOException { .setSliceIds(sliceIds) .setRoundToResidualSurplus(roundToResidualSurplus); - writer.generateOverallSummaryFiles(roundTallies, tallyTransfers); - writer.generateBySliceSummaryFiles(roundTalliesBySlices, tallyTransfersBySlice); + List candidateOrder = roundTallies.get(1).getSortedCandidatesByTally(); + writer.generateOverallSummaryFiles(roundTallies, tallyTransfers, candidateOrder); + writer.generateBySliceSummaryFiles(roundTalliesBySlices, tallyTransfersBySlice, candidateOrder); if (config.isGenerateCdfJsonEnabled()) { try { diff --git a/src/test/resources/network/brightspots/rcv/test_data/2013_minneapolis_mayor/2013_minneapolis_mayor_expected_MINNEAPOLIS_W-13_P-09_precinct_summary.csv b/src/test/resources/network/brightspots/rcv/test_data/2013_minneapolis_mayor/2013_minneapolis_mayor_expected_MINNEAPOLIS_W-13_P-09_precinct_summary.csv index 50702df6b..7dab91954 100644 --- a/src/test/resources/network/brightspots/rcv/test_data/2013_minneapolis_mayor/2013_minneapolis_mayor_expected_MINNEAPOLIS_W-13_P-09_precinct_summary.csv +++ b/src/test/resources/network/brightspots/rcv/test_data/2013_minneapolis_mayor/2013_minneapolis_mayor_expected_MINNEAPOLIS_W-13_P-09_precinct_summary.csv @@ -7,7 +7,6 @@ Jurisdiction,Minneapolis Office,Mayor Date, Winner(s),BETSY HODGES -Final Threshold,31898 Precinct,MINNEAPOLIS W-13 P-09 Contest Summary @@ -17,46 +16,49 @@ Total Number of Ballots,985 Number of Undervotes,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,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,Round 12 Votes,% of vote,transfer,Round 13 Votes,% of vote,transfer,Round 14 Votes,% of vote,transfer,Round 15 Votes,% of vote,transfer,Round 16 Votes,% of vote,transfer,Round 17 Votes,% of vote,transfer,Round 18 Votes,% of vote,transfer,Round 19 Votes,% of vote,transfer,Round 20 Votes,% of vote,transfer,Round 21 Votes,% of vote,transfer,Round 22 Votes,% of vote,transfer,Round 23 Votes,% of vote,transfer,Round 24 Votes,% of vote,transfer,Round 25 Votes,% of vote,transfer,Round 26 Votes,% of vote,transfer,Round 27 Votes,% of vote,transfer,Round 28 Votes,% of vote,transfer,Round 29 Votes,% of vote,transfer,Round 30 Votes,% of vote,transfer,Round 31 Votes,% of vote,transfer,Round 32 Votes,% of vote,transfer,Round 33 Votes,% of vote,transfer +Eliminated*,Undeclared Write-ins,,,JOHN CHARLES WILSON,,,CYD GORMAN,,,BOB AGAIN CARNEY JR,,,RAHN V. WORKCUFF,,,"JAMES JIMMY L. STROUD, JR.",,,EDMUND BERNARD BRUYERE,,,JOHN LESLIE HARTWIG,,,BILL KAHN,,,JOSHUA REA,,,MERRILL ANDERSON,,,GREGG A. IVERSON,,,TROY BENJEGERDES,,,NEAL BAXTER,,,JEFFREY ALAN WAGNER,,,CHRISTOPHER ROBIN ZIMMERMAN,,,KURTIS W. HANNA,,,MIKE GOULD,,,JAYMIE KELLY,,,TONY LANE,,,CHRISTOPHER CLARK,,,CAPTAIN JACK SPARROW,,,ABDUL M RAHAMAN THE ROCK,,,ALICIA K. BENNETT,,,JAMES EVERETT,,,OLE SAVIOR,,,DOUG MANN,,,MARK V ANDERSON,,,STEPHANIE WOODRUFF,,,DAN COHEN,,,JACKIE CHERRYHOMES; BOB FINE,,,DON SAMUELS; CAM WINTON,,,,, +Elected*,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,BETSY HODGES,, BETSY HODGES,359,36.44%,0,359,36.44%,0,359,36.44%,0,359,36.48%,0,359,36.48%,0,359,36.48%,0,359,36.48%,0,359,36.48%,0,359,36.48%,0,359,36.52%,0,359,36.52%,0,359,36.59%,0,359,36.59%,0,359,36.59%,0,359,36.59%,0,359,36.59%,0,359,36.59%,0,359,36.59%,0,359,36.59%,0,359,36.63%,2,361,36.87%,0,361,36.87%,0,361,36.87%,0,361,36.87%,0,361,36.87%,0,361,36.87%,0,361,37.13%,0,361,37.13%,1,362,37.35%,2,364,37.6%,2,366,38.4%,23,389,41.33%,69,458,57.39%,0 MARK ANDREW,272,27.61%,0,272,27.61%,0,272,27.61%,0,272,27.64%,0,272,27.64%,0,272,27.64%,0,272,27.64%,0,272,27.64%,0,272,27.64%,0,272,27.67%,0,272,27.67%,0,272,27.72%,0,272,27.72%,0,272,27.72%,1,273,27.82%,1,274,27.93%,0,274,27.93%,0,274,27.93%,0,274,27.93%,0,274,27.95%,1,275,28.08%,0,275,28.08%,0,275,28.08%,0,275,28.08%,0,275,28.08%,0,275,28.08%,0,275,28.29%,0,275,28.29%,2,277,28.58%,3,280,28.92%,4,284,29.8%,18,302,32.09%,38,340,42.6%,0 -CAM WINTON,150,15.22%,0,150,15.22%,0,150,15.22%,0,150,15.24%,0,150,15.24%,0,150,15.24%,0,150,15.24%,0,150,15.24%,0,150,15.24%,0,150,15.25%,0,150,15.25%,1,151,15.39%,0,151,15.39%,0,151,15.39%,0,151,15.39%,0,151,15.39%,0,151,15.39%,0,151,15.39%,0,151,15.39%,0,151,15.4%,0,151,15.42%,1,152,15.52%,1,153,15.62%,0,153,15.62%,0,153,15.62%,0,153,15.62%,2,155,15.94%,1,156,16.04%,1,157,16.2%,1,158,16.32%,8,166,17.41%,6,172,18.27%,-172,0,0.0%,0 DON SAMUELS,69,7.0%,0,69,7.0%,0,69,7.0%,0,69,7.01%,0,69,7.01%,0,69,7.01%,0,69,7.01%,0,69,7.01%,0,69,7.01%,0,69,7.01%,0,69,7.01%,0,69,7.03%,0,69,7.03%,0,69,7.03%,0,69,7.03%,0,69,7.03%,0,69,7.03%,0,69,7.03%,0,69,7.03%,0,69,7.04%,0,69,7.04%,0,69,7.04%,0,69,7.04%,0,69,7.04%,0,69,7.04%,0,69,7.04%,0,69,7.09%,0,69,7.09%,0,69,7.12%,2,71,7.33%,0,71,7.45%,7,78,8.28%,-78,0,0.0%,0 +CAM WINTON,150,15.22%,0,150,15.22%,0,150,15.22%,0,150,15.24%,0,150,15.24%,0,150,15.24%,0,150,15.24%,0,150,15.24%,0,150,15.24%,0,150,15.25%,0,150,15.25%,1,151,15.39%,0,151,15.39%,0,151,15.39%,0,151,15.39%,0,151,15.39%,0,151,15.39%,0,151,15.39%,0,151,15.39%,0,151,15.4%,0,151,15.42%,1,152,15.52%,1,153,15.62%,0,153,15.62%,0,153,15.62%,0,153,15.62%,2,155,15.94%,1,156,16.04%,1,157,16.2%,1,158,16.32%,8,166,17.41%,6,172,18.27%,-172,0,0.0%,0 JACKIE CHERRYHOMES,38,3.85%,0,38,3.85%,0,38,3.85%,0,38,3.86%,0,38,3.86%,0,38,3.86%,0,38,3.86%,0,38,3.86%,0,38,3.86%,0,38,3.86%,0,38,3.86%,0,38,3.87%,0,38,3.87%,0,38,3.87%,0,38,3.87%,0,38,3.87%,0,38,3.87%,0,38,3.87%,0,38,3.87%,0,38,3.87%,0,38,3.88%,0,38,3.88%,0,38,3.88%,0,38,3.88%,0,38,3.88%,1,39,3.98%,0,39,4.01%,0,39,4.01%,0,39,4.02%,0,39,4.02%,0,39,4.09%,-39,0,0.0%,0,0,0.0%,0 BOB FINE,26,2.63%,0,26,2.63%,0,26,2.63%,0,26,2.64%,0,26,2.64%,0,26,2.64%,0,26,2.64%,0,26,2.64%,0,26,2.64%,0,26,2.64%,0,26,2.64%,0,26,2.65%,0,26,2.65%,0,26,2.65%,0,26,2.65%,0,26,2.65%,0,26,2.65%,0,26,2.65%,0,26,2.65%,0,26,2.65%,0,26,2.65%,0,26,2.65%,0,26,2.65%,0,26,2.65%,0,26,2.65%,0,26,2.65%,0,26,2.67%,0,26,2.67%,0,26,2.68%,0,26,2.68%,1,27,2.83%,-27,0,0.0%,0,0,0.0%,0 DAN COHEN,25,2.53%,0,25,2.53%,0,25,2.53%,0,25,2.54%,0,25,2.54%,0,25,2.54%,0,25,2.54%,0,25,2.54%,0,25,2.54%,0,25,2.54%,0,25,2.54%,0,25,2.54%,0,25,2.54%,0,25,2.54%,0,25,2.54%,0,25,2.54%,0,25,2.54%,0,25,2.54%,0,25,2.54%,0,25,2.55%,0,25,2.55%,1,26,2.65%,0,26,2.65%,0,26,2.65%,0,26,2.65%,0,26,2.65%,2,28,2.88%,2,30,3.08%,0,30,3.09%,0,30,3.09%,-30,0,0.0%,0,0,0.0%,0,0,0.0%,0 STEPHANIE WOODRUFF,8,0.81%,0,8,0.81%,0,8,0.81%,0,8,0.81%,0,8,0.81%,0,8,0.81%,0,8,0.81%,0,8,0.81%,0,8,0.81%,0,8,0.81%,0,8,0.81%,0,8,0.81%,0,8,0.81%,0,8,0.81%,0,8,0.81%,0,8,0.81%,0,8,0.81%,0,8,0.81%,0,8,0.81%,0,8,0.81%,0,8,0.81%,1,9,0.91%,0,9,0.91%,0,9,0.91%,0,9,0.91%,0,9,0.91%,0,9,0.92%,0,9,0.92%,0,9,0.92%,-9,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 -OLE SAVIOR,8,0.81%,0,8,0.81%,0,8,0.81%,0,8,0.81%,0,8,0.81%,0,8,0.81%,0,8,0.81%,0,8,0.81%,1,9,0.91%,0,9,0.91%,0,9,0.91%,0,9,0.91%,0,9,0.91%,0,9,0.91%,0,9,0.91%,0,9,0.91%,0,9,0.91%,0,9,0.91%,0,9,0.91%,0,9,0.91%,0,9,0.91%,2,11,1.12%,0,11,1.12%,0,11,1.12%,0,11,1.12%,0,11,1.12%,-11,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 MARK V ANDERSON,5,0.5%,0,5,0.5%,0,5,0.5%,0,5,0.5%,0,5,0.5%,0,5,0.5%,0,5,0.5%,0,5,0.5%,0,5,0.5%,0,5,0.5%,0,5,0.5%,0,5,0.5%,0,5,0.5%,0,5,0.5%,0,5,0.5%,1,6,0.61%,0,6,0.61%,0,6,0.61%,0,6,0.61%,0,6,0.61%,0,6,0.61%,1,7,0.71%,0,7,0.71%,0,7,0.71%,0,7,0.71%,0,7,0.71%,0,7,0.72%,0,7,0.72%,-7,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 -CHRISTOPHER ROBIN ZIMMERMAN,4,0.4%,0,4,0.4%,0,4,0.4%,0,4,0.4%,0,4,0.4%,0,4,0.4%,0,4,0.4%,0,4,0.4%,0,4,0.4%,0,4,0.4%,0,4,0.4%,0,4,0.4%,0,4,0.4%,0,4,0.4%,0,4,0.4%,0,4,0.4%,-4,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,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 -TONY LANE,3,0.3%,0,3,0.3%,0,3,0.3%,0,3,0.3%,0,3,0.3%,0,3,0.3%,0,3,0.3%,0,3,0.3%,0,3,0.3%,0,3,0.3%,0,3,0.3%,0,3,0.3%,0,3,0.3%,1,4,0.4%,0,4,0.4%,0,4,0.4%,0,4,0.4%,0,4,0.4%,0,4,0.4%,0,4,0.4%,-4,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,0,0.0%,0,0,0.0%,0,0,0.0%,0 DOUG MANN,3,0.3%,0,3,0.3%,0,3,0.3%,0,3,0.3%,0,3,0.3%,0,3,0.3%,0,3,0.3%,0,3,0.3%,0,3,0.3%,0,3,0.3%,0,3,0.3%,0,3,0.3%,0,3,0.3%,0,3,0.3%,0,3,0.3%,0,3,0.3%,0,3,0.3%,0,3,0.3%,0,3,0.3%,0,3,0.3%,0,3,0.3%,0,3,0.3%,0,3,0.3%,0,3,0.3%,0,3,0.3%,0,3,0.3%,0,3,0.3%,-3,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 -MERRILL ANDERSON,3,0.3%,0,3,0.3%,0,3,0.3%,0,3,0.3%,0,3,0.3%,0,3,0.3%,0,3,0.3%,0,3,0.3%,0,3,0.3%,0,3,0.3%,0,3,0.3%,-3,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,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,0,0.0%,0,0,0.0%,0 +OLE SAVIOR,8,0.81%,0,8,0.81%,0,8,0.81%,0,8,0.81%,0,8,0.81%,0,8,0.81%,0,8,0.81%,0,8,0.81%,1,9,0.91%,0,9,0.91%,0,9,0.91%,0,9,0.91%,0,9,0.91%,0,9,0.91%,0,9,0.91%,0,9,0.91%,0,9,0.91%,0,9,0.91%,0,9,0.91%,0,9,0.91%,0,9,0.91%,2,11,1.12%,0,11,1.12%,0,11,1.12%,0,11,1.12%,0,11,1.12%,-11,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 +ALICIA K. BENNETT,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,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,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,0,0.0%,0,0,0.0%,0,0,0.0%,0 +ABDUL M RAHAMAN THE ROCK,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,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,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,0,0.0%,0,0,0.0%,0,0,0.0%,0 +JAMES EVERETT,1,0.1%,0,1,0.1%,0,1,0.1%,0,1,0.1%,0,1,0.1%,0,1,0.1%,0,1,0.1%,0,1,0.1%,0,1,0.1%,0,1,0.1%,0,1,0.1%,0,1,0.1%,0,1,0.1%,0,1,0.1%,0,1,0.1%,0,1,0.1%,0,1,0.1%,0,1,0.1%,0,1,0.1%,0,1,0.1%,0,1,0.1%,0,1,0.1%,0,1,0.1%,0,1,0.1%,0,1,0.1%,-1,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 +CAPTAIN JACK SPARROW,1,0.1%,0,1,0.1%,0,1,0.1%,0,1,0.1%,0,1,0.1%,0,1,0.1%,0,1,0.1%,0,1,0.1%,0,1,0.1%,0,1,0.1%,0,1,0.1%,0,1,0.1%,0,1,0.1%,0,1,0.1%,0,1,0.1%,0,1,0.1%,0,1,0.1%,0,1,0.1%,0,1,0.1%,0,1,0.1%,0,1,0.1%,0,1,0.1%,-1,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,0,0.0%,0 +TONY LANE,3,0.3%,0,3,0.3%,0,3,0.3%,0,3,0.3%,0,3,0.3%,0,3,0.3%,0,3,0.3%,0,3,0.3%,0,3,0.3%,0,3,0.3%,0,3,0.3%,0,3,0.3%,0,3,0.3%,1,4,0.4%,0,4,0.4%,0,4,0.4%,0,4,0.4%,0,4,0.4%,0,4,0.4%,0,4,0.4%,-4,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,0,0.0%,0,0,0.0%,0,0,0.0%,0 +MIKE GOULD,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,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,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,0,0.0%,0,0,0.0%,0,0,0.0%,0 +KURTIS W. HANNA,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,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,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,0,0.0%,0,0,0.0%,0,0,0.0%,0 +JAYMIE KELLY,1,0.1%,0,1,0.1%,0,1,0.1%,0,1,0.1%,0,1,0.1%,0,1,0.1%,0,1,0.1%,0,1,0.1%,0,1,0.1%,0,1,0.1%,0,1,0.1%,0,1,0.1%,0,1,0.1%,0,1,0.1%,0,1,0.1%,0,1,0.1%,0,1,0.1%,0,1,0.1%,0,1,0.1%,-1,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,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 CHRISTOPHER CLARK,2,0.2%,0,2,0.2%,0,2,0.2%,0,2,0.2%,0,2,0.2%,0,2,0.2%,0,2,0.2%,0,2,0.2%,0,2,0.2%,0,2,0.2%,0,2,0.2%,0,2,0.2%,0,2,0.2%,0,2,0.2%,0,2,0.2%,0,2,0.2%,4,6,0.61%,0,6,0.61%,0,6,0.61%,0,6,0.61%,0,6,0.61%,-6,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,0,0.0%,0,0,0.0%,0 -TROY BENJEGERDES,2,0.2%,0,2,0.2%,0,2,0.2%,0,2,0.2%,0,2,0.2%,0,2,0.2%,0,2,0.2%,0,2,0.2%,0,2,0.2%,0,2,0.2%,0,2,0.2%,0,2,0.2%,0,2,0.2%,-2,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,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 +CHRISTOPHER ROBIN ZIMMERMAN,4,0.4%,0,4,0.4%,0,4,0.4%,0,4,0.4%,0,4,0.4%,0,4,0.4%,0,4,0.4%,0,4,0.4%,0,4,0.4%,0,4,0.4%,0,4,0.4%,0,4,0.4%,0,4,0.4%,0,4,0.4%,0,4,0.4%,0,4,0.4%,-4,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,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 JEFFREY ALAN WAGNER,2,0.2%,0,2,0.2%,0,2,0.2%,0,2,0.2%,0,2,0.2%,0,2,0.2%,0,2,0.2%,0,2,0.2%,0,2,0.2%,0,2,0.2%,0,2,0.2%,0,2,0.2%,0,2,0.2%,0,2,0.2%,0,2,0.2%,-2,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,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 -JAMES EVERETT,1,0.1%,0,1,0.1%,0,1,0.1%,0,1,0.1%,0,1,0.1%,0,1,0.1%,0,1,0.1%,0,1,0.1%,0,1,0.1%,0,1,0.1%,0,1,0.1%,0,1,0.1%,0,1,0.1%,0,1,0.1%,0,1,0.1%,0,1,0.1%,0,1,0.1%,0,1,0.1%,0,1,0.1%,0,1,0.1%,0,1,0.1%,0,1,0.1%,0,1,0.1%,0,1,0.1%,0,1,0.1%,-1,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 +TROY BENJEGERDES,2,0.2%,0,2,0.2%,0,2,0.2%,0,2,0.2%,0,2,0.2%,0,2,0.2%,0,2,0.2%,0,2,0.2%,0,2,0.2%,0,2,0.2%,0,2,0.2%,0,2,0.2%,0,2,0.2%,-2,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,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 +GREGG A. IVERSON,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,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,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,0,0.0%,0,0,0.0%,0,0,0.0%,0 +NEAL BAXTER,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,0,0.0%,0,0,0.0%,0,0,0.0%,1,1,0.1%,-1,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,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 +MERRILL ANDERSON,3,0.3%,0,3,0.3%,0,3,0.3%,0,3,0.3%,0,3,0.3%,0,3,0.3%,0,3,0.3%,0,3,0.3%,0,3,0.3%,0,3,0.3%,0,3,0.3%,-3,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,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,0,0.0%,0,0,0.0%,0 +JOSHUA REA,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,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,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,0,0.0%,0,0,0.0%,0,0,0.0%,0 BILL KAHN,1,0.1%,0,1,0.1%,0,1,0.1%,0,1,0.1%,0,1,0.1%,0,1,0.1%,0,1,0.1%,0,1,0.1%,0,1,0.1%,-1,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,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,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 -CYD GORMAN,1,0.1%,0,1,0.1%,0,1,0.1%,-1,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,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,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 JOHN LESLIE HARTWIG,1,0.1%,0,1,0.1%,0,1,0.1%,0,1,0.1%,0,1,0.1%,0,1,0.1%,0,1,0.1%,0,1,0.1%,-1,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,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,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 -JAYMIE KELLY,1,0.1%,0,1,0.1%,0,1,0.1%,0,1,0.1%,0,1,0.1%,0,1,0.1%,0,1,0.1%,0,1,0.1%,0,1,0.1%,0,1,0.1%,0,1,0.1%,0,1,0.1%,0,1,0.1%,0,1,0.1%,0,1,0.1%,0,1,0.1%,0,1,0.1%,0,1,0.1%,0,1,0.1%,-1,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,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 -CAPTAIN JACK SPARROW,1,0.1%,0,1,0.1%,0,1,0.1%,0,1,0.1%,0,1,0.1%,0,1,0.1%,0,1,0.1%,0,1,0.1%,0,1,0.1%,0,1,0.1%,0,1,0.1%,0,1,0.1%,0,1,0.1%,0,1,0.1%,0,1,0.1%,0,1,0.1%,0,1,0.1%,0,1,0.1%,0,1,0.1%,0,1,0.1%,0,1,0.1%,0,1,0.1%,-1,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,0,0.0%,0 -KURTIS W. HANNA,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,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,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,0,0.0%,0,0,0.0%,0,0,0.0%,0 -ABDUL M RAHAMAN THE ROCK,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,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,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,0,0.0%,0,0,0.0%,0,0,0.0%,0 EDMUND BERNARD BRUYERE,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,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,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,0,0.0%,0,0,0.0%,0,0,0.0%,0 RAHN V. WORKCUFF,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,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,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,0,0.0%,0,0,0.0%,0,0,0.0%,0 -GREGG A. IVERSON,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,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,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,0,0.0%,0,0,0.0%,0,0,0.0%,0 -NEAL BAXTER,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,0,0.0%,0,0,0.0%,0,0,0.0%,1,1,0.1%,-1,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,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 +"JAMES JIMMY L. STROUD, JR.",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,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,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,0,0.0%,0,0,0.0%,0,0,0.0%,0 BOB AGAIN CARNEY JR,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,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,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,0,0.0%,0,0,0.0%,0,0,0.0%,0 -ALICIA K. BENNETT,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,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,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,0,0.0%,0,0,0.0%,0,0,0.0%,0 -MIKE GOULD,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,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,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,0,0.0%,0,0,0.0%,0,0,0.0%,0 +CYD GORMAN,1,0.1%,0,1,0.1%,0,1,0.1%,-1,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,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,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 JOHN CHARLES WILSON,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,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,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,0,0.0%,0,0,0.0%,0,0,0.0%,0 -JOSHUA REA,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,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,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,0,0.0%,0,0,0.0%,0,0,0.0%,0 -"JAMES JIMMY L. STROUD, JR.",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,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,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,0,0.0%,0,0,0.0%,0,0,0.0%,0 Undeclared Write-ins,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,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,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,0,0.0%,0,0,0.0%,0,0,0.0%,0 Active Ballots,985,,,985,,,985,,,984,,,984,,,984,,,984,,,984,,,984,,,983,,,983,,,981,,,981,,,981,,,981,,,981,,,981,,,981,,,981,,,980,,,979,,,979,,,979,,,979,,,979,,,979,,,972,,,972,,,969,,,968,,,953,,,941,,,798,, -Current Round Threshold,39657,,,39638,,,39635,,,39633,,,39627,,,39622,,,39614,,,39608,,,39599,,,39583,,,39568,,,39552,,,39533,,,39522,,,39502,,,39477,,,39462,,,39450,,,39414,,,39387,,,39359,,,39309,,,39247,,,39112,,,39041,,,38981,,,38726,,,38541,,,38312,,,38162,,,37796,,,36810,,,31898,, 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,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,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,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,0,,0,0,,0 Inactive Ballots by Exhausted Choices,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,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 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,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,0,,0,0,,0 Inactive Ballots Total,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,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 + +*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/2013_minneapolis_mayor/2013_minneapolis_mayor_expected_MINNEAPOLIS_W-1_P-01_precinct_summary.csv b/src/test/resources/network/brightspots/rcv/test_data/2013_minneapolis_mayor/2013_minneapolis_mayor_expected_MINNEAPOLIS_W-1_P-01_precinct_summary.csv index 60de8b1d0..ce448267c 100644 --- a/src/test/resources/network/brightspots/rcv/test_data/2013_minneapolis_mayor/2013_minneapolis_mayor_expected_MINNEAPOLIS_W-1_P-01_precinct_summary.csv +++ b/src/test/resources/network/brightspots/rcv/test_data/2013_minneapolis_mayor/2013_minneapolis_mayor_expected_MINNEAPOLIS_W-1_P-01_precinct_summary.csv @@ -7,7 +7,6 @@ Jurisdiction,Minneapolis Office,Mayor Date, Winner(s),BETSY HODGES -Final Threshold,31898 Precinct,MINNEAPOLIS W-1 P-01 Contest Summary @@ -17,46 +16,49 @@ Total Number of Ballots,517 Number of Undervotes,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,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,Round 12 Votes,% of vote,transfer,Round 13 Votes,% of vote,transfer,Round 14 Votes,% of vote,transfer,Round 15 Votes,% of vote,transfer,Round 16 Votes,% of vote,transfer,Round 17 Votes,% of vote,transfer,Round 18 Votes,% of vote,transfer,Round 19 Votes,% of vote,transfer,Round 20 Votes,% of vote,transfer,Round 21 Votes,% of vote,transfer,Round 22 Votes,% of vote,transfer,Round 23 Votes,% of vote,transfer,Round 24 Votes,% of vote,transfer,Round 25 Votes,% of vote,transfer,Round 26 Votes,% of vote,transfer,Round 27 Votes,% of vote,transfer,Round 28 Votes,% of vote,transfer,Round 29 Votes,% of vote,transfer,Round 30 Votes,% of vote,transfer,Round 31 Votes,% of vote,transfer,Round 32 Votes,% of vote,transfer,Round 33 Votes,% of vote,transfer -MARK ANDREW,160,30.94%,1,161,31.14%,0,161,31.14%,0,161,31.14%,0,161,31.14%,0,161,31.14%,0,161,31.14%,0,161,31.14%,0,161,31.14%,0,161,31.14%,0,161,31.14%,0,161,31.14%,0,161,31.14%,0,161,31.14%,0,161,31.2%,0,161,31.26%,0,161,31.26%,0,161,31.26%,2,163,31.71%,0,163,31.71%,0,163,31.71%,0,163,31.71%,0,163,31.71%,0,163,31.77%,1,164,32.09%,0,164,32.22%,0,164,32.6%,0,164,32.8%,0,164,33.19%,2,166,33.8%,1,167,34.71%,9,176,38.09%,15,191,50.66%,0 +Eliminated*,Undeclared Write-ins,,,JOHN CHARLES WILSON,,,CYD GORMAN,,,BOB AGAIN CARNEY JR,,,RAHN V. WORKCUFF,,,"JAMES JIMMY L. STROUD, JR.",,,EDMUND BERNARD BRUYERE,,,JOHN LESLIE HARTWIG,,,BILL KAHN,,,JOSHUA REA,,,MERRILL ANDERSON,,,GREGG A. IVERSON,,,TROY BENJEGERDES,,,NEAL BAXTER,,,JEFFREY ALAN WAGNER,,,CHRISTOPHER ROBIN ZIMMERMAN,,,KURTIS W. HANNA,,,MIKE GOULD,,,JAYMIE KELLY,,,TONY LANE,,,CHRISTOPHER CLARK,,,CAPTAIN JACK SPARROW,,,ABDUL M RAHAMAN THE ROCK,,,ALICIA K. BENNETT,,,JAMES EVERETT,,,OLE SAVIOR,,,DOUG MANN,,,MARK V ANDERSON,,,STEPHANIE WOODRUFF,,,DAN COHEN,,,JACKIE CHERRYHOMES; BOB FINE,,,DON SAMUELS; CAM WINTON,,,,, +Elected*,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,BETSY HODGES,, BETSY HODGES,134,25.91%,0,134,25.91%,0,134,25.91%,0,134,25.91%,0,134,25.91%,0,134,25.91%,0,134,25.91%,0,134,25.91%,0,134,25.91%,0,134,25.91%,0,134,25.91%,0,134,25.91%,0,134,25.91%,0,134,25.91%,0,134,25.96%,0,134,26.01%,0,134,26.01%,0,134,26.01%,0,134,26.07%,0,134,26.07%,0,134,26.07%,0,134,26.07%,1,135,26.26%,0,135,26.31%,0,135,26.41%,1,136,26.71%,0,136,27.03%,5,141,28.2%,1,142,28.74%,4,146,29.73%,4,150,31.18%,10,160,34.63%,26,186,49.33%,0 +MARK ANDREW,160,30.94%,1,161,31.14%,0,161,31.14%,0,161,31.14%,0,161,31.14%,0,161,31.14%,0,161,31.14%,0,161,31.14%,0,161,31.14%,0,161,31.14%,0,161,31.14%,0,161,31.14%,0,161,31.14%,0,161,31.14%,0,161,31.2%,0,161,31.26%,0,161,31.26%,0,161,31.26%,2,163,31.71%,0,163,31.71%,0,163,31.71%,0,163,31.71%,0,163,31.71%,0,163,31.77%,1,164,32.09%,0,164,32.22%,0,164,32.6%,0,164,32.8%,0,164,33.19%,2,166,33.8%,1,167,34.71%,9,176,38.09%,15,191,50.66%,0 DON SAMUELS,52,10.05%,0,52,10.05%,0,52,10.05%,0,52,10.05%,0,52,10.05%,0,52,10.05%,0,52,10.05%,0,52,10.05%,0,52,10.05%,0,52,10.05%,0,52,10.05%,0,52,10.05%,0,52,10.05%,0,52,10.05%,0,52,10.07%,0,52,10.09%,0,52,10.09%,0,52,10.09%,0,52,10.11%,0,52,10.11%,0,52,10.11%,0,52,10.11%,0,52,10.11%,0,52,10.13%,0,52,10.17%,0,52,10.21%,0,52,10.33%,0,52,10.4%,0,52,10.52%,0,52,10.59%,2,54,11.22%,11,65,14.06%,-65,0,0.0%,0 CAM WINTON,47,9.09%,0,47,9.09%,0,47,9.09%,0,47,9.09%,0,47,9.09%,0,47,9.09%,0,47,9.09%,0,47,9.09%,0,47,9.09%,0,47,9.09%,0,47,9.09%,0,47,9.09%,0,47,9.09%,0,47,9.09%,0,47,9.1%,0,47,9.12%,1,48,9.32%,0,48,9.32%,0,48,9.33%,0,48,9.33%,0,48,9.33%,2,50,9.72%,0,50,9.72%,0,50,9.74%,0,50,9.78%,0,50,9.82%,0,50,9.94%,1,51,10.2%,0,51,10.32%,0,51,10.38%,2,53,11.01%,8,61,13.2%,-61,0,0.0%,0 JACKIE CHERRYHOMES,26,5.02%,0,26,5.02%,0,26,5.02%,0,26,5.02%,0,26,5.02%,0,26,5.02%,0,26,5.02%,1,27,5.22%,0,27,5.22%,0,27,5.22%,0,27,5.22%,0,27,5.22%,0,27,5.22%,0,27,5.22%,0,27,5.23%,0,27,5.24%,0,27,5.24%,0,27,5.24%,0,27,5.25%,0,27,5.25%,0,27,5.25%,0,27,5.25%,0,27,5.25%,0,27,5.26%,0,27,5.28%,0,27,5.3%,1,28,5.56%,0,28,5.6%,0,28,5.66%,0,28,5.7%,1,29,6.02%,-29,0,0.0%,0,0,0.0%,0 BOB FINE,23,4.44%,0,23,4.44%,0,23,4.44%,0,23,4.44%,0,23,4.44%,0,23,4.44%,0,23,4.44%,0,23,4.44%,0,23,4.44%,0,23,4.44%,0,23,4.44%,0,23,4.44%,1,24,4.64%,0,24,4.64%,0,24,4.65%,0,24,4.66%,0,24,4.66%,0,24,4.66%,0,24,4.66%,0,24,4.66%,0,24,4.66%,0,24,4.66%,0,24,4.66%,0,24,4.67%,0,24,4.69%,0,24,4.71%,0,24,4.77%,0,24,4.8%,0,24,4.85%,3,27,5.49%,1,28,5.82%,-28,0,0.0%,0,0,0.0%,0 DAN COHEN,16,3.09%,0,16,3.09%,1,17,3.28%,0,17,3.28%,0,17,3.28%,0,17,3.28%,0,17,3.28%,0,17,3.28%,0,17,3.28%,0,17,3.28%,1,18,3.48%,0,18,3.48%,0,18,3.48%,0,18,3.48%,0,18,3.48%,0,18,3.49%,0,18,3.49%,0,18,3.49%,0,18,3.5%,0,18,3.5%,0,18,3.5%,0,18,3.5%,0,18,3.5%,0,18,3.5%,0,18,3.52%,0,18,3.53%,1,19,3.77%,0,19,3.8%,0,19,3.84%,2,21,4.27%,-21,0,0.0%,0,0,0.0%,0,0,0.0%,0 STEPHANIE WOODRUFF,12,2.32%,0,12,2.32%,0,12,2.32%,0,12,2.32%,0,12,2.32%,0,12,2.32%,0,12,2.32%,0,12,2.32%,0,12,2.32%,0,12,2.32%,0,12,2.32%,0,12,2.32%,0,12,2.32%,0,12,2.32%,0,12,2.32%,0,12,2.33%,0,12,2.33%,0,12,2.33%,0,12,2.33%,0,12,2.33%,0,12,2.33%,0,12,2.33%,0,12,2.33%,0,12,2.33%,1,13,2.54%,0,13,2.55%,0,13,2.58%,1,14,2.8%,0,14,2.83%,-14,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 -OLE SAVIOR,10,1.93%,0,10,1.93%,0,10,1.93%,0,10,1.93%,0,10,1.93%,0,10,1.93%,0,10,1.93%,0,10,1.93%,0,10,1.93%,0,10,1.93%,0,10,1.93%,0,10,1.93%,0,10,1.93%,0,10,1.93%,0,10,1.93%,0,10,1.94%,0,10,1.94%,0,10,1.94%,0,10,1.94%,0,10,1.94%,0,10,1.94%,0,10,1.94%,0,10,1.94%,0,10,1.94%,0,10,1.95%,0,10,1.96%,-10,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 +MARK V ANDERSON,3,0.58%,0,3,0.58%,0,3,0.58%,0,3,0.58%,0,3,0.58%,0,3,0.58%,0,3,0.58%,0,3,0.58%,0,3,0.58%,0,3,0.58%,0,3,0.58%,0,3,0.58%,0,3,0.58%,0,3,0.58%,0,3,0.58%,0,3,0.58%,0,3,0.58%,0,3,0.58%,0,3,0.58%,0,3,0.58%,0,3,0.58%,2,5,0.97%,1,6,1.16%,0,6,1.16%,0,6,1.17%,0,6,1.17%,1,7,1.39%,0,7,1.4%,-7,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 DOUG MANN,6,1.16%,0,6,1.16%,0,6,1.16%,0,6,1.16%,0,6,1.16%,0,6,1.16%,0,6,1.16%,0,6,1.16%,0,6,1.16%,0,6,1.16%,0,6,1.16%,0,6,1.16%,0,6,1.16%,0,6,1.16%,0,6,1.16%,0,6,1.16%,0,6,1.16%,1,7,1.35%,0,7,1.36%,0,7,1.36%,0,7,1.36%,0,7,1.36%,1,8,1.55%,0,8,1.55%,0,8,1.56%,1,9,1.76%,1,10,1.98%,-10,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 -MIKE GOULD,5,0.96%,0,5,0.96%,0,5,0.96%,0,5,0.96%,0,5,0.96%,0,5,0.96%,0,5,0.96%,0,5,0.96%,0,5,0.96%,0,5,0.96%,0,5,0.96%,0,5,0.96%,0,5,0.96%,0,5,0.96%,0,5,0.96%,0,5,0.97%,0,5,0.97%,0,5,0.97%,-5,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,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 -CHRISTOPHER CLARK,4,0.77%,0,4,0.77%,0,4,0.77%,0,4,0.77%,0,4,0.77%,0,4,0.77%,0,4,0.77%,0,4,0.77%,0,4,0.77%,0,4,0.77%,0,4,0.77%,0,4,0.77%,0,4,0.77%,0,4,0.77%,0,4,0.77%,0,4,0.77%,0,4,0.77%,0,4,0.77%,0,4,0.77%,0,4,0.77%,0,4,0.77%,-4,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,0,0.0%,0,0,0.0%,0 +OLE SAVIOR,10,1.93%,0,10,1.93%,0,10,1.93%,0,10,1.93%,0,10,1.93%,0,10,1.93%,0,10,1.93%,0,10,1.93%,0,10,1.93%,0,10,1.93%,0,10,1.93%,0,10,1.93%,0,10,1.93%,0,10,1.93%,0,10,1.93%,0,10,1.94%,0,10,1.94%,0,10,1.94%,0,10,1.94%,0,10,1.94%,0,10,1.94%,0,10,1.94%,0,10,1.94%,0,10,1.94%,0,10,1.95%,0,10,1.96%,-10,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 +ALICIA K. BENNETT,2,0.38%,0,2,0.38%,0,2,0.38%,0,2,0.38%,0,2,0.38%,0,2,0.38%,0,2,0.38%,0,2,0.38%,0,2,0.38%,0,2,0.38%,0,2,0.38%,0,2,0.38%,0,2,0.38%,0,2,0.38%,0,2,0.38%,0,2,0.38%,0,2,0.38%,0,2,0.38%,2,4,0.77%,0,4,0.77%,0,4,0.77%,0,4,0.77%,0,4,0.77%,0,4,0.77%,-4,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 +ABDUL M RAHAMAN THE ROCK,1,0.19%,0,1,0.19%,0,1,0.19%,0,1,0.19%,0,1,0.19%,0,1,0.19%,0,1,0.19%,0,1,0.19%,0,1,0.19%,0,1,0.19%,0,1,0.19%,0,1,0.19%,0,1,0.19%,0,1,0.19%,0,1,0.19%,0,1,0.19%,0,1,0.19%,0,1,0.19%,0,1,0.19%,0,1,0.19%,0,1,0.19%,0,1,0.19%,0,1,0.19%,-1,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 JAMES EVERETT,4,0.77%,0,4,0.77%,0,4,0.77%,0,4,0.77%,0,4,0.77%,0,4,0.77%,0,4,0.77%,0,4,0.77%,0,4,0.77%,0,4,0.77%,0,4,0.77%,0,4,0.77%,0,4,0.77%,0,4,0.77%,0,4,0.77%,0,4,0.77%,0,4,0.77%,0,4,0.77%,0,4,0.77%,0,4,0.77%,0,4,0.77%,0,4,0.77%,0,4,0.77%,0,4,0.77%,0,4,0.78%,-4,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 -MARK V ANDERSON,3,0.58%,0,3,0.58%,0,3,0.58%,0,3,0.58%,0,3,0.58%,0,3,0.58%,0,3,0.58%,0,3,0.58%,0,3,0.58%,0,3,0.58%,0,3,0.58%,0,3,0.58%,0,3,0.58%,0,3,0.58%,0,3,0.58%,0,3,0.58%,0,3,0.58%,0,3,0.58%,0,3,0.58%,0,3,0.58%,0,3,0.58%,2,5,0.97%,1,6,1.16%,0,6,1.16%,0,6,1.17%,0,6,1.17%,1,7,1.39%,0,7,1.4%,-7,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 CAPTAIN JACK SPARROW,3,0.58%,0,3,0.58%,0,3,0.58%,0,3,0.58%,0,3,0.58%,0,3,0.58%,0,3,0.58%,0,3,0.58%,0,3,0.58%,0,3,0.58%,0,3,0.58%,0,3,0.58%,0,3,0.58%,0,3,0.58%,0,3,0.58%,0,3,0.58%,0,3,0.58%,0,3,0.58%,0,3,0.58%,0,3,0.58%,0,3,0.58%,0,3,0.58%,-3,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,0,0.0%,0 -ALICIA K. BENNETT,2,0.38%,0,2,0.38%,0,2,0.38%,0,2,0.38%,0,2,0.38%,0,2,0.38%,0,2,0.38%,0,2,0.38%,0,2,0.38%,0,2,0.38%,0,2,0.38%,0,2,0.38%,0,2,0.38%,0,2,0.38%,0,2,0.38%,0,2,0.38%,0,2,0.38%,0,2,0.38%,2,4,0.77%,0,4,0.77%,0,4,0.77%,0,4,0.77%,0,4,0.77%,0,4,0.77%,-4,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 +TONY LANE,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,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,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,0,0.0%,0,0,0.0%,0,0,0.0%,0 +MIKE GOULD,5,0.96%,0,5,0.96%,0,5,0.96%,0,5,0.96%,0,5,0.96%,0,5,0.96%,0,5,0.96%,0,5,0.96%,0,5,0.96%,0,5,0.96%,0,5,0.96%,0,5,0.96%,0,5,0.96%,0,5,0.96%,0,5,0.96%,0,5,0.97%,0,5,0.97%,0,5,0.97%,-5,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,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 KURTIS W. HANNA,1,0.19%,0,1,0.19%,0,1,0.19%,0,1,0.19%,0,1,0.19%,0,1,0.19%,0,1,0.19%,0,1,0.19%,0,1,0.19%,0,1,0.19%,0,1,0.19%,0,1,0.19%,0,1,0.19%,0,1,0.19%,0,1,0.19%,0,1,0.19%,0,1,0.19%,-1,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,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 -ABDUL M RAHAMAN THE ROCK,1,0.19%,0,1,0.19%,0,1,0.19%,0,1,0.19%,0,1,0.19%,0,1,0.19%,0,1,0.19%,0,1,0.19%,0,1,0.19%,0,1,0.19%,0,1,0.19%,0,1,0.19%,0,1,0.19%,0,1,0.19%,0,1,0.19%,0,1,0.19%,0,1,0.19%,0,1,0.19%,0,1,0.19%,0,1,0.19%,0,1,0.19%,0,1,0.19%,0,1,0.19%,-1,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 +JAYMIE KELLY,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,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,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,0,0.0%,0,0,0.0%,0,0,0.0%,0 +CHRISTOPHER CLARK,4,0.77%,0,4,0.77%,0,4,0.77%,0,4,0.77%,0,4,0.77%,0,4,0.77%,0,4,0.77%,0,4,0.77%,0,4,0.77%,0,4,0.77%,0,4,0.77%,0,4,0.77%,0,4,0.77%,0,4,0.77%,0,4,0.77%,0,4,0.77%,0,4,0.77%,0,4,0.77%,0,4,0.77%,0,4,0.77%,0,4,0.77%,-4,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,0,0.0%,0,0,0.0%,0 CHRISTOPHER ROBIN ZIMMERMAN,1,0.19%,0,1,0.19%,0,1,0.19%,0,1,0.19%,0,1,0.19%,0,1,0.19%,0,1,0.19%,0,1,0.19%,0,1,0.19%,0,1,0.19%,0,1,0.19%,0,1,0.19%,0,1,0.19%,0,1,0.19%,0,1,0.19%,0,1,0.19%,-1,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,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 -EDMUND BERNARD BRUYERE,1,0.19%,0,1,0.19%,0,1,0.19%,0,1,0.19%,0,1,0.19%,0,1,0.19%,0,1,0.19%,-1,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,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,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 -GREGG A. IVERSON,1,0.19%,0,1,0.19%,0,1,0.19%,0,1,0.19%,0,1,0.19%,0,1,0.19%,0,1,0.19%,0,1,0.19%,0,1,0.19%,0,1,0.19%,0,1,0.19%,0,1,0.19%,-1,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,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,0,0.0%,0 -JOHN LESLIE HARTWIG,1,0.19%,0,1,0.19%,0,1,0.19%,0,1,0.19%,0,1,0.19%,0,1,0.19%,0,1,0.19%,0,1,0.19%,-1,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,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,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 JEFFREY ALAN WAGNER,1,0.19%,0,1,0.19%,0,1,0.19%,0,1,0.19%,0,1,0.19%,0,1,0.19%,0,1,0.19%,0,1,0.19%,0,1,0.19%,0,1,0.19%,0,1,0.19%,0,1,0.19%,0,1,0.19%,0,1,0.19%,0,1,0.19%,-1,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,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 CHARLES WILSON,1,0.19%,0,1,0.19%,-1,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,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,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,0,0.0%,0 -JOSHUA REA,1,0.19%,0,1,0.19%,0,1,0.19%,0,1,0.19%,0,1,0.19%,0,1,0.19%,0,1,0.19%,0,1,0.19%,0,1,0.19%,0,1,0.19%,-1,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,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,0,0.0%,0,0,0.0%,0,0,0.0%,0 -TONY LANE,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,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,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,0,0.0%,0,0,0.0%,0,0,0.0%,0 TROY BENJEGERDES,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,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,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,0,0.0%,0,0,0.0%,0,0,0.0%,0 -BILL KAHN,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,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,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,0,0.0%,0,0,0.0%,0,0,0.0%,0 +GREGG A. IVERSON,1,0.19%,0,1,0.19%,0,1,0.19%,0,1,0.19%,0,1,0.19%,0,1,0.19%,0,1,0.19%,0,1,0.19%,0,1,0.19%,0,1,0.19%,0,1,0.19%,0,1,0.19%,-1,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,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,0,0.0%,0 +NEAL BAXTER,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%,1,1,0.19%,0,1,0.19%,0,1,0.19%,0,1,0.19%,0,1,0.19%,0,1,0.19%,-1,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,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 MERRILL ANDERSON,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,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,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,0,0.0%,0,0,0.0%,0,0,0.0%,0 -CYD GORMAN,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,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,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,0,0.0%,0,0,0.0%,0,0,0.0%,0 +JOSHUA REA,1,0.19%,0,1,0.19%,0,1,0.19%,0,1,0.19%,0,1,0.19%,0,1,0.19%,0,1,0.19%,0,1,0.19%,0,1,0.19%,0,1,0.19%,-1,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,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,0,0.0%,0,0,0.0%,0,0,0.0%,0 +BILL KAHN,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,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,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,0,0.0%,0,0,0.0%,0,0,0.0%,0 +JOHN LESLIE HARTWIG,1,0.19%,0,1,0.19%,0,1,0.19%,0,1,0.19%,0,1,0.19%,0,1,0.19%,0,1,0.19%,0,1,0.19%,-1,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,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,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 +EDMUND BERNARD BRUYERE,1,0.19%,0,1,0.19%,0,1,0.19%,0,1,0.19%,0,1,0.19%,0,1,0.19%,0,1,0.19%,-1,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,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,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 RAHN V. WORKCUFF,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,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,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,0,0.0%,0,0,0.0%,0,0,0.0%,0 -JAYMIE KELLY,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,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,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,0,0.0%,0,0,0.0%,0,0,0.0%,0 -NEAL BAXTER,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%,1,1,0.19%,0,1,0.19%,0,1,0.19%,0,1,0.19%,0,1,0.19%,0,1,0.19%,-1,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,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 -BOB AGAIN CARNEY JR,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,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,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,0,0.0%,0,0,0.0%,0,0,0.0%,0 "JAMES JIMMY L. STROUD, JR.",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,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,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,0,0.0%,0,0,0.0%,0,0,0.0%,0 +BOB AGAIN CARNEY JR,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,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,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,0,0.0%,0,0,0.0%,0,0,0.0%,0 +CYD GORMAN,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,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,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,0,0.0%,0,0,0.0%,0,0,0.0%,0 +JOHN CHARLES WILSON,1,0.19%,0,1,0.19%,-1,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,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,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,0,0.0%,0 Undeclared Write-ins,1,0.19%,-1,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,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,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,0,0.0%,0,0,0.0%,0 Active Ballots,517,,,517,,,517,,,517,,,517,,,517,,,517,,,517,,,517,,,517,,,517,,,517,,,517,,,517,,,516,,,515,,,515,,,515,,,514,,,514,,,514,,,514,,,514,,,513,,,511,,,509,,,503,,,500,,,494,,,491,,,481,,,462,,,377,, -Current Round Threshold,39657,,,39638,,,39635,,,39633,,,39627,,,39622,,,39614,,,39608,,,39599,,,39583,,,39568,,,39552,,,39533,,,39522,,,39502,,,39477,,,39462,,,39450,,,39414,,,39387,,,39359,,,39309,,,39247,,,39112,,,39041,,,38981,,,38726,,,38541,,,38312,,,38162,,,37796,,,36810,,,31898,, 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,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,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,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,0,,0,0,,0 Inactive Ballots by Exhausted Choices,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,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 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,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,0,,0,0,,0 Inactive Ballots Total,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,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 + +*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/2017_minneapolis_mayor/2017_minneapolis_mayor_expected_MINNEAPOLIS_W-13_P-13_precinct_summary.csv b/src/test/resources/network/brightspots/rcv/test_data/2017_minneapolis_mayor/2017_minneapolis_mayor_expected_MINNEAPOLIS_W-13_P-13_precinct_summary.csv index ff6c8bfac..8b53ddd06 100644 --- a/src/test/resources/network/brightspots/rcv/test_data/2017_minneapolis_mayor/2017_minneapolis_mayor_expected_MINNEAPOLIS_W-13_P-13_precinct_summary.csv +++ b/src/test/resources/network/brightspots/rcv/test_data/2017_minneapolis_mayor/2017_minneapolis_mayor_expected_MINNEAPOLIS_W-13_P-13_precinct_summary.csv @@ -7,7 +7,6 @@ Jurisdiction,"Minneapolis, MN" Office,Mayor Date,2017-11-07 Winner(s),Jacob Frey -Final Threshold,40838 Precinct,MINNEAPOLIS W-13 P-13 Contest Summary @@ -17,29 +16,32 @@ Total Number of Ballots,953 Number of Undervotes,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*,Undeclared Write-ins,,,Aswar Rahman; David Rosenfeld; L.A. Nik; Christopher Zimmerman; Ronald Lischeid; Ian Simpson; Charlie Gers; Captain Jack Sparrow; Theron Preston Washington; David John Wilson; Gregg A. Iverson; Troy Benjegerdes; Al Flowers,,,Nekima Levy-Pounds,,,Tom Hoch,,,Betsy Hodges,,,,, +Elected*,,,,,,,,,,,,,,,,Jacob Frey,, Jacob Frey,320,33.57%,0,320,33.61%,5,325,34.46%,14,339,36.1%,133,472,54.5%,120,592,75.03%,0 Tom Hoch,261,27.38%,0,261,27.41%,8,269,28.52%,11,280,29.81%,-280,0,0.0%,0,0,0.0%,0 Betsy Hodges,195,20.46%,0,195,20.48%,1,196,20.78%,12,208,22.15%,50,258,29.79%,-258,0,0.0%,0 Raymond Dehn,82,8.6%,0,82,8.61%,1,83,8.8%,29,112,11.92%,24,136,15.7%,61,197,24.96%,0 Nekima Levy-Pounds,68,7.13%,0,68,7.14%,2,70,7.42%,-70,0,0.0%,0,0,0.0%,0,0,0.0%,0 Charlie Gers,12,1.25%,0,12,1.26%,-12,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 -L.A. Nik,5,0.52%,0,5,0.52%,-5,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 -David John Wilson,3,0.31%,0,3,0.31%,-3,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 -Gregg A. Iverson,2,0.2%,1,3,0.31%,-3,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 Aswar Rahman,1,0.1%,0,1,0.1%,-1,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 -Captain Jack Sparrow,1,0.1%,0,1,0.1%,-1,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 Al Flowers,1,0.1%,0,1,0.1%,-1,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 +L.A. Nik,5,0.52%,0,5,0.52%,-5,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 David Rosenfeld,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 -Christopher Zimmerman,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 +Captain Jack Sparrow,1,0.1%,0,1,0.1%,-1,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 +Gregg A. Iverson,2,0.2%,1,3,0.31%,-3,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 Ronald Lischeid,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 +David John Wilson,3,0.31%,0,3,0.31%,-3,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 +Troy Benjegerdes,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 Ian Simpson,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 +Christopher Zimmerman,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 Theron Preston Washington,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 -Troy Benjegerdes,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,2,0.2%,-2,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 Active Ballots,953,,,952,,,943,,,939,,,866,,,789,, -Current Round Threshold,52243,,,52200,,,50933,,,49874,,,46790,,,40838,, 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,0,,0,0,,0 Inactive Ballots by Exhausted Choices,0,,0,0,,0,0,,0,0,,0,0,,0,0,,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,0,,0,0,,0 + +*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/2017_minneapolis_mayor/2017_minneapolis_mayor_expected_MINNEAPOLIS_W-1_P-01_precinct_summary.csv b/src/test/resources/network/brightspots/rcv/test_data/2017_minneapolis_mayor/2017_minneapolis_mayor_expected_MINNEAPOLIS_W-1_P-01_precinct_summary.csv index 2736ccf62..47aa386dc 100644 --- a/src/test/resources/network/brightspots/rcv/test_data/2017_minneapolis_mayor/2017_minneapolis_mayor_expected_MINNEAPOLIS_W-1_P-01_precinct_summary.csv +++ b/src/test/resources/network/brightspots/rcv/test_data/2017_minneapolis_mayor/2017_minneapolis_mayor_expected_MINNEAPOLIS_W-1_P-01_precinct_summary.csv @@ -7,7 +7,6 @@ Jurisdiction,"Minneapolis, MN" Office,Mayor Date,2017-11-07 Winner(s),Jacob Frey -Final Threshold,40838 Precinct,MINNEAPOLIS W-1 P-01 Contest Summary @@ -17,29 +16,32 @@ Total Number of Ballots,408 Number of Undervotes,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*,Undeclared Write-ins,,,Aswar Rahman; David Rosenfeld; L.A. Nik; Christopher Zimmerman; Ronald Lischeid; Ian Simpson; Charlie Gers; Captain Jack Sparrow; Theron Preston Washington; David John Wilson; Gregg A. Iverson; Troy Benjegerdes; Al Flowers,,,Nekima Levy-Pounds,,,Tom Hoch,,,Betsy Hodges,,,,, +Elected*,,,,,,,,,,,,,,,,Jacob Frey,, Jacob Frey,95,23.28%,0,95,23.34%,10,105,26.99%,24,129,34.03%,28,157,45.11%,36,193,63.48%,0 Tom Hoch,77,18.87%,0,77,18.91%,7,84,21.59%,5,89,23.48%,-89,0,0.0%,0,0,0.0%,0 -Nekima Levy-Pounds,69,16.91%,0,69,16.95%,5,74,19.02%,-74,0,0.0%,0,0,0.0%,0,0,0.0%,0 Betsy Hodges,64,15.68%,0,64,15.72%,3,67,17.22%,17,84,22.16%,11,95,27.29%,-95,0,0.0%,0 Raymond Dehn,56,13.72%,0,56,13.75%,3,59,15.16%,18,77,20.31%,19,96,27.58%,15,111,36.51%,0 -Aswar Rahman,9,2.2%,0,9,2.21%,-9,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 -L.A. Nik,7,1.71%,0,7,1.71%,-7,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 +Nekima Levy-Pounds,69,16.91%,0,69,16.95%,5,74,19.02%,-74,0,0.0%,0,0,0.0%,0,0,0.0%,0 Charlie Gers,5,1.22%,0,5,1.22%,-5,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 +Aswar Rahman,9,2.2%,0,9,2.21%,-9,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 Al Flowers,5,1.22%,0,5,1.22%,-5,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 -Captain Jack Sparrow,4,0.98%,0,4,0.98%,-4,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 +L.A. Nik,7,1.71%,0,7,1.71%,-7,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 David Rosenfeld,3,0.73%,0,3,0.73%,-3,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 -Ronald Lischeid,3,0.73%,0,3,0.73%,-3,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 -Ian Simpson,3,0.73%,0,3,0.73%,-3,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 +Captain Jack Sparrow,4,0.98%,0,4,0.98%,-4,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 Gregg A. Iverson,3,0.73%,0,3,0.73%,-3,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 -Troy Benjegerdes,3,0.73%,0,3,0.73%,-3,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 +Ronald Lischeid,3,0.73%,0,3,0.73%,-3,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 David John Wilson,1,0.24%,0,1,0.24%,-1,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 +Troy Benjegerdes,3,0.73%,0,3,0.73%,-3,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 +Ian Simpson,3,0.73%,0,3,0.73%,-3,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 Christopher Zimmerman,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 Theron Preston Washington,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,1,0.24%,-1,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 Active Ballots,408,,,407,,,389,,,379,,,348,,,304,, -Current Round Threshold,52243,,,52200,,,50933,,,49874,,,46790,,,40838,, 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,0,,0,0,,0 Inactive Ballots by Exhausted Choices,0,,0,0,,0,0,,0,0,,0,0,,0,0,,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,0,,0,0,,0 + +*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/missing_precinct_example/missing_precinct_example_expected_MINNEAPOLIS_W-13_P-13_precinct_summary.csv b/src/test/resources/network/brightspots/rcv/test_data/missing_precinct_example/missing_precinct_example_expected_MINNEAPOLIS_W-13_P-13_precinct_summary.csv index 42a93dfb7..ee8e93ede 100644 --- a/src/test/resources/network/brightspots/rcv/test_data/missing_precinct_example/missing_precinct_example_expected_MINNEAPOLIS_W-13_P-13_precinct_summary.csv +++ b/src/test/resources/network/brightspots/rcv/test_data/missing_precinct_example/missing_precinct_example_expected_MINNEAPOLIS_W-13_P-13_precinct_summary.csv @@ -7,7 +7,6 @@ Jurisdiction,"Minneapolis, MN" Office,Mayor Date,2017-11-07 Winner(s),Jacob Frey -Final Threshold,3 Precinct,MINNEAPOLIS W-13 P-13 Contest Summary @@ -17,15 +16,18 @@ Total Number of Ballots,1 Number of Undervotes,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*,Aswar Rahman; David Rosenfeld; Raymond Dehn; L.A. Nik; Undeclared Write-ins; Christopher Zimmerman; Ronald Lischeid; Ian Simpson; Charlie Gers; Captain Jack Sparrow; Theron Preston Washington; David John Wilson; Gregg A. Iverson; Troy Benjegerdes; Al Flowers,,,Nekima Levy-Pounds,,,Tom Hoch,,,,, +Elected*,,,,,,,,,,Jacob Frey,, Tom Hoch,1,100.0%,0,1,100.0%,0,1,100.0%,-1,0,0.0%,0 +Betsy Hodges,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 +Jacob Frey,0,0.0%,0,0,0.0%,0,0,0.0%,1,1,100.0%,0 +Nekima Levy-Pounds,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 Aswar Rahman,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 David Rosenfeld,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 Raymond Dehn,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 L.A. Nik,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 Christopher Zimmerman,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 -Betsy Hodges,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 Ronald Lischeid,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 -Jacob Frey,0,0.0%,0,0,0.0%,0,0,0.0%,1,1,100.0%,0 Ian Simpson,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 Charlie Gers,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 Captain Jack Sparrow,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 @@ -34,12 +36,12 @@ David John Wilson,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 Gregg A. Iverson,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 Troy Benjegerdes,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 Al Flowers,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 -Nekima Levy-Pounds,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 Undeclared Write-ins,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 Active Ballots,1,,,1,,,1,,,1,, -Current Round Threshold,3,,,3,,,3,,,3,, 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,0,,0 Inactive Ballots by Repeated Rankings,0,,0,0,,0,0,,0,0,,0 Inactive Ballots Total,0,,0,0,,0,0,,0,0,,0 + +*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/missing_precinct_example/missing_precinct_example_expected_missing_precinct_id_precinct_summary.csv b/src/test/resources/network/brightspots/rcv/test_data/missing_precinct_example/missing_precinct_example_expected_missing_precinct_id_precinct_summary.csv index a48131f56..a06ec9258 100644 --- a/src/test/resources/network/brightspots/rcv/test_data/missing_precinct_example/missing_precinct_example_expected_missing_precinct_id_precinct_summary.csv +++ b/src/test/resources/network/brightspots/rcv/test_data/missing_precinct_example/missing_precinct_example_expected_missing_precinct_id_precinct_summary.csv @@ -7,7 +7,6 @@ Jurisdiction,"Minneapolis, MN" Office,Mayor Date,2017-11-07 Winner(s),Jacob Frey -Final Threshold,3 Precinct,missing_precinct_id Contest Summary @@ -17,14 +16,17 @@ Total Number of Ballots,1 Number of Undervotes,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*,Aswar Rahman; David Rosenfeld; Raymond Dehn; L.A. Nik; Undeclared Write-ins; Christopher Zimmerman; Ronald Lischeid; Ian Simpson; Charlie Gers; Captain Jack Sparrow; Theron Preston Washington; David John Wilson; Gregg A. Iverson; Troy Benjegerdes; Al Flowers,,,Nekima Levy-Pounds,,,Tom Hoch,,,,, +Elected*,,,,,,,,,,Jacob Frey,, +Tom Hoch,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 +Betsy Hodges,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 Jacob Frey,1,100.0%,0,1,100.0%,0,1,100.0%,0,1,100.0%,0 +Nekima Levy-Pounds,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 Aswar Rahman,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 -Tom Hoch,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 David Rosenfeld,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 Raymond Dehn,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 L.A. Nik,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 Christopher Zimmerman,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 -Betsy Hodges,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 Ronald Lischeid,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 Ian Simpson,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 Charlie Gers,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 @@ -34,12 +36,12 @@ David John Wilson,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 Gregg A. Iverson,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 Troy Benjegerdes,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 Al Flowers,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 -Nekima Levy-Pounds,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 Undeclared Write-ins,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 Active Ballots,1,,,1,,,1,,,1,, -Current Round Threshold,3,,,3,,,3,,,3,, 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,0,,0 Inactive Ballots by Repeated Rankings,0,,0,0,,0,0,,0,0,,0 Inactive Ballots Total,0,,0,0,,0,0,,0,0,,0 + +*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/precinct_example/precinct_example_expected_MINNEAPOLIS_W-1_P-02_precinct_summary.csv b/src/test/resources/network/brightspots/rcv/test_data/precinct_example/precinct_example_expected_MINNEAPOLIS_W-1_P-02_precinct_summary.csv index 8b28f664b..e21788c70 100644 --- a/src/test/resources/network/brightspots/rcv/test_data/precinct_example/precinct_example_expected_MINNEAPOLIS_W-1_P-02_precinct_summary.csv +++ b/src/test/resources/network/brightspots/rcv/test_data/precinct_example/precinct_example_expected_MINNEAPOLIS_W-1_P-02_precinct_summary.csv @@ -7,7 +7,6 @@ Jurisdiction,"Minneapolis, MN" Office,Mayor Date,2017-11-07 Winner(s),Betsy Hodges -Final Threshold,42 Precinct,MINNEAPOLIS W-1 P-02 Contest Summary @@ -17,29 +16,32 @@ Total Number of Ballots,1 Number of Undervotes,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 -Nekima Levy-Pounds,1,100.0%,0,1,100.0%,-1,0,0.0%,0,0,0.0%,0,0,0.0%,0 -Aswar Rahman,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 +Eliminated*,Undeclared Write-ins,,,Aswar Rahman; David Rosenfeld; L.A. Nik; Christopher Zimmerman; Ronald Lischeid; Ian Simpson; Charlie Gers; Captain Jack Sparrow; Theron Preston Washington; David John Wilson; Gregg A. Iverson; Troy Benjegerdes; Al Flowers; Nekima Levy-Pounds,,,Tom Hoch,,,Raymond Dehn,,,,, +Elected*,,,,,,,,,,,,,Betsy Hodges,, +Jacob Frey,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 +Betsy Hodges,0,0.0%,0,0,0.0%,0,0,0.0%,1,1,100.0%,0,1,100.0%,0 Tom Hoch,0,0.0%,0,0,0.0%,1,1,100.0%,-1,0,0.0%,0,0,0.0%,0 -David Rosenfeld,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 Raymond Dehn,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 +Nekima Levy-Pounds,1,100.0%,0,1,100.0%,-1,0,0.0%,0,0,0.0%,0,0,0.0%,0 +David Rosenfeld,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 +Charlie Gers,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 +Captain Jack Sparrow,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 +Al Flowers,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 +Aswar Rahman,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 L.A. Nik,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 Christopher Zimmerman,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 -Betsy Hodges,0,0.0%,0,0,0.0%,0,0,0.0%,1,1,100.0%,0,1,100.0%,0 Ronald Lischeid,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 -Jacob Frey,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 Ian Simpson,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 -Charlie Gers,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 -Captain Jack Sparrow,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 Theron Preston Washington,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 David John Wilson,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 Gregg A. Iverson,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 Troy Benjegerdes,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 -Al Flowers,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 Undeclared Write-ins,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 Active Ballots,1,,,1,,,1,,,1,,,1,, -Current Round Threshold,50,,,50,,,49,,,46,,,42,, Inactive Ballots by Overvotes,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 Inactive Ballots by Exhausted Choices,0,,0,0,,0,0,,0,0,,0,0,,0 Inactive Ballots by Repeated Rankings,0,,0,0,,0,0,,0,0,,0,0,,0 Inactive Ballots Total,0,,0,0,,0,0,,0,0,,0,0,,0 + +*Elect/Eliminate decisions are from the full contest. All other results on this report are at the precinct level. From a112d1e17317fdff72d5861be3ff972349220a3a Mon Sep 17 00:00:00 2001 From: Armin Samii Date: Thu, 25 Jul 2024 14:08:08 -0400 Subject: [PATCH 2/7] Update src/main/java/network/brightspots/rcv/ResultsWriter.java Co-authored-by: RankWeis --- src/main/java/network/brightspots/rcv/ResultsWriter.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/network/brightspots/rcv/ResultsWriter.java b/src/main/java/network/brightspots/rcv/ResultsWriter.java index cb1ce50b6..26df9f0c4 100644 --- a/src/main/java/network/brightspots/rcv/ResultsWriter.java +++ b/src/main/java/network/brightspots/rcv/ResultsWriter.java @@ -550,7 +550,7 @@ private void addContestInformationRows(CSVPrinter csvPrinter, // Only silces print the slice information csvPrinter.printRecord(slice, sliceId); } else { - // Only non-silces print threshold information + // Only non-slices print threshold information csvPrinter.printRecord("Final Threshold", winningThreshold); } From c3491aff6fba785b3232a0d327abdc47813616c8 Mon Sep 17 00:00:00 2001 From: Armin Samii Date: Tue, 17 Sep 2024 10:54:21 -0400 Subject: [PATCH 3/7] fix typo Co-authored-by: Mathew Ruberg --- src/main/java/network/brightspots/rcv/ResultsWriter.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/network/brightspots/rcv/ResultsWriter.java b/src/main/java/network/brightspots/rcv/ResultsWriter.java index a0c5d0185..3892a46aa 100644 --- a/src/main/java/network/brightspots/rcv/ResultsWriter.java +++ b/src/main/java/network/brightspots/rcv/ResultsWriter.java @@ -547,7 +547,7 @@ private void addContestInformationRows(CSVPrinter csvPrinter, csvPrinter.printRecord("Winner(s)", String.join(", ", winners)); if (!isNullOrBlank(sliceId)) { - // Only silces print the slice information + // Only slices print the slice information csvPrinter.printRecord(slice, sliceId); } else { // Only non-slices print threshold information From 290400d1ca11f997877a3174124acc3f928dcc33 Mon Sep 17 00:00:00 2001 From: Armin Samii Date: Tue, 17 Sep 2024 10:56:29 -0400 Subject: [PATCH 4/7] remove unneeded commit --- src/test/java/network/brightspots/rcv/TabulatorTests.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/test/java/network/brightspots/rcv/TabulatorTests.java b/src/test/java/network/brightspots/rcv/TabulatorTests.java index daf11d46a..8deadc6f9 100644 --- a/src/test/java/network/brightspots/rcv/TabulatorTests.java +++ b/src/test/java/network/brightspots/rcv/TabulatorTests.java @@ -34,7 +34,6 @@ import java.nio.charset.StandardCharsets; import java.nio.file.Files; import java.nio.file.Paths; -import java.nio.file.StandardCopyOption; import java.util.HashMap; import java.util.List; import java.util.Map; From 93c92e79fb179b20a6bd4d01e02d0a8ec8ffbce3 Mon Sep 17 00:00:00 2001 From: Armin Samii Date: Tue, 17 Sep 2024 11:22:38 -0400 Subject: [PATCH 5/7] Code review: add batch test, clean up results writer, error handling --- .../brightspots/rcv/ResultsWriter.java | 29 +-- .../brightspots/rcv/TabulatorTests.java | 2 +- ...ted_MINNEAPOLIS_W-1_P-02_batch_summary.csv | 47 +++++ ...ed_MINNEAPOLIS_W-1_P-04_batch_summary.json | 183 ++++++++++++++++++ 4 files changed, 248 insertions(+), 13 deletions(-) create mode 100644 src/test/resources/network/brightspots/rcv/test_data/batch_example/batch_example_expected_MINNEAPOLIS_W-1_P-02_batch_summary.csv create mode 100644 src/test/resources/network/brightspots/rcv/test_data/batch_example/batch_example_expected_MINNEAPOLIS_W-1_P-04_batch_summary.json diff --git a/src/main/java/network/brightspots/rcv/ResultsWriter.java b/src/main/java/network/brightspots/rcv/ResultsWriter.java index 3892a46aa..aac2955ef 100644 --- a/src/main/java/network/brightspots/rcv/ResultsWriter.java +++ b/src/main/java/network/brightspots/rcv/ResultsWriter.java @@ -316,8 +316,22 @@ private void generateSummarySpreadsheet( } csvPrinter.println(); - boolean isSlice = !isNullOrBlank(sliceId); - addActionRows(csvPrinter, isSlice); + final boolean isSlice = !isNullOrBlank(sliceId); + csvPrinter.print(isSlice ? "Eliminated*" : "Eliminated"); + printActionSummary(csvPrinter, roundToEliminatedCandidates); + + csvPrinter.print(isSlice ? "Elected*" : "Elected"); + printActionSummary(csvPrinter, roundToWinningCandidates); + + // Check that all candidates are included in the candidate order + Set expectedCandidates = roundTallies.get(1).getCandidates(); + Set providedCandidates = new HashSet<>(candidateOrder); + if (!expectedCandidates.equals(providedCandidates)) { + throw new IllegalArgumentException( + "Candidate order must include all candidates in the contest. " + + "\nExpected: " + expectedCandidates + + "\nProvided: " + providedCandidates); + } // For each candidate: for each round: output total votes for (String candidate : candidateOrder) { @@ -438,7 +452,7 @@ private void generateSummarySpreadsheet( // whether the value in the final round is positive. // Note that this concept only makes sense when we're reporting the overall tabulation, so we // omit it when generating results at the individual by-slice level. - if (sliceId == null && roundToResidualSurplus.get(numRounds).signum() == 1) { + if (!isSlice && roundToResidualSurplus.get(numRounds).signum() == 1) { csvPrinter.print("Residual surplus"); for (int round = 1; round <= numRounds; round++) { csvPrinter.print(roundToResidualSurplus.get(round)); @@ -468,15 +482,6 @@ private void generateSummarySpreadsheet( Logger.info("Summary spreadsheet generated successfully."); } - // "action" rows describe which candidates were eliminated or elected - private void addActionRows(CSVPrinter csvPrinter, boolean withAsterisk) throws IOException { - csvPrinter.print(withAsterisk ? "Eliminated*" : "Eliminated"); - printActionSummary(csvPrinter, roundToEliminatedCandidates); - - csvPrinter.print(withAsterisk ? "Elected*" : "Elected"); - printActionSummary(csvPrinter, roundToWinningCandidates); - } - private void addContestSummaryRows(CSVPrinter csvPrinter, RoundTally round1Tally) throws IOException { BigDecimal numNoRankings = diff --git a/src/test/java/network/brightspots/rcv/TabulatorTests.java b/src/test/java/network/brightspots/rcv/TabulatorTests.java index 8deadc6f9..032a5b7d9 100644 --- a/src/test/java/network/brightspots/rcv/TabulatorTests.java +++ b/src/test/java/network/brightspots/rcv/TabulatorTests.java @@ -672,7 +672,7 @@ void precinctExample() { @Test @DisplayName("tabulate by batch") void batchExample() { - runTabulationTest("batch_example"); + runTabulationTest("batch_example", 2); } @Test diff --git a/src/test/resources/network/brightspots/rcv/test_data/batch_example/batch_example_expected_MINNEAPOLIS_W-1_P-02_batch_summary.csv b/src/test/resources/network/brightspots/rcv/test_data/batch_example/batch_example_expected_MINNEAPOLIS_W-1_P-02_batch_summary.csv new file mode 100644 index 000000000..c2b6301ea --- /dev/null +++ b/src/test/resources/network/brightspots/rcv/test_data/batch_example/batch_example_expected_MINNEAPOLIS_W-1_P-02_batch_summary.csv @@ -0,0 +1,47 @@ +Contest Information +Generated By,RCTab 1.3.999 +CSV Format Version,1 +Type of Election,Single-Winner +Contest,Batch example +Jurisdiction,"Minneapolis, MN" +Office,Mayor +Date,2017-11-07 +Winner(s),Betsy Hodges +Batch,MINNEAPOLIS W-1 P-02 + +Contest Summary +Number to be Elected,1 +Number of Candidates,19 +Total Number of Ballots,1 +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,,,Aswar Rahman; David Rosenfeld; L.A. Nik; Christopher Zimmerman; Ronald Lischeid; Ian Simpson; Charlie Gers; Captain Jack Sparrow; Theron Preston Washington; David John Wilson; Gregg A. Iverson; Troy Benjegerdes; Al Flowers; Nekima Levy-Pounds,,,Tom Hoch,,,Raymond Dehn,,,,, +Elected*,,,,,,,,,,,,,Betsy Hodges,, +Jacob Frey,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 +Betsy Hodges,0,0.0%,0,0,0.0%,0,0,0.0%,1,1,100.0%,0,1,100.0%,0 +Tom Hoch,0,0.0%,0,0,0.0%,1,1,100.0%,-1,0,0.0%,0,0,0.0%,0 +Raymond Dehn,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 +Nekima Levy-Pounds,1,100.0%,0,1,100.0%,-1,0,0.0%,0,0,0.0%,0,0,0.0%,0 +David Rosenfeld,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 +Charlie Gers,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 +Captain Jack Sparrow,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 +Al Flowers,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 +Aswar Rahman,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 +L.A. Nik,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 +Christopher Zimmerman,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 +Ronald Lischeid,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 +Ian Simpson,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 +Theron Preston Washington,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 +David John Wilson,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 +Gregg A. Iverson,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 +Troy Benjegerdes,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 +Undeclared Write-ins,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0,0,0.0%,0 +Active Ballots,1,,,1,,,1,,,1,,,1,, +Inactive Ballots by Overvotes,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 +Inactive Ballots by Exhausted Choices,0,,0,0,,0,0,,0,0,,0,0,,0 +Inactive Ballots by Repeated Rankings,0,,0,0,,0,0,,0,0,,0,0,,0 +Inactive Ballots Total,0,,0,0,,0,0,,0,0,,0,0,,0 + +*Elect/Eliminate decisions are from the full contest. All other results on this report are at the batch level. diff --git a/src/test/resources/network/brightspots/rcv/test_data/batch_example/batch_example_expected_MINNEAPOLIS_W-1_P-04_batch_summary.json b/src/test/resources/network/brightspots/rcv/test_data/batch_example/batch_example_expected_MINNEAPOLIS_W-1_P-04_batch_summary.json new file mode 100644 index 000000000..3849e0af0 --- /dev/null +++ b/src/test/resources/network/brightspots/rcv/test_data/batch_example/batch_example_expected_MINNEAPOLIS_W-1_P-04_batch_summary.json @@ -0,0 +1,183 @@ +{ + "config" : { + "batch" : "MINNEAPOLIS W-1 P-04", + "contest" : "Batch example", + "date" : "2017-11-07", + "generatedBy" : "RCTab 1.3.999", + "jurisdiction" : "Minneapolis, MN", + "office" : "Mayor" + }, + "jsonFormatVersion" : "1", + "results" : [ { + "inactiveBallots" : { + "exhaustedChoices" : "0", + "overvotes" : "0", + "repeatedRankings" : "0", + "skippedRankings" : "0" + }, + "round" : 1, + "tally" : { + "Al Flowers" : "0", + "Aswar Rahman" : "0", + "Betsy Hodges" : "1", + "Captain Jack Sparrow" : "0", + "Charlie Gers" : "0", + "Christopher Zimmerman" : "0", + "David John Wilson" : "0", + "David Rosenfeld" : "0", + "Gregg A. Iverson" : "0", + "Ian Simpson" : "0", + "Jacob Frey" : "0", + "L.A. Nik" : "0", + "Nekima Levy-Pounds" : "1", + "Raymond Dehn" : "0", + "Ronald Lischeid" : "0", + "Theron Preston Washington" : "0", + "Tom Hoch" : "1", + "Troy Benjegerdes" : "0", + "Undeclared Write-ins" : "0" + }, + "tallyResults" : [ { + "eliminated" : "Undeclared Write-ins", + "transfers" : { } + } ], + "threshold" : "50" + }, { + "inactiveBallots" : { + "exhaustedChoices" : "0", + "overvotes" : "0", + "repeatedRankings" : "0", + "skippedRankings" : "0" + }, + "round" : 2, + "tally" : { + "Al Flowers" : "0", + "Aswar Rahman" : "0", + "Betsy Hodges" : "1", + "Captain Jack Sparrow" : "0", + "Charlie Gers" : "0", + "Christopher Zimmerman" : "0", + "David John Wilson" : "0", + "David Rosenfeld" : "0", + "Gregg A. Iverson" : "0", + "Ian Simpson" : "0", + "Jacob Frey" : "0", + "L.A. Nik" : "0", + "Nekima Levy-Pounds" : "1", + "Raymond Dehn" : "0", + "Ronald Lischeid" : "0", + "Theron Preston Washington" : "0", + "Tom Hoch" : "1", + "Troy Benjegerdes" : "0" + }, + "tallyResults" : [ { + "eliminated" : "Aswar Rahman", + "transfers" : { } + }, { + "eliminated" : "David Rosenfeld", + "transfers" : { } + }, { + "eliminated" : "L.A. Nik", + "transfers" : { } + }, { + "eliminated" : "Christopher Zimmerman", + "transfers" : { } + }, { + "eliminated" : "Ronald Lischeid", + "transfers" : { } + }, { + "eliminated" : "Ian Simpson", + "transfers" : { } + }, { + "eliminated" : "Charlie Gers", + "transfers" : { } + }, { + "eliminated" : "Captain Jack Sparrow", + "transfers" : { } + }, { + "eliminated" : "Theron Preston Washington", + "transfers" : { } + }, { + "eliminated" : "David John Wilson", + "transfers" : { } + }, { + "eliminated" : "Gregg A. Iverson", + "transfers" : { } + }, { + "eliminated" : "Troy Benjegerdes", + "transfers" : { } + }, { + "eliminated" : "Al Flowers", + "transfers" : { } + }, { + "eliminated" : "Nekima Levy-Pounds", + "transfers" : { + "Betsy Hodges" : "1" + } + } ], + "threshold" : "50" + }, { + "inactiveBallots" : { + "exhaustedChoices" : "0", + "overvotes" : "0", + "repeatedRankings" : "0", + "skippedRankings" : "0" + }, + "round" : 3, + "tally" : { + "Betsy Hodges" : "2", + "Jacob Frey" : "0", + "Raymond Dehn" : "0", + "Tom Hoch" : "1" + }, + "tallyResults" : [ { + "eliminated" : "Tom Hoch", + "transfers" : { + "Jacob Frey" : "1" + } + } ], + "threshold" : "49" + }, { + "inactiveBallots" : { + "exhaustedChoices" : "0", + "overvotes" : "0", + "repeatedRankings" : "0", + "skippedRankings" : "0" + }, + "round" : 4, + "tally" : { + "Betsy Hodges" : "2", + "Jacob Frey" : "1", + "Raymond Dehn" : "0" + }, + "tallyResults" : [ { + "eliminated" : "Raymond Dehn", + "transfers" : { } + } ], + "threshold" : "46" + }, { + "inactiveBallots" : { + "exhaustedChoices" : "0", + "overvotes" : "0", + "repeatedRankings" : "0", + "skippedRankings" : "0" + }, + "round" : 5, + "tally" : { + "Betsy Hodges" : "2", + "Jacob Frey" : "1" + }, + "tallyResults" : [ { + "elected" : "Betsy Hodges", + "transfers" : { } + } ], + "threshold" : "42" + } ], + "summary" : { + "finalThreshold" : "42", + "numCandidates" : 19, + "numWinners" : 1, + "totalNumBallots" : "3", + "undervotes" : 0 + } +} \ No newline at end of file From 4c331f7533d6a94b809e5c47fd4d36985c69a299 Mon Sep 17 00:00:00 2001 From: Armin Samii Date: Fri, 20 Sep 2024 13:49:50 -0400 Subject: [PATCH 6/7] PR Review --- .../brightspots/rcv/ResultsWriter.java | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/src/main/java/network/brightspots/rcv/ResultsWriter.java b/src/main/java/network/brightspots/rcv/ResultsWriter.java index aac2955ef..e1679c044 100644 --- a/src/main/java/network/brightspots/rcv/ResultsWriter.java +++ b/src/main/java/network/brightspots/rcv/ResultsWriter.java @@ -291,6 +291,16 @@ private void generateSummarySpreadsheet( TabulateBySlice slice, String sliceId, String outputPath) throws IOException { + // Check that all candidates are included in the candidate order + Set expectedCandidates = roundTallies.get(1).getCandidates(); + Set providedCandidates = new HashSet<>(candidateOrder); + if (!expectedCandidates.equals(providedCandidates)) { + throw new IllegalArgumentException( + "Candidate order must include all candidates in the contest. " + + "\nExpected: " + expectedCandidates + + "\nProvided: " + providedCandidates); + } + AuditableFile csvFile = new AuditableFile(outputPath + ".csv"); Logger.info("Generating summary spreadsheet: %s...", csvFile.getAbsolutePath()); @@ -323,16 +333,6 @@ private void generateSummarySpreadsheet( csvPrinter.print(isSlice ? "Elected*" : "Elected"); printActionSummary(csvPrinter, roundToWinningCandidates); - // Check that all candidates are included in the candidate order - Set expectedCandidates = roundTallies.get(1).getCandidates(); - Set providedCandidates = new HashSet<>(candidateOrder); - if (!expectedCandidates.equals(providedCandidates)) { - throw new IllegalArgumentException( - "Candidate order must include all candidates in the contest. " - + "\nExpected: " + expectedCandidates - + "\nProvided: " + providedCandidates); - } - // For each candidate: for each round: output total votes for (String candidate : candidateOrder) { String candidateDisplayName = config.getNameForCandidate(candidate); From 124737a75099120140e8c2c9f516c6f93b324ead Mon Sep 17 00:00:00 2001 From: Armin Samii Date: Wed, 25 Sep 2024 14:22:44 -0400 Subject: [PATCH 7/7] correct percentages for STV and first-round-determines-threshold (#883) * correct percentages for STV and first-round-determines-threshold * vote % divisor fix * fix tests * STV last round use "Final Round Surplus" rather than inactive (#884) * STV last round use "Final Round Surplus" rather than inactive * PR Review: clean up, simpler configs * fix incorrect transfers * clean up with ternary operator * bring text variations within the enum * PR Review Comments: clean up STATUSES_TO_PRINT --------- Co-authored-by: yezr <8996546+yezr@users.noreply.github.com> --- .../brightspots/rcv/CastVoteRecord.java | 67 +++++++++++++++-- .../brightspots/rcv/ContestConfig.java | 4 + .../brightspots/rcv/ResultsWriter.java | 75 +++++++++++-------- .../network/brightspots/rcv/RoundTally.java | 7 +- .../network/brightspots/rcv/Tabulator.java | 43 ++++++----- ...2013_minneapolis_park_expected_summary.csv | 27 +++---- ...013_minneapolis_park_expected_summary.json | 3 +- ...polis_park_bottoms_up_expected_summary.csv | 20 ++--- ...minneapolis_park_hare_expected_summary.csv | 27 +++---- ...inneapolis_park_hare_expected_summary.json | 3 +- ...lis_park_sequential_1_expected_summary.csv | 20 ++--- ...lis_park_sequential_2_expected_summary.csv | 18 ++--- ...lis_park_sequential_3_expected_summary.csv | 16 ++-- ...rmines_threshold_test_expected_summary.csv | 4 +- ...shold_tiebreaker_test_expected_summary.csv | 4 +- ...hreshold_expected_pc1_precinct_summary.csv | 19 ++--- ...hreshold_expected_pc2_precinct_summary.csv | 13 ++-- ...reshold_expected_pc2_precinct_summary.json | 3 +- ..._multi_seat_threshold_expected_summary.csv | 19 ++--- ...multi_seat_threshold_expected_summary.json | 5 +- ...nners_than_candidates_expected_summary.csv | 1 + ...ners_than_candidates_expected_summary.json | 1 + .../multi_seat_uwi_test_expected_summary.csv | 7 +- .../multi_seat_uwi_test_expected_summary.json | 1 + ...quential_with_batch_2_expected_summary.csv | 4 +- ..._continue_until_two_1_expected_summary.csv | 6 +- ..._continue_until_two_2_expected_summary.csv | 4 +- ..._one_winner_per_round_expected_summary.csv | 15 ++-- ...one_winner_per_round_expected_summary.json | 10 +-- ..._fractional_threshold_expected_summary.csv | 19 ++--- ...fractional_threshold_expected_summary.json | 5 +- ...inner_whole_threshold_expected_summary.csv | 19 ++--- ...nner_whole_threshold_expected_summary.json | 5 +- 33 files changed, 291 insertions(+), 203 deletions(-) diff --git a/src/main/java/network/brightspots/rcv/CastVoteRecord.java b/src/main/java/network/brightspots/rcv/CastVoteRecord.java index f34e9c433..30dbed6c3 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 d32bdcc84..d261eaff3 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 e1679c044..764886030 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") @@ -347,8 +356,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); @@ -391,20 +405,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); @@ -464,6 +467,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. " @@ -1012,23 +1030,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 @@ -1047,7 +1058,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 2ff4cf8cb..98c038608 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 de52e3723..0f44f5834 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 83b406e17..874338c49 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 6ee956d59..5ddb8cad3 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 6f7ae9a9e..06e352c57 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 b49ca2f80..91a5c9fc4 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 8ca6d0fd4..8b5357216 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 900aa9bd7..aeb6e2403 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 08bd832e4..db0f06a0b 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 f9d0c88ea..2139e79ae 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 dd8cad123..70a94d11a 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 3e329280c..2c8ac9754 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 04430c176..807d9474f 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 a79494a2d..a65d3cc42 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 b5aff97d6..13a04be5a 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 e29d7219e..13a432225 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 d6b57821c..682d324d4 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 4304d9f42..5af221b3e 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 1f86f83d3..bc21bf738 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 eba607d2c..d2c0e8ff4 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 962b59af9..d4041fe4e 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 9f7935a16..49c770560 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 0c406f75a..0928db638 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 6a6ebd5d1..952d33fa4 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 3853e842e..edf4fddb2 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 4032b59f5..fed63d99c 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 b378708c2..257b5afa4 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 021bbb998..982d420c4 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 e3d10f20c..b90c40daa 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 354f47a4f..d8171b20d 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" : {