Also bulk elect based on guarded candidates
This commit is contained in:
parent
c12743285a
commit
d697871414
@ -929,18 +929,18 @@ where
|
||||
|
||||
/// Declare all continuing candidates elected, if the number equals the number of remaining vacancies
|
||||
fn bulk_elect<N: Number>(state: &mut CountState<N>, opts: &STVOptions) -> Result<bool, STVError> {
|
||||
if state.election.candidates.len() - state.num_excluded <= state.election.seats {
|
||||
let mut hopefuls: Vec<&Candidate> = state.election.candidates.iter()
|
||||
.filter(|c| {
|
||||
let cc = state.candidates.get(c).unwrap();
|
||||
return cc.state == CandidateState::Hopeful || cc.state == CandidateState::Guarded;
|
||||
})
|
||||
.collect();
|
||||
|
||||
if state.num_elected + hopefuls.len() <= state.election.seats {
|
||||
state.kind = None;
|
||||
state.title = "Bulk election".to_string();
|
||||
|
||||
// Bulk elect all remaining candidates
|
||||
let mut hopefuls: Vec<&Candidate> = state.election.candidates.iter()
|
||||
.filter(|c| {
|
||||
let cc = state.candidates.get(c).unwrap();
|
||||
return cc.state == CandidateState::Hopeful || cc.state == CandidateState::Guarded;
|
||||
})
|
||||
.collect();
|
||||
|
||||
while !hopefuls.is_empty() {
|
||||
let max_votes = hopefuls.iter()
|
||||
.max_by(|a, b| state.candidates.get(**a).unwrap().votes.cmp(&state.candidates.get(**b).unwrap().votes))
|
||||
|
Loading…
Reference in New Issue
Block a user