Commit Graph

50 Commits

Author SHA1 Message Date
RunasSudo 04f1b9c177
Fix bug in ERS97 implementation
Do not attempt to elect candidates already elected
2021-01-07 03:59:49 +11:00
RunasSudo 7ee56f97f8
Display order of election in count report 2021-01-05 03:50:39 +11:00
RunasSudo 60008d1e84
Add forwards tie breaking 2021-01-05 01:27:30 +11:00
RunasSudo 64d23751a5
Fix bugs in ERS97 implementation
Re-calculate votes required for election after electing a candidate
Round votes required for election up in accordance with vote rounding
2021-01-04 20:46:18 +11:00
RunasSudo 0b3651d450
Display error message in JS version when known STVException 2021-01-04 19:34:55 +11:00
RunasSudo 6b5c188668
Adjust PRSA 1977 implementation
Count in votes to 3 decimal places
Round transfer values correctly
2021-01-04 18:10:07 +11:00
RunasSudo fb33a96d37
Implement ERS97 2021-01-04 17:26:11 +11:00
RunasSudo 1f4c7f8efe
Tweak CLI interface
Default to "prompt" for ties
Allow hiding excluded candidates and sorting by votes in count report
2021-01-03 19:16:48 +11:00
RunasSudo 61601f05cc
Make Wright method a variant of regular STV as an exclusion method 2021-01-03 19:04:14 +11:00
RunasSudo 8d7a1ea1f9
Optimisations for number handling
DRY number classes
Implement __iadd__, etc. for better performance
2021-01-03 18:39:32 +11:00
RunasSudo 673b531475
Optimisation: Do not re-sort already sorted parcels in exclusion by_value 2021-01-03 17:20:13 +11:00
RunasSudo 891f82e148
Fix bug in JS implementation of exclusive Gregory
Remove dependency on Transcrypt's itertools.groupby as this does not appear to work
2021-01-03 02:05:49 +11:00
RunasSudo 3b9a98fabd
Improve pretty printing
Print stage of count
Avoid printing too many decimal places in JS client
2021-01-03 02:05:15 +11:00
RunasSudo e219969711
Expose advanced rounding options in count software 2021-01-03 01:23:11 +11:00
RunasSudo a3d79e993a
Implement advanced rounding functionality in API 2021-01-03 00:29:41 +11:00
RunasSudo 7b52f8f06d
Remove native integers mode in preparation for more advanced rounding options 2021-01-03 00:29:24 +11:00
RunasSudo 8a304aedcf
Fix/tweak numbers implementation
Round fixed point decimals in initialiser to match Python behaviour
Add pretty printing for Python
2021-01-02 23:35:17 +11:00
RunasSudo 0b567e66e3
Rename parcels_by_value to by_value and update documentation 2020-12-31 16:50:19 +11:00
RunasSudo 29c15645b4
Fix bug in STV implementation
Do not allow surplus transfers to interrupt a candidate exclusion
2020-12-31 01:51:13 +11:00
RunasSudo 61506f0082
Implement exclusion of parcels by value + Senate STV 2020-12-30 02:33:09 +11:00
RunasSudo 803941a53a
Raise Exception in Python when attempting to operate on incompatible types, as this will be invalid in JS 2020-12-30 02:32:36 +11:00
RunasSudo f0e8bac4b7
Add test case based on CSM15 ballot data 2020-12-29 22:55:21 +11:00
RunasSudo 509768c071
Separate out parcel handling logic 2020-12-29 02:43:37 +11:00
RunasSudo ec75a61406
Fix error/bug with Wright STV in Python CLI 2020-12-28 01:14:19 +11:00
RunasSudo c9ff0a16fb
Fix error/bug when excluding candidates in exclusive Gregory 2020-12-27 23:30:54 +11:00
RunasSudo 7ad142f19d
Implement prompting for ties 2020-12-27 23:28:16 +11:00
RunasSudo 4e06dfe068
Minor tweaks
Show progressive transfers during exclusive Gregory exclusion
Don't perform bulk election in the middle of an exclusion
Limit decimals displayed if using fixed numbers with < 2 dps
2020-12-27 21:50:30 +11:00
RunasSudo f6596bd8e8
Implement exclusive Gregory and PRSA 1977 rules 2020-12-27 21:25:40 +11:00
RunasSudo 8307ebf86c
Rename base WIG/UIG classes 2020-12-27 18:57:36 +11:00
RunasSudo 81dbadb8ae
Fix error/bug in unweighted inclusive Gregory implementation 2020-12-27 18:55:29 +11:00
RunasSudo d1528ee987
Implement option to disable bulk election 2020-12-27 18:28:35 +11:00
RunasSudo 503fed26d1
Implement backwards tie breaking 2020-12-24 01:36:39 +11:00
RunasSudo 06ab133615
Implement random breaking of ties 2020-12-24 01:09:47 +11:00
RunasSudo e3edc80f2b
Begin implementation of tie handling 2020-12-23 22:37:48 +11:00
RunasSudo 8347a20675
Implement initial Python CLI version 2020-12-23 21:39:43 +11:00
RunasSudo 5f4d6aa7ca
Refactor/clean up (un)weighted inclusive Gregory handling 2020-12-23 20:03:15 +11:00
RunasSudo fab58ab892
Fix rounding errors in unweighted inclusive Gregory mode 2020-10-19 01:40:27 +11:00
RunasSudo 77d773605a
Avoid excessive rounding for unweighted inclusive Gregory in non-integer modes 2020-10-19 00:58:06 +11:00
RunasSudo f8ee464421
Implement Wright STV 2020-10-18 21:47:59 +11:00
RunasSudo 631fa432c6
Code refactor 2020-10-18 21:24:12 +11:00
RunasSudo e0c56c5b1d
Implement un/weighted inclusive Gregory transfers 2020-10-18 20:41:48 +11:00
RunasSudo dcc3dcc5e7
Customisable options for STV count in backend 2020-10-18 17:54:50 +11:00
RunasSudo 907c296337
Implement integer number method 2020-10-18 03:48:00 +11:00
RunasSudo 41251e11f6
Implement fixed-point arithmetic 2020-10-18 03:25:41 +11:00
RunasSudo 93f0100856
Show totals 2020-10-18 02:54:51 +11:00
RunasSudo e4bd80c26d
Fix logic errors - eek! 2020-10-18 00:38:07 +11:00
RunasSudo fa18641462
Cosmetic improvements 2020-10-17 23:09:29 +11:00
RunasSudo 9092376998
Implement native numbers mode 2020-10-17 23:03:32 +11:00
RunasSudo 7d1635269a
Basic election counting logic 2020-10-17 23:03:12 +11:00
RunasSudo cca71614b1
Initial commit 2020-10-17 18:45:12 +11:00