Printing and Formatting results
ci/woodpecker/push/workflow Pipeline was successful Details
ci/woodpecker/pr/workflow Pipeline was successful Details
ci/woodpecker/pull_request_closed/workflow Pipeline was successful Details

pull/5/head
Ayrton Chilibeck 2024-01-15 02:10:52 -07:00
parent 38d03f9d55
commit 29423ca691
Signed by: ayrton
GPG Key ID: BAE24A03DCBF160D
1 changed files with 27 additions and 11 deletions

View File

@ -1,4 +1,5 @@
use std::{path::{PathBuf, Path, Components, Component}, fs, collections::{HashMap, VecDeque}, borrow::BorrowMut};
use std::{collections::VecDeque, fs};
use std::path::{PathBuf, Component};
use crate::util;
use crate::log;
@ -21,11 +22,11 @@ pub fn validate(verbosity: u8, config: util::config::Config) {
// print the delinquints
if invalid_suffix_in.len() > 0 {
print_invalid_suffixes(invalid_suffix_in, in_suffix, verbosity);
print_invalid_suffixes(invalid_suffix_in, in_suffix);
}
if invalid_suffix_out.len() > 0 {
print_invalid_suffixes(invalid_suffix_out, out_suffix, verbosity);
print_invalid_suffixes(invalid_suffix_out, out_suffix);
}
// make sure each has a match
@ -34,8 +35,8 @@ pub fn validate(verbosity: u8, config: util::config::Config) {
log!(1, verbosity, "LOG 1:Verifying file matches");
let invalid: Vec<(PathBuf, PathBuf)> = check_mappings(in_to_out.0, in_suffix, out_suffix, verbosity);
print_unmached(in_to_out.1, verbosity);
print_invalid_pairs(invalid, in_suffix, out_suffix, verbosity);
print_unmached(in_to_out.1);
print_invalid_pairs(invalid, in_suffix, out_suffix);
}
/**
@ -213,10 +214,10 @@ fn get_dir_files(path: &PathBuf, verbosity: u8) -> Result<Vec<PathBuf>, &'static
* @param files: A vector containing the invalid path names
* @param exp: The expected suffix
*/
fn print_invalid_suffixes(files: Vec<PathBuf>, exp: &str, verbosity: u8) {
fn print_invalid_suffixes(files: Vec<PathBuf>, exp: &str) {
println!("Invalid suffixes detected 😱:" );
println!("Current => Suggested");
for mut file in files {
for file in files {
let initial = match file.to_str() {
Some(x) => x,
_ => panic!("Failed to load the file"),
@ -235,8 +236,12 @@ fn print_invalid_suffixes(files: Vec<PathBuf>, exp: &str, verbosity: u8) {
*
* @param unmatched: Unmatched files
*/
fn print_unmached(unmatched: Vec<PathBuf>, verbosity: u8) {
fn print_unmached(unmatched: Vec<PathBuf>) {
println!("We were unable to find matches for the following files:");
for file in unmatched {
println!("{}", file.to_str().expect("Failed to read file name"));
}
}
/**
@ -244,8 +249,19 @@ fn print_unmached(unmatched: Vec<PathBuf>, verbosity: u8) {
*
* @param invalid: A vector of invalid pairs
*/
fn print_invalid_pairs(invalid: Vec<(PathBuf, PathBuf)>, in_suffix: &str, out_suffix: &str, verbosity: u8) {
fn print_invalid_pairs(invalid: Vec<(PathBuf, PathBuf)>, in_suffix: &str, out_suffix: &str) {
println!("The following files have problematic mappings, please validate their suffixes and paths:");
for pair in invalid {
println!("({} {}): $${}$$ => $${}$$ should be $${}$$ => $${}$$",
pair.0.to_str().expect("Failed to read file name"),
pair.1.to_str().expect("Failed to read file name"),
pair.0.extension().expect("Failed to read file name").to_str().expect("Failed to convert"),
pair.1.extension().expect("Failed to read file name").to_str().expect("Failed to convert"),
in_suffix,
out_suffix,
);
}
}
@ -315,7 +331,7 @@ mod tests {
println!("{:?}", invalid);
// visual testing for the print formatting
print_invalid_suffixes(invalid.clone(), suffix, 2);
print_invalid_suffixes(invalid.clone(), suffix);
assert!(!invalid.contains(&files[0]));
assert!(!invalid.contains(&files[1]));
@ -349,7 +365,7 @@ mod tests {
let out_suffix = "out";
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, 2);
print_invalid_pairs(invalid.clone(), in_suffix, out_suffix);
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[2].clone(), out_files[2].clone())));