Import data and check consistency

This commit is contained in:
Joscha 2022-09-30 19:53:41 +02:00
parent 1ea09a9be9
commit f6bcb39c52
2 changed files with 22 additions and 0 deletions

View file

@ -1,5 +1,6 @@
mod ingest; mod ingest;
mod data; mod data;
mod test;
use std::io; use std::io;
@ -9,10 +10,13 @@ use clap::Parser;
enum Command { enum Command {
/// Read sift data on stdin and output brood data on stdout. /// Read sift data on stdin and output brood data on stdout.
Ingest, Ingest,
/// Test various things
Test,
} }
fn main() -> io::Result<()> { fn main() -> io::Result<()> {
match Command::parse() { match Command::parse() {
Command::Ingest => ingest::ingest(), Command::Ingest => ingest::ingest(),
Command::Test => test::test(),
} }
} }

18
brood/src/test.rs Normal file
View file

@ -0,0 +1,18 @@
use std::io::{self, BufReader};
use crate::data::AdjacencyList;
pub fn test() -> io::Result<()> {
eprintln!("IMPORT");
let data: AdjacencyList = ciborium::de::from_reader(BufReader::new(io::stdin())).unwrap();
eprintln!("CONSISTENCY CHECK");
let range = 0..data.pages.len() as u32;
for link in &data.links {
if !range.contains(&link.to) {
eprintln!("Invalid link detected!");
}
}
Ok(())
}