Added tests for stubbed functions
parent
b290c924a8
commit
775dfab349
|
@ -1,4 +1,4 @@
|
||||||
use std::{path::PathBuf, fs, collections::HashMap};
|
use std::{path::PathBuf, fs, collections::HashMap, borrow::BorrowMut};
|
||||||
|
|
||||||
use crate::util;
|
use crate::util;
|
||||||
|
|
||||||
|
@ -27,15 +27,11 @@ pub fn validate(verbosity: u8, config: util::config::Config) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// make sure each has a match
|
// make sure each has a match
|
||||||
// - check the file stems
|
|
||||||
// - compare the file stems
|
|
||||||
// - check if either file is in the invalid list
|
|
||||||
// - add to the notification queue
|
|
||||||
let mut in_to_out: (Vec<(PathBuf, PathBuf)>, Vec<PathBuf>) = map_files(in_files, out_files);
|
let mut in_to_out: (Vec<(PathBuf, PathBuf)>, Vec<PathBuf>) = map_files(in_files, out_files);
|
||||||
let invalid: Vec<(PathBuf, PathBuf)> = check_mappings(in_to_out.0, in_suffix, out_suffix);
|
let invalid: Vec<(PathBuf, PathBuf)> = check_mappings(in_to_out.0, in_suffix, out_suffix);
|
||||||
|
|
||||||
print_unmached(in_to_out.1);
|
print_unmached(in_to_out.1);
|
||||||
print_invalid_pairs(invalid);
|
print_invalid_pairs(invalid, in_suffix, out_suffix);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -147,11 +143,11 @@ fn print_unmached(unmatched: Vec<PathBuf>) {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Utility function to print invalid pairs
|
* @brief Utility function to print invalid pairs and suggest a fix
|
||||||
*
|
*
|
||||||
* @param invalid: A vector of invalid pairs
|
* @param invalid: A vector of invalid pairs
|
||||||
*/
|
*/
|
||||||
fn print_invalid_pairs(invalid: Vec<(PathBuf, PathBuf)>) {
|
fn print_invalid_pairs(invalid: Vec<(PathBuf, PathBuf)>, in_suffix: &str, out_suffix: &str) {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -177,6 +173,38 @@ mod tests {
|
||||||
return files;
|
return files;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[fixture]
|
||||||
|
fn in_files() -> Vec<PathBuf> {
|
||||||
|
let invalid_map11 = PathBuf::from("in/inv/path/file.in ");
|
||||||
|
let invalid_map12 = PathBuf::from("in/inv/path/file_stupid.in");
|
||||||
|
let invalid_map13 = PathBuf::from("in/inv/path/file/dead.inn");
|
||||||
|
|
||||||
|
let valid_map11 = PathBuf::from("in/val/path/file.in");
|
||||||
|
let valid_map12 = PathBuf::from("in/val/path/file_stupid.in");
|
||||||
|
let valid_map13 = PathBuf::from("in/val/path/file/dead.in");
|
||||||
|
|
||||||
|
let in_files = vec![invalid_map11, invalid_map12, invalid_map13,
|
||||||
|
valid_map11, valid_map12, valid_map13];
|
||||||
|
|
||||||
|
return in_files;
|
||||||
|
}
|
||||||
|
|
||||||
|
#[fixture]
|
||||||
|
fn out_files() -> Vec<PathBuf> {
|
||||||
|
let invalid_map21 = PathBuf::from("out/inv/path/file.out");
|
||||||
|
let invalid_map22 = PathBuf::from("out/inv/path/file_stupid.out ");
|
||||||
|
let invalid_map23 = PathBuf::from("out/inv/path/file.outt");
|
||||||
|
|
||||||
|
let valid_map21 = PathBuf::from("out/val/path/file.out");
|
||||||
|
let valid_map22 = PathBuf::from("out/val/path/file_stupid.out");
|
||||||
|
let valid_map23 = PathBuf::from("out/val/path/file.out");
|
||||||
|
|
||||||
|
let out_files = vec![invalid_map21, invalid_map22, invalid_map23,
|
||||||
|
valid_map21, valid_map22, valid_map23];
|
||||||
|
|
||||||
|
return out_files;
|
||||||
|
}
|
||||||
|
|
||||||
#[rstest]
|
#[rstest]
|
||||||
fn test_collect_invalid(files: Vec<PathBuf>) {
|
fn test_collect_invalid(files: Vec<PathBuf>) {
|
||||||
let suffix = "suf";
|
let suffix = "suf";
|
||||||
|
@ -195,4 +223,33 @@ mod tests {
|
||||||
assert!(invalid.contains(&files[4]));
|
assert!(invalid.contains(&files[4]));
|
||||||
assert!(invalid.contains(&files[5]));
|
assert!(invalid.contains(&files[5]));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[rstest]
|
||||||
|
fn test_map(in_files: Vec<PathBuf>, out_files: Vec<PathBuf>) {
|
||||||
|
let mappings: (Vec<(PathBuf, PathBuf)>, Vec<PathBuf>) = map_files(in_files, out_files);
|
||||||
|
|
||||||
|
print_unmached(mappings.1);
|
||||||
|
assert!(&mappings.0.contains(&(in_files[0], out_files[0])));
|
||||||
|
assert!(&mappings.0.contains(&(in_files[1], out_files[1])));
|
||||||
|
assert!(&mappings.0.contains(&(in_files[2], out_files[2])));
|
||||||
|
assert!(&mappings.0.contains(&(in_files[3], out_files[3])));
|
||||||
|
assert!(&mappings.0.contains(&(in_files[4], out_files[4])));
|
||||||
|
assert!(&mappings.0.contains(&(in_files[5], out_files[5])));
|
||||||
|
}
|
||||||
|
|
||||||
|
#[rstest]
|
||||||
|
fn test_check_valid_mappings(in_files: Vec<PathBuf>, out_files: Vec<PathBuf>) {
|
||||||
|
let in_suffix = "in";
|
||||||
|
let out_suffix = "out";
|
||||||
|
let invalid: Vec<(PathBuf, PathBuf)> = check_mappings(map_files(in_files, out_files).0, in_suffix, out_suffix);
|
||||||
|
|
||||||
|
print_invalid_pairs(invalid, in_suffix, out_suffix);
|
||||||
|
assert!(&invalid.contains(&(in_files[0], out_files[0])));
|
||||||
|
assert!(&invalid.contains(&(in_files[1], out_files[1])));
|
||||||
|
assert!(&invalid.contains(&(in_files[2], out_files[2])));
|
||||||
|
|
||||||
|
assert!(!&invalid.contains(&(in_files[3], out_files[3])));
|
||||||
|
assert!(!&invalid.contains(&(in_files[4], out_files[4])));
|
||||||
|
assert!(!&invalid.contains(&(in_files[5], out_files[5])));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue