use itertools::Itertools;
use crate::structs::{NetworkEnvironment, Seed, TrustData, TrustLabel};
#[derive(Debug, serde::Deserialize)]
struct SeedCsvRecord {
external_address: String,
network_environment: String,
score: f64,
}
fn parse_seeds_csv_resource() -> Vec<SeedCsvRecord> {
let str = include_str!("resources/seeds/seeds.csv");
let mut rdr = csv::Reader::from_reader(str.as_bytes());
let mut res = vec![];
for result in rdr.deserialize() {
let record: SeedCsvRecord = result.expect("");
res.push(record);
}
res
}
fn get_seeds() -> Vec<Seed> {
let csv_records = parse_seeds_csv_resource();
csv_records.iter().map(|r| {
let mut s = Seed::default();
s.external_address = r.external_address.clone();
s.environments = vec![NetworkEnvironment::parse(r.network_environment.clone()) as i32];
let mut t = TrustData::default();
t.with_label(r.score);
s.trust = vec![t];
s
}).collect_vec()
}
#[test]
fn debug() {
parse_seeds_csv_resource();
assert!(get_seeds().len() >= 3);
}