From 9d217c6678ca7c135039c92a4aa1ef02f1855b59 Mon Sep 17 00:00:00 2001 From: Jay Robson Date: Mon, 5 May 2025 13:55:56 +1000 Subject: [PATCH] added rotate function to even out bias from party => candidate list --- src/ballot.rs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/ballot.rs b/src/ballot.rs index 4959cbe..dd20eda 100644 --- a/src/ballot.rs +++ b/src/ballot.rs @@ -1,5 +1,4 @@ use itertools::Itertools; - use crate::header::Header; #[derive(Copy,Clone,Debug,PartialEq)] @@ -72,7 +71,10 @@ impl Ballot { let mut votes = Vec::::new(); for party_id in self.votes { + let start = votes.len(); 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 {