clean up warnings
This commit is contained in:
parent
755bc36084
commit
101db55d04
|
|
@ -1,5 +1,3 @@
|
|||
use std::rc::Rc;
|
||||
|
||||
use itertools::Itertools;
|
||||
use crate::header::Header;
|
||||
|
||||
|
|
@ -12,20 +10,13 @@ enum BallotType {
|
|||
|
||||
#[derive(Debug)]
|
||||
pub struct Ballot {
|
||||
header: Rc<Header>,
|
||||
collection_point_id: usize,
|
||||
batch_id: usize,
|
||||
paper_id: usize,
|
||||
votes: Vec<usize>,
|
||||
weight: f64,
|
||||
}
|
||||
|
||||
impl Ballot {
|
||||
pub fn parse(row: quick_csv::Row, header: Rc<Header>) -> Result<Ballot, Box<dyn std::error::Error>> {
|
||||
let mut cols = row.columns()?;
|
||||
|
||||
let (_, _, _, collection_point_id, batch_id, paper_id) = cols.next_tuple().ok_or("Missing columns")?;
|
||||
let cols = cols.collect_vec();
|
||||
pub fn parse(row: quick_csv::Row, header: &Header) -> Result<Ballot, Box<dyn std::error::Error>> {
|
||||
let cols = row.columns()?.skip(6).collect_vec();
|
||||
let mut votes: Vec<Option<usize>>;
|
||||
let ty: BallotType;
|
||||
|
||||
|
|
@ -58,10 +49,6 @@ impl Ballot {
|
|||
};
|
||||
|
||||
Ok(Ballot {
|
||||
header,
|
||||
collection_point_id: collection_point_id.parse()?,
|
||||
batch_id: batch_id.parse()?,
|
||||
paper_id: paper_id.parse()?,
|
||||
weight: 1.0,
|
||||
votes,
|
||||
})
|
||||
|
|
@ -82,14 +69,5 @@ impl Ballot {
|
|||
}
|
||||
return None;
|
||||
}
|
||||
pub fn count_all_with_decaying_weights(&self, scores: &mut [f64], enabled: &[bool]) {
|
||||
let mut m = 0.5;
|
||||
for &id in self.votes.iter() {
|
||||
if enabled[id] {
|
||||
scores[id] += m;
|
||||
m *= 0.5;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,5 @@
|
|||
use std::rc::Rc;
|
||||
use itertools::Itertools;
|
||||
|
||||
use crate::{ballot::Ballot, header::Header, score_item::{ScoreItem, ScoreItems}};
|
||||
|
||||
#[derive(Debug)]
|
||||
|
|
@ -20,7 +19,7 @@ pub struct Counter {
|
|||
|
||||
impl Counter {
|
||||
pub fn new<T: std::io::BufRead>(mut csv: quick_csv::Csv<T>, winners: usize) -> Result<Self, Box<dyn std::error::Error>> {
|
||||
let header = Header::parse(csv.next().ok_or("csv header missing")??, winners)?;
|
||||
let header = Rc::new(Header::parse(csv.next().ok_or("csv header missing")??, winners)?);
|
||||
let mut ballots = Vec::new();
|
||||
|
||||
if winners > header.candidates.len() {
|
||||
|
|
@ -28,7 +27,7 @@ impl Counter {
|
|||
}
|
||||
|
||||
for row in csv {
|
||||
ballots.push(Ballot::parse(row?, header.clone())?);
|
||||
ballots.push(Ballot::parse(row?, &header)?);
|
||||
}
|
||||
|
||||
let enabled = vec![true; header.candidates.len()];
|
||||
|
|
|
|||
|
|
@ -1,7 +1,5 @@
|
|||
use std::{collections::HashMap, rc::Rc};
|
||||
|
||||
use std::collections::HashMap;
|
||||
use itertools::Itertools;
|
||||
|
||||
use crate::{candidate::{Candidate, CandidateName}, party::Party};
|
||||
|
||||
|
||||
|
|
@ -13,7 +11,7 @@ pub struct Header {
|
|||
}
|
||||
|
||||
impl Header {
|
||||
pub fn parse(row: quick_csv::Row, winners: usize) -> Result<Rc<Header>, Box<dyn std::error::Error>> {
|
||||
pub fn parse(row: quick_csv::Row, winners: usize) -> Result<Header, Box<dyn std::error::Error>> {
|
||||
let mut header = Header {
|
||||
parties: Vec::new(),
|
||||
candidates: Vec::new(),
|
||||
|
|
@ -43,7 +41,7 @@ impl Header {
|
|||
}
|
||||
}
|
||||
|
||||
Ok(header.into())
|
||||
Ok(header)
|
||||
}
|
||||
pub fn get_candidate_name(&self, index: usize) -> CandidateName {
|
||||
self.candidates[index].get_name(self)
|
||||
|
|
|
|||
|
|
@ -45,7 +45,7 @@ fn main() {
|
|||
winners.extend_from_slice(&v);
|
||||
}
|
||||
counter::Event::Lose(v) => {
|
||||
eprintln!(" {index}: Lose: {}. {}, {}", header.get_candidate_name(v.index), v.value, Percent(v.value, total));
|
||||
eprintln!(" {index}: Lose: {}, {}, {}", header.get_candidate_name(v.index), v.value, Percent(v.value, total));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue