Added Verbosity as an argument to functions
ci/woodpecker/push/workflow Pipeline was successful Details

pull/5/head
Ayrton Chilibeck 2024-01-14 21:29:34 -07:00
parent 4cd54923c9
commit b4cab67e28
Signed by: ayrton
GPG Key ID: BAE24A03DCBF160D
1 changed files with 22 additions and 22 deletions

View File

@ -8,30 +8,30 @@ pub fn validate(verbosity: u8, config: util::config::Config) {
let in_suffix = "in"; //TODO make this configurable? let in_suffix = "in"; //TODO make this configurable?
let out_suffix = "out"; let out_suffix = "out";
// get list of all file names in input/output // get list of all file names in input/output
let in_files: Vec<PathBuf> = get_dir_files(&config.input_path).expect("Failed to read the input directory contents"); let in_files: Vec<PathBuf> = get_dir_files(&config.input_path, verbosity).expect("Failed to read the input directory contents");
let out_files: Vec<PathBuf> = get_dir_files(&config.output_path).expect("Failed to read the output directory contents"); let out_files: Vec<PathBuf> = get_dir_files(&config.output_path, verbosity).expect("Failed to read the output directory contents");
let mismatch: Vec<(PathBuf, PathBuf)>; let mismatch: Vec<(PathBuf, PathBuf)>;
// check the files for valid suffixes // check the files for valid suffixes
let invalid_suffix_in: Vec<PathBuf> = collect_invalid(&in_files, in_suffix); let invalid_suffix_in: Vec<PathBuf> = collect_invalid(&in_files, in_suffix, verbosity);
let invalid_suffix_out: Vec<PathBuf> = collect_invalid(&out_files, out_suffix); let invalid_suffix_out: Vec<PathBuf> = collect_invalid(&out_files, out_suffix, verbosity);
// print the delinquints // print the delinquints
if invalid_suffix_in.len() > 0 { if invalid_suffix_in.len() > 0 {
print_invalid_suffixes(invalid_suffix_in, in_suffix); print_invalid_suffixes(invalid_suffix_in, in_suffix, verbosity);
} }
if invalid_suffix_out.len() > 0 { if invalid_suffix_out.len() > 0 {
print_invalid_suffixes(invalid_suffix_out, out_suffix); print_invalid_suffixes(invalid_suffix_out, out_suffix, verbosity);
} }
// make sure each has a match // make sure each has a match
let in_to_out: (Vec<(PathBuf, PathBuf)>, Vec<PathBuf>) = map_files(in_files, out_files, &config); let in_to_out: (Vec<(PathBuf, PathBuf)>, Vec<PathBuf>) = map_files(in_files, out_files, &config, verbosity);
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, verbosity);
print_unmached(in_to_out.1); print_unmached(in_to_out.1, verbosity);
print_invalid_pairs(invalid, in_suffix, out_suffix); print_invalid_pairs(invalid, in_suffix, out_suffix, verbosity);
} }
/** /**
@ -44,7 +44,7 @@ pub fn validate(verbosity: u8, config: util::config::Config) {
* - A vector containing the file mappings from input to output (if found) * - A vector containing the file mappings from input to output (if found)
* - A vector containing paths for which a match was not found * - A vector containing paths for which a match was not found
*/ */
fn map_files(in_files: Vec<PathBuf>, out_files: Vec<PathBuf>, config: &util::config::Config) -> (Vec<(PathBuf, PathBuf)>, Vec<PathBuf>) { fn map_files(in_files: Vec<PathBuf>, out_files: Vec<PathBuf>, config: &util::config::Config, verbosity: u8) -> (Vec<(PathBuf, PathBuf)>, Vec<PathBuf>) {
let mut res: (Vec<(PathBuf, PathBuf)>, Vec<PathBuf>) = (vec![], vec![]); let mut res: (Vec<(PathBuf, PathBuf)>, Vec<PathBuf>) = (vec![], vec![]);
// get the prefixes // get the prefixes
@ -122,7 +122,7 @@ fn map_files(in_files: Vec<PathBuf>, out_files: Vec<PathBuf>, config: &util::con
* *
* @return A vector of tuples with (input, output) PathBufs * @return A vector of tuples with (input, output) PathBufs
*/ */
fn check_mappings(mappings: Vec<(PathBuf, PathBuf)>, in_suffix: &str, out_suffix: &str) -> Vec<(PathBuf, PathBuf)> { fn check_mappings(mappings: Vec<(PathBuf, PathBuf)>, in_suffix: &str, out_suffix: &str, verbosity: u8) -> Vec<(PathBuf, PathBuf)> {
let mut res: Vec<(PathBuf, PathBuf)> = vec![]; let mut res: Vec<(PathBuf, PathBuf)> = vec![];
for tup in &mappings { for tup in &mappings {
@ -142,7 +142,7 @@ fn check_mappings(mappings: Vec<(PathBuf, PathBuf)>, in_suffix: &str, out_suffix
* *
* @return A vector of paths with invalid suffixes * @return A vector of paths with invalid suffixes
*/ */
fn collect_invalid(files: &Vec<PathBuf>, suf: &str) -> Vec<PathBuf> { fn collect_invalid(files: &Vec<PathBuf>, suf: &str, verbosity: u8) -> Vec<PathBuf> {
let mut res: Vec<PathBuf> = vec![]; let mut res: Vec<PathBuf> = vec![];
for file in files { for file in files {
@ -161,7 +161,7 @@ fn collect_invalid(files: &Vec<PathBuf>, suf: &str) -> Vec<PathBuf> {
* *
* @returns Result with a Vector of PathBuf or error * @returns Result with a Vector of PathBuf or error
*/ */
fn get_dir_files(path: &PathBuf) -> Result<Vec<PathBuf>, &'static str> { fn get_dir_files(path: &PathBuf, verbosity: u8) -> Result<Vec<PathBuf>, &'static str> {
let mut res: Vec<PathBuf> = vec![]; let mut res: Vec<PathBuf> = vec![];
// get the readout of the path for error handling // get the readout of the path for error handling
@ -188,7 +188,7 @@ fn get_dir_files(path: &PathBuf) -> Result<Vec<PathBuf>, &'static str> {
* @param files: A vector containing the invalid path names * @param files: A vector containing the invalid path names
* @param exp: The expected suffix * @param exp: The expected suffix
*/ */
fn print_invalid_suffixes(files: Vec<PathBuf>, exp: &str) { fn print_invalid_suffixes(files: Vec<PathBuf>, exp: &str, verbosity: u8) {
println!("Invalid suffixes detected 😱:" ); println!("Invalid suffixes detected 😱:" );
println!("Current => Suggested"); println!("Current => Suggested");
for mut file in files { for mut file in files {
@ -210,7 +210,7 @@ fn print_invalid_suffixes(files: Vec<PathBuf>, exp: &str) {
* *
* @param unmatched: Unmatched files * @param unmatched: Unmatched files
*/ */
fn print_unmached(unmatched: Vec<PathBuf>) { fn print_unmached(unmatched: Vec<PathBuf>, verbosity: u8) {
} }
@ -219,7 +219,7 @@ fn print_unmached(unmatched: Vec<PathBuf>) {
* *
* @param invalid: A vector of invalid pairs * @param invalid: A vector of invalid pairs
*/ */
fn print_invalid_pairs(invalid: Vec<(PathBuf, PathBuf)>, in_suffix: &str, out_suffix: &str) { fn print_invalid_pairs(invalid: Vec<(PathBuf, PathBuf)>, in_suffix: &str, out_suffix: &str, verbosity: u8) {
} }
@ -285,12 +285,12 @@ mod tests {
#[rstest] #[rstest]
fn test_collect_invalid(files: Vec<PathBuf>) { fn test_collect_invalid(files: Vec<PathBuf>) {
let suffix = "suf"; let suffix = "suf";
let invalid = collect_invalid(&files, suffix); let invalid = collect_invalid(&files, suffix, 2);
println!("{:?}", invalid); println!("{:?}", invalid);
// visual testing for the print formatting // visual testing for the print formatting
print_invalid_suffixes(invalid.clone(), suffix); print_invalid_suffixes(invalid.clone(), suffix, 2);
assert!(!invalid.contains(&files[0])); assert!(!invalid.contains(&files[0]));
assert!(!invalid.contains(&files[1])); assert!(!invalid.contains(&files[1]));
@ -303,7 +303,7 @@ mod tests {
#[rstest] #[rstest]
fn test_map(in_files: Vec<PathBuf>, out_files: Vec<PathBuf>, config: util::config::Config) { fn test_map(in_files: Vec<PathBuf>, out_files: Vec<PathBuf>, config: util::config::Config) {
let mappings: (Vec<(PathBuf, PathBuf)>, Vec<PathBuf>) = map_files(in_files.clone(), out_files.clone(), &config); let mappings: (Vec<(PathBuf, PathBuf)>, Vec<PathBuf>) = map_files(in_files.clone(), out_files.clone(), &config, 2);
// print_unmached(mappings.1); // print_unmached(mappings.1);
let test = (in_files[0].clone(), out_files[0].clone()); let test = (in_files[0].clone(), out_files[0].clone());
@ -322,9 +322,9 @@ mod tests {
fn test_check_valid_mappings(in_files: Vec<PathBuf>, out_files: Vec<PathBuf>, config: util::config::Config) { fn test_check_valid_mappings(in_files: Vec<PathBuf>, out_files: Vec<PathBuf>, config: util::config::Config) {
let in_suffix = "in"; let in_suffix = "in";
let out_suffix = "out"; let out_suffix = "out";
let invalid: Vec<(PathBuf, PathBuf)> = check_mappings(map_files(in_files.clone(), out_files.clone(), &config).0, in_suffix, out_suffix); let invalid: Vec<(PathBuf, PathBuf)> = check_mappings(map_files(in_files.clone(), out_files.clone(), &config, 2).0, in_suffix, out_suffix, 2);
print_invalid_pairs(invalid.clone(), in_suffix, out_suffix); print_invalid_pairs(invalid.clone(), in_suffix, out_suffix, 2);
assert!(&invalid.contains(&(in_files[0].clone(), out_files[0].clone()))); assert!(&invalid.contains(&(in_files[0].clone(), out_files[0].clone())));
assert!(&invalid.contains(&(in_files[1].clone(), out_files[1].clone()))); assert!(&invalid.contains(&(in_files[1].clone(), out_files[1].clone())));
assert!(!&invalid.contains(&(in_files[2].clone(), out_files[2].clone()))); assert!(!&invalid.contains(&(in_files[2].clone(), out_files[2].clone())));