Report transfer values in detailed comments
This commit is contained in:
parent
235c17b33a
commit
c78a30d5b2
@ -272,7 +272,6 @@ class BaseSTVCounter:
|
||||
__pragma__('noopov')
|
||||
|
||||
# Transfer surplus
|
||||
self.logs.append('Surplus of ' + candidate_surplus.name + ' distributed.')
|
||||
self.do_surplus(candidate_surplus, count_card, surplus)
|
||||
|
||||
# Declare elected any candidates meeting the quota as a result of surpluses
|
||||
|
@ -65,6 +65,24 @@ class WIGSTVCounter(BaseSTVCounter):
|
||||
transferable_votes = total_votes - exhausted_votes
|
||||
__pragma__('noopov')
|
||||
|
||||
__pragma__('opov')
|
||||
if self.options['papers'] == 'transferable':
|
||||
if transferable_votes > surplus:
|
||||
if self.options['round_tvs'] is None:
|
||||
self.logs.append('Surplus of ' + candidate_surplus.name + ' distributed at value ' + (surplus / transferable_votes).pp(2) + '.')
|
||||
else:
|
||||
tv = self.round_tv(surplus / transferable_votes)
|
||||
self.logs.append('Surplus of ' + candidate_surplus.name + ' distributed at value ' + tv.pp(2) + '.')
|
||||
else:
|
||||
self.logs.append('Surplus of ' + candidate_surplus.name + ' distributed at value received.')
|
||||
else:
|
||||
if self.options['round_tvs'] is None:
|
||||
self.logs.append('Surplus of ' + candidate_surplus.name + ' distributed at value ' + (surplus / total_votes).pp(2) + '.')
|
||||
else:
|
||||
tv = self.round_tv(surplus / total_votes)
|
||||
self.logs.append('Surplus of ' + candidate_surplus.name + ' distributed at value ' + tv.pp(2) + '.')
|
||||
__pragma__('noopov')
|
||||
|
||||
for candidate, x in next_preferences.items():
|
||||
cand_ballots = x[0]
|
||||
num_ballots = x[1]
|
||||
@ -82,7 +100,6 @@ class WIGSTVCounter(BaseSTVCounter):
|
||||
if self.options['round_tvs'] is None:
|
||||
self.candidates[candidate].transfers += self.round_votes((num_votes * surplus) / transferable_votes)
|
||||
else:
|
||||
tv = self.round_tv(surplus / transferable_votes)
|
||||
self.candidates[candidate].transfers += self.round_votes(num_votes * tv)
|
||||
else:
|
||||
self.candidates[candidate].transfers += self.round_votes(num_votes) # Do not allow weight to increase
|
||||
@ -90,7 +107,6 @@ class WIGSTVCounter(BaseSTVCounter):
|
||||
if self.options['round_tvs'] is None:
|
||||
self.candidates[candidate].transfers += self.round_votes((num_votes * surplus) / total_votes)
|
||||
else:
|
||||
tv = self.round_tv(surplus / total_votes)
|
||||
self.candidates[candidate].transfers += self.round_votes(num_votes * tv)
|
||||
__pragma__('noopov')
|
||||
|
||||
@ -238,6 +254,24 @@ class UIGSTVCounter(WIGSTVCounter):
|
||||
transferable_votes = total_votes - exhausted_votes
|
||||
__pragma__('noopov')
|
||||
|
||||
__pragma__('opov')
|
||||
if self.options['papers'] == 'transferable':
|
||||
if transferable_votes > surplus:
|
||||
if self.options['round_tvs'] is None:
|
||||
self.logs.append('Surplus of ' + candidate_surplus.name + ' distributed at value ' + (surplus / transferable_ballots).pp(2) + '.')
|
||||
else:
|
||||
tv = self.round_tv(surplus / transferable_ballots)
|
||||
self.logs.append('Surplus of ' + candidate_surplus.name + ' distributed at value ' + tv.pp(2) + '.')
|
||||
else:
|
||||
self.logs.append('Surplus of ' + candidate_surplus.name + ' distributed at value received.')
|
||||
else:
|
||||
if self.options['round_tvs'] is None:
|
||||
self.logs.append('Surplus of ' + candidate_surplus.name + ' distributed at value ' + (surplus / total_ballots).pp(2) + '.')
|
||||
else:
|
||||
tv = self.round_tv(surplus / total_ballots)
|
||||
self.logs.append('Surplus of ' + candidate_surplus.name + ' distributed at value ' + tv.pp(2) + '.')
|
||||
__pragma__('noopov')
|
||||
|
||||
for candidate, x in next_preferences.items():
|
||||
cand_ballots = x[0]
|
||||
num_ballots = x[1]
|
||||
@ -255,7 +289,6 @@ class UIGSTVCounter(WIGSTVCounter):
|
||||
if self.options['round_tvs'] is None:
|
||||
self.candidates[candidate].transfers += self.round_votes((num_ballots * surplus) / transferable_ballots)
|
||||
else:
|
||||
tv = self.round_tv(surplus / transferable_ballots)
|
||||
self.candidates[candidate].transfers += self.round_votes(num_ballots * tv)
|
||||
else:
|
||||
self.candidates[candidate].transfers += self.round_votes(num_votes)
|
||||
@ -263,7 +296,6 @@ class UIGSTVCounter(WIGSTVCounter):
|
||||
if self.options['round_tvs'] is None:
|
||||
self.candidates[candidate].transfers += self.round_votes((num_ballots * surplus) / total_ballots)
|
||||
else:
|
||||
tv = self.round_tv(surplus / total_ballots)
|
||||
self.candidates[candidate].transfers += self.round_votes(num_ballots * tv)
|
||||
__pragma__('noopov')
|
||||
|
||||
@ -325,6 +357,24 @@ class EGSTVCounter(UIGSTVCounter):
|
||||
transferable_votes = total_votes - exhausted_votes
|
||||
__pragma__('noopov')
|
||||
|
||||
__pragma__('opov')
|
||||
if self.options['papers'] == 'transferable':
|
||||
if transferable_votes > surplus:
|
||||
if self.options['round_tvs'] is None:
|
||||
self.logs.append('Surplus of ' + candidate_surplus.name + ' distributed at value ' + (surplus / transferable_ballots).pp(2) + '.')
|
||||
else:
|
||||
tv = self.round_tv(surplus / transferable_ballots)
|
||||
self.logs.append('Surplus of ' + candidate_surplus.name + ' distributed at value ' + tv.pp(2) + '.')
|
||||
else:
|
||||
self.logs.append('Surplus of ' + candidate_surplus.name + ' distributed at value received.')
|
||||
else:
|
||||
if self.options['round_tvs'] is None:
|
||||
self.logs.append('Surplus of ' + candidate_surplus.name + ' distributed at value ' + (surplus / total_ballots).pp(2) + '.')
|
||||
else:
|
||||
tv = self.round_tv(surplus / total_ballots)
|
||||
self.logs.append('Surplus of ' + candidate_surplus.name + ' distributed at value ' + tv.pp(2) + '.')
|
||||
__pragma__('noopov')
|
||||
|
||||
for candidate, x in next_preferences.items():
|
||||
cand_ballots = x[0]
|
||||
num_ballots = x[1]
|
||||
@ -342,7 +392,6 @@ class EGSTVCounter(UIGSTVCounter):
|
||||
if self.options['round_tvs'] is None:
|
||||
self.candidates[candidate].transfers += self.round_votes((num_ballots * surplus) / transferable_ballots)
|
||||
else:
|
||||
tv = self.round_tv(surplus / transferable_ballots)
|
||||
self.candidates[candidate].transfers += self.round_votes(num_ballots * tv)
|
||||
else:
|
||||
self.candidates[candidate].transfers += self.round_votes(num_votes)
|
||||
@ -350,7 +399,6 @@ class EGSTVCounter(UIGSTVCounter):
|
||||
if self.options['round_tvs'] is None:
|
||||
self.candidates[candidate].transfers += self.round_votes((num_ballots * surplus) / total_ballots)
|
||||
else:
|
||||
tv = self.round_tv(surplus / total_ballots)
|
||||
self.candidates[candidate].transfers += self.round_votes(num_ballots * tv)
|
||||
__pragma__('noopov')
|
||||
|
||||
|
Reference in New Issue
Block a user