Skip to content

Commit

Permalink
v1.1.0 (#454)
Browse files Browse the repository at this point in the history
### New features:
* Added support for converting Dominion JSON CVRs to generic .csv format (including precinct portions) (#404, #406, #407, #408, #415, #439)
* Added multiSeatBottomsUpPercentageThreshold option (#403)
* Added CLI option to convert Dominion CVR to generic .csv (#408)
* New GUI menu and conversion options (can now convert to CDF and convert Dominion to generic via the GUI) (#408, #421)
* Added Dominion Alaska CVR to sample_input folder

### Bug fixes:
* Batch elimination now works properly with singleSeatContinueUntilTwoCandidatesRemain (#396)
* In a multi-seat contest, if someone wins in the first round, we now automatically eliminate undeclared write-ins before we eliminate any other candidates; previously, we treated UWIs like a normal candidate, which meant we potentially eliminated other candidates with lower tallies first (#397)
* If UWI exceeds the winning threshold in the initial count, we no longer mistakenly elect this candidate (#398)

### Backend updates:
* Updated dependencies to latest version: JDK, JavaFX, Checkstyle google_checks.xml, Checkstyle plugin, org.openjfx.javafxplugin, org.beryx.jlink, org.apache.commons:commons-csv, org.apache.poi:poi-ooxml, com.fasterxml.jackson.core:jackson-*
* Added special code to test configs to obviate the need to update the version with each increment (#426)
* Updated tests and improved test coverage
* Copyright update (#414)
* Code cleanup
  • Loading branch information
HEdingfield committed May 24, 2020
1 parent 994d322 commit 94bb749
Show file tree
Hide file tree
Showing 99 changed files with 91,038 additions and 360 deletions.
21 changes: 11 additions & 10 deletions 2013_minneapolis_mayor/2013_minneapolis_mayor_config.json
Original file line number Diff line number Diff line change
@@ -1,15 +1,16 @@
{
"tabulatorVersion": "1.0.1",
"outputSettings" : {
"contestName" : "2013 Minneapolis Mayor",
"outputDirectory" : "output",
"contestDate" : "",
"contestJurisdiction" : "Minneapolis",
"contestOffice" : "Mayor",
"tabulateByPrecinct" : true,
"generateCdfJson" : false
"tabulatorVersion": "TEST",
"outputSettings": {
"contestName": "2013 Minneapolis Mayor",
"outputDirectory": "output",
"contestDate": "",
"contestJurisdiction": "Minneapolis",
"contestOffice": "Mayor",
"tabulateByPrecinct": true,
"generateCdfJson": false
},
"cvrFileSources" : [ {
"cvrFileSources": [
{
"filePath" : "2013_minneapolis_mayor_cvr.xlsx",
"firstVoteColumnIndex" : "2",
"firstVoteRowIndex" : "2",
Expand Down
Original file line number Diff line number Diff line change
@@ -1,15 +1,16 @@
{
"tabulatorVersion": "1.0.1",
"outputSettings" : {
"contestName" : "2013 Minneapolis Mayor",
"outputDirectory" : "output",
"contestDate" : "",
"contestJurisdiction" : "",
"contestOffice" : "",
"tabulateByPrecinct" : false,
"generateCdfJson" : false
"tabulatorVersion": "TEST",
"outputSettings": {
"contestName": "2013 Minneapolis Mayor",
"outputDirectory": "output",
"contestDate": "",
"contestJurisdiction": "",
"contestOffice": "",
"tabulateByPrecinct": false,
"generateCdfJson": false
},
"cvrFileSources" : [ {
"cvrFileSources": [
{
"filePath" : "2013_minneapolis_mayor_cvr_1.xlsx",
"firstVoteColumnIndex" : "2",
"firstVoteRowIndex" : "2",
Expand Down
21 changes: 11 additions & 10 deletions 2013_minneapolis_park/2013_minneapolis_park_config.json
Original file line number Diff line number Diff line change
@@ -1,15 +1,16 @@
{
"tabulatorVersion": "1.0.1",
"outputSettings" : {
"contestName" : "2013 Minneapolis Park Board",
"outputDirectory" : "output",
"contestDate" : "",
"contestJurisdiction" : "Minneapolis",
"contestOffice" : "Park and Recreation Commissioner",
"tabulateByPrecinct" : false,
"generateCdfJson" : false
"tabulatorVersion": "TEST",
"outputSettings": {
"contestName": "2013 Minneapolis Park Board",
"outputDirectory": "output",
"contestDate": "",
"contestJurisdiction": "Minneapolis",
"contestOffice": "Park and Recreation Commissioner",
"tabulateByPrecinct": false,
"generateCdfJson": false
},
"cvrFileSources" : [ {
"cvrFileSources": [
{
"filePath" : "2013_minneapolis_park_cvr.xlsx",
"firstVoteColumnIndex" : "2",
"firstVoteRowIndex" : "2",
Expand Down
Original file line number Diff line number Diff line change
@@ -1,15 +1,16 @@
{
"tabulatorVersion": "1.0.1",
"outputSettings" : {
"contestName" : "2013 Minneapolis Park Board",
"outputDirectory" : "output",
"contestDate" : "",
"contestJurisdiction" : "Minneapolis",
"contestOffice" : "Park and Recreation Commissioner",
"tabulateByPrecinct" : false,
"generateCdfJson" : false
"tabulatorVersion": "TEST",
"outputSettings": {
"contestName": "2013 Minneapolis Park Board",
"outputDirectory": "output",
"contestDate": "",
"contestJurisdiction": "Minneapolis",
"contestOffice": "Park and Recreation Commissioner",
"tabulateByPrecinct": false,
"generateCdfJson": false
},
"cvrFileSources" : [ {
"cvrFileSources": [
{
"filePath" : "2013_minneapolis_park_bottoms_up_cvr.xlsx",
"firstVoteColumnIndex" : "2",
"firstVoteRowIndex" : "2",
Expand Down
21 changes: 11 additions & 10 deletions 2013_minneapolis_park_hare/2013_minneapolis_park_hare_config.json
Original file line number Diff line number Diff line change
@@ -1,15 +1,16 @@
{
"tabulatorVersion": "1.0.1",
"outputSettings" : {
"contestName" : "2013 Minneapolis Park Board",
"outputDirectory" : "output",
"contestDate" : "",
"contestJurisdiction" : "Minneapolis",
"contestOffice" : "Park and Recreation Commissioner",
"tabulateByPrecinct" : false,
"generateCdfJson" : false
"tabulatorVersion": "TEST",
"outputSettings": {
"contestName": "2013 Minneapolis Park Board",
"outputDirectory": "output",
"contestDate": "",
"contestJurisdiction": "Minneapolis",
"contestOffice": "Park and Recreation Commissioner",
"tabulateByPrecinct": false,
"generateCdfJson": false
},
"cvrFileSources" : [ {
"cvrFileSources": [
{
"filePath" : "2013_minneapolis_park_hare_cvr.xlsx",
"firstVoteColumnIndex" : "2",
"firstVoteRowIndex" : "2",
Expand Down
Original file line number Diff line number Diff line change
@@ -1,15 +1,16 @@
{
"tabulatorVersion": "1.0.1",
"outputSettings" : {
"contestName" : "2013 Minneapolis Park Board",
"outputDirectory" : "output",
"contestDate" : "",
"contestJurisdiction" : "Minneapolis",
"contestOffice" : "Park and Recreation Commissioner",
"tabulateByPrecinct" : false,
"generateCdfJson" : false
"tabulatorVersion": "TEST",
"outputSettings": {
"contestName": "2013 Minneapolis Park Board",
"outputDirectory": "output",
"contestDate": "",
"contestJurisdiction": "Minneapolis",
"contestOffice": "Park and Recreation Commissioner",
"tabulateByPrecinct": false,
"generateCdfJson": false
},
"cvrFileSources" : [ {
"cvrFileSources": [
{
"filePath" : "2013_minneapolis_park_sequential_cvr.xlsx",
"firstVoteColumnIndex" : "2",
"firstVoteRowIndex" : "2",
Expand Down
21 changes: 11 additions & 10 deletions 2015_portland_mayor/2015_portland_mayor_config.json
Original file line number Diff line number Diff line change
@@ -1,15 +1,16 @@
{
"tabulatorVersion": "1.0.1",
"outputSettings" : {
"contestName" : "Portland 2015 Mayoral Race",
"outputDirectory" : "output",
"contestDate" : "2015-11-03",
"contestJurisdiction" : "Portland, ME",
"contestOffice" : "Mayor",
"tabulateByPrecinct" : false,
"generateCdfJson" : false
"tabulatorVersion": "TEST",
"outputSettings": {
"contestName": "Portland 2015 Mayoral Race",
"outputDirectory": "output",
"contestDate": "2015-11-03",
"contestJurisdiction": "Portland, ME",
"contestOffice": "Mayor",
"tabulateByPrecinct": false,
"generateCdfJson": false
},
"cvrFileSources" : [ {
"cvrFileSources": [
{
"filePath" : "2015_portland_mayor_cvr.xlsx",
"firstVoteColumnIndex" : "4",
"firstVoteRowIndex" : "2",
Expand Down
21 changes: 11 additions & 10 deletions 2015_portland_mayor_codes/2015_portland_mayor_codes_config.json
Original file line number Diff line number Diff line change
@@ -1,15 +1,16 @@
{
"tabulatorVersion": "1.0.1",
"outputSettings" : {
"contestName" : "Portland 2015 Mayoral Race",
"outputDirectory" : "output",
"contestDate" : "2015-11-03",
"contestJurisdiction" : "Portland, ME",
"contestOffice" : "Mayor",
"tabulateByPrecinct" : false,
"generateCdfJson" : false
"tabulatorVersion": "TEST",
"outputSettings": {
"contestName": "Portland 2015 Mayoral Race",
"outputDirectory": "output",
"contestDate": "2015-11-03",
"contestJurisdiction": "Portland, ME",
"contestOffice": "Mayor",
"tabulateByPrecinct": false,
"generateCdfJson": false
},
"cvrFileSources" : [ {
"cvrFileSources": [
{
"filePath" : "2015_portland_mayor_codes_cvr.xlsx",
"firstVoteColumnIndex" : "4",
"firstVoteRowIndex" : "2",
Expand Down
21 changes: 11 additions & 10 deletions 2017_minneapolis_mayor/2017_minneapolis_mayor_config.json
Original file line number Diff line number Diff line change
@@ -1,15 +1,16 @@
{
"tabulatorVersion": "1.0.1",
"outputSettings" : {
"contestName" : "2017 Minneapolis mayoral race",
"outputDirectory" : "output",
"contestDate" : "2017-11-07",
"contestJurisdiction" : "Minneapolis, MN",
"contestOffice" : "Mayor",
"tabulateByPrecinct" : true,
"generateCdfJson" : false
"tabulatorVersion": "TEST",
"outputSettings": {
"contestName": "2017 Minneapolis mayoral race",
"outputDirectory": "output",
"contestDate": "2017-11-07",
"contestJurisdiction": "Minneapolis, MN",
"contestOffice": "Mayor",
"tabulateByPrecinct": true,
"generateCdfJson": false
},
"cvrFileSources" : [ {
"cvrFileSources": [
{
"filePath" : "2017_minneapolis_mayor_cvr.xlsx",
"firstVoteColumnIndex" : "2",
"firstVoteRowIndex" : "2",
Expand Down
21 changes: 11 additions & 10 deletions 2018_maine_governor_primary/2018_maine_governor_primary_config.json
Original file line number Diff line number Diff line change
@@ -1,15 +1,16 @@
{
"tabulatorVersion": "1.0.1",
"outputSettings" : {
"contestName" : "Maine 2018 Democratic Governor Primary race",
"outputDirectory" : "output",
"contestDate" : "2018-06-12",
"contestJurisdiction" : "Maine",
"contestOffice" : "Governor",
"tabulateByPrecinct" : false,
"generateCdfJson" : false
"tabulatorVersion": "TEST",
"outputSettings": {
"contestName": "Maine 2018 Democratic Governor Primary race",
"outputDirectory": "output",
"contestDate": "2018-06-12",
"contestJurisdiction": "Maine",
"contestOffice": "Governor",
"tabulateByPrecinct": false,
"generateCdfJson": false
},
"cvrFileSources" : [ {
"cvrFileSources": [
{
"filePath" : "2018_maine_governor_primary_cvr.xlsx",
"firstVoteColumnIndex" : "4",
"firstVoteRowIndex" : "2",
Expand Down
21 changes: 11 additions & 10 deletions continue_tabulation_test/continue_tabulation_test_config.json
Original file line number Diff line number Diff line change
@@ -1,15 +1,16 @@
{
"tabulatorVersion": "1.0.1",
"outputSettings" : {
"contestName" : "Portland 2015 Mayoral Race",
"outputDirectory" : "output",
"contestDate" : "2015-11-03",
"contestJurisdiction" : "Portland, ME",
"contestOffice" : "Mayor",
"tabulateByPrecinct" : false,
"generateCdfJson" : false
"tabulatorVersion": "TEST",
"outputSettings": {
"contestName": "Portland 2015 Mayoral Race",
"outputDirectory": "output",
"contestDate": "2015-11-03",
"contestJurisdiction": "Portland, ME",
"contestOffice": "Mayor",
"tabulateByPrecinct": false,
"generateCdfJson": false
},
"cvrFileSources" : [ {
"cvrFileSources": [
{
"filePath" : "continue_tabulation_test_cvr.xlsx",
"firstVoteColumnIndex" : "4",
"firstVoteRowIndex" : "2",
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
{
"tabulatorVersion" : "TEST",
"outputSettings" : {
"contestName" : "Continue Until Two + Batch Elimination Test",
"outputDirectory" : "output",
"contestDate" : "",
"contestJurisdiction" : "",
"contestOffice" : "",
"tabulateByPrecinct" : false,
"generateCdfJson" : false
},
"cvrFileSources" : [ {
"filePath" : "continue_until_two_with_batch_elimination_test_cvr.xlsx",
"firstVoteColumnIndex" : "2",
"firstVoteRowIndex" : "2",
"idColumnIndex" : "",
"precinctColumnIndex" : "",
"provider" : ""
} ],
"candidates" : [ {
"name" : "A",
"code" : "",
"excluded" : false
}, {
"name" : "B",
"code" : "",
"excluded" : false
}, {
"name" : "C",
"code" : "",
"excluded" : false
}, {
"name" : "D",
"code" : "",
"excluded" : false
}, {
"name" : "E",
"code" : "",
"excluded" : false
}, {
"name" : "F",
"code" : "",
"excluded" : false
}, {
"name" : "G",
"code" : "",
"excluded" : false
} ],
"rules" : {
"tiebreakMode" : "usePermutationInConfig",
"overvoteRule" : "exhaustImmediately",
"winnerElectionMode" : "singleSeatContinueUntilTwoCandidatesRemain",
"randomSeed" : "",
"numberOfWinners" : "1",
"multiSeatBottomsUpPercentageThreshold" : "",
"decimalPlacesForVoteArithmetic" : "4",
"minimumVoteThreshold" : "0",
"maxSkippedRanksAllowed" : "1",
"maxRankingsAllowed" : "max",
"nonIntegerWinningThreshold" : false,
"hareQuota" : false,
"batchElimination" : true,
"exhaustOnDuplicateCandidate" : false,
"treatBlankAsUndeclaredWriteIn" : false,
"overvoteLabel" : "",
"undervoteLabel" : "",
"undeclaredWriteInLabel" : "",
"rulesDescription" : ""
}
}
Binary file not shown.

0 comments on commit 94bb749

Please sign in to comment.