Commit Graph

83 Commits

Author SHA1 Message Date
RunasSudo 6968df5c9b
Fix incorrect crediting of votes when surplus votes transferred at values received
Many thanks to J Groves for pointing this out
2022-03-11 13:33:28 +11:00
RunasSudo 6304e1128a
Validate well-formedness of constraints, better constraint errors 2021-10-29 23:33:27 +11:00
RunasSudo 93cb72c33a
Update terminology and remove "stratify (floor)" support
Cincinnati -> Inclusive Hare (previous usage was erroneous/nonstandard)
Every n-th ballot -> Cincinnati
Remove "stratify (floor)" as it is not in contemporary use
2021-09-27 19:02:30 +10:00
RunasSudo 0506283ae4
Add test case (Dail-like rules) from Grey-Fitzgerald ERS booklet 2021-09-26 02:27:50 +10:00
RunasSudo 3a4e53e1f0
Implement Dáil Éireann STV 2021-09-14 23:13:45 +10:00
RunasSudo a641b97d1f
More work on unit/integration tests 2021-09-14 02:27:35 +10:00
RunasSudo e1e347c255
More unit/integration tests 2021-09-13 03:43:17 +10:00
RunasSudo 473c8bcb39
Test cases comparing PRSA 1977 results with count.nl at https://gitlab.com/RunasSudo/prsa_count 2021-09-10 01:05:37 +10:00
RunasSudo d222207318
Bundle all integration tests in single binary
Reduces test build time from ~2m30s to ~30s
2021-09-10 00:02:52 +10:00
RunasSudo ab3067566d
Fix bug attempting to defer surplus with 0 or 1 continuing candidates
Add regression test
2021-09-09 13:36:27 +10:00
RunasSudo 260dee1bb5
Fix bugs
Fix bug excluding-by-value/source candidates with no votes
Fix bug electing too many candidates if more reach the quota than vacancies remain
Add regression test
2021-09-09 01:24:50 +10:00
RunasSudo e4bfe45f49
Display up to 5 names only in web UI header, separate with line breaks 2021-09-06 02:43:33 +10:00
RunasSudo 09c4a375a7
Better error messages when insufficient candidates to fill vacancies 2021-09-05 22:53:59 +10:00
RunasSudo a24ac3658a
Implement support for equal rankings 2021-09-04 02:30:01 +10:00
RunasSudo 27ead09960
Complete BLT writer and implement tests for file conversions 2021-09-02 22:35:10 +10:00
RunasSudo 31cdf3d99d
Add validation test for Church of England rules 2021-08-26 22:13:23 +10:00
RunasSudo 88ab06d633
Add subcommand for BLT/CSP file conversion 2021-08-20 02:29:47 +10:00
RunasSudo 85b695c133
Improve performance of Scottish STV
Remove reliance on normalising ballot papers
2021-08-19 20:11:42 +10:00
RunasSudo 94787e7677
Store vote values at the parcel level rather than the vote level
~50% increase in performance
2021-08-16 00:46:05 +10:00
RunasSudo eb3c7d0f53
Fix STVOptions::describe for --min-threshold 2021-08-09 23:27:58 +10:00
RunasSudo 9f1476da63
Complete ERS76 implementation and add test case 2021-08-09 19:50:49 +10:00
RunasSudo 5024496f61
Add new ERS97 test 2021-08-09 19:02:51 +10:00
RunasSudo 764ebd98e6
Various tidyups
Use "Droop" as default quota (since same as "Droop (exact)" when quota not rounded)
Rename ers97.blt
Update documentation
2021-08-09 17:58:05 +10:00
RunasSudo ae0d1d8411
Implement dynamic quotas 2021-08-08 21:41:10 +10:00
RunasSudo b58922c57b
WIP: no immediate election? 2021-08-07 22:34:55 +10:00
RunasSudo 8a4219303a
Implement Minneapolis STV 2021-08-05 21:47:34 +10:00
RunasSudo 429191dc81
With --sample-per-ballot, terminate immediately on electing the required number 2021-08-05 20:23:54 +10:00
RunasSudo 33594c110e
Implement stratified and by-order sampling 2021-08-05 18:41:39 +10:00
RunasSudo f3e4071886
Refactor tests specification using builder pattern 2021-08-05 01:13:54 +10:00
RunasSudo 0800701960
Implement configurable --sample-per-ballot 2021-08-04 13:46:32 +10:00
RunasSudo 0efc1e6eab
Complete implementation of Cambridge STV
Implement --min-threshold
Add test
2021-08-03 23:42:59 +10:00
RunasSudo 6da51837a5
Rename --round-tvs to --round-surplus-fractions and --round-weights to --round-values 2021-08-03 16:46:21 +10:00
RunasSudo ea8c452737
Prevent bulk election and bulk exclusion violating constraints 2021-08-02 00:10:17 +10:00
RunasSudo 32e89312fa
Show stage progress during tie that occurs in the middle of a stage 2021-07-31 17:42:33 +10:00
RunasSudo 83d0a9bb80
Better error messages 2021-07-31 15:24:23 +10:00
RunasSudo 3801d30527
Switch to handwritten BLT parser 2021-07-29 03:24:51 +10:00
RunasSudo 5f48a88bbe
Validated against 2019 NSW Senate election
Disable bulk election for Senate STV
Update documentation
2021-07-23 20:30:14 +10:00
RunasSudo e3419b6462
Add comments to supplied BLT files 2021-07-23 16:58:46 +10:00
RunasSudo cca097f943
Use Pest-based parser for BLT files
Support comments, optional newlines, etc.
2021-07-23 16:45:54 +10:00
RunasSudo 3b8ccd097e
Extend early bulk election to multiple vacancies if the leading candidates cannot be overtaken 2021-07-23 01:38:37 +10:00
RunasSudo bea51611b0
Implement Australian Capital Territory STV 2021-07-22 20:31:06 +10:00
RunasSudo 2ef7bf24f2
Correctly compute vote required for election when using different quotas/quota criteria 2021-07-21 13:43:16 +10:00
RunasSudo ed4a86e699
More aggressive early bulk election 2021-07-21 00:46:32 +10:00
RunasSudo c070ec8eae
NZ Meek STV validated against Hill (2006) implementation 2021-07-13 20:44:09 +10:00
RunasSudo 0d9196a951
Refactoring 2021-06-29 16:48:02 +10:00
RunasSudo 34545ad179
Check for ties when electing candidates with surpluses
Refactor constraint-related code into constraints module
2021-06-28 00:56:28 +10:00
RunasSudo c12743285a
Add documentation on constraints 2021-06-27 23:15:33 +10:00
RunasSudo 31eda1fcec
Add test cases for constraints 2021-06-27 22:46:37 +10:00
RunasSudo ba3db26263
Describe use of constraints in lead-in text 2021-06-27 22:24:25 +10:00
RunasSudo 38eef74e77
Implement constraints (guard-doom method) for CLI 2021-06-27 21:57:24 +10:00