added rotate function to even out bias from party => candidate list
This commit is contained in:
parent
acca1c2580
commit
9d217c6678
|
|
@ -1,5 +1,4 @@
|
||||||
use itertools::Itertools;
|
use itertools::Itertools;
|
||||||
|
|
||||||
use crate::header::Header;
|
use crate::header::Header;
|
||||||
|
|
||||||
#[derive(Copy,Clone,Debug,PartialEq)]
|
#[derive(Copy,Clone,Debug,PartialEq)]
|
||||||
|
|
@ -72,7 +71,10 @@ impl Ballot {
|
||||||
let mut votes = Vec::<usize>::new();
|
let mut votes = Vec::<usize>::new();
|
||||||
|
|
||||||
for party_id in self.votes {
|
for party_id in self.votes {
|
||||||
|
let start = votes.len();
|
||||||
votes.extend(header.parties[party_id].member_ids.iter().copied());
|
votes.extend(header.parties[party_id].member_ids.iter().copied());
|
||||||
|
let votes_end = &mut votes[start..];
|
||||||
|
votes_end.rotate_left(self.paper_id % votes_end.len());
|
||||||
}
|
}
|
||||||
|
|
||||||
Ballot {
|
Ballot {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue