From 66709893be79013dc6972bea6e3570338576a98c Mon Sep 17 00:00:00 2001 From: Christopher Regali Date: Tue, 27 Feb 2024 23:50:11 +0100 Subject: [PATCH 01/14] First shot at adding more image compare options --- Cargo.toml | 2 +- src/image.rs | 188 ++++++++++++++++++++++++++++++++++++----- src/lib.rs | 7 +- src/report/mod.rs | 17 ++-- src/report/template.rs | 2 + 5 files changed, 184 insertions(+), 32 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 746e55c..ee30050 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -4,7 +4,7 @@ description = "A flexible rule-based file and folder comparison tool and crate i repository = "https://github.com/VolumeGraphics/havocompare" homepage = "https://github.com/VolumeGraphics/havocompare" documentation = "https://docs.rs/havocompare" -version = "0.5.4" +version = "0.6.0" edition = "2021" license = "MIT" authors = ["Volume Graphics GmbH"] diff --git a/src/image.rs b/src/image.rs index 8fa5671..a695dc6 100644 --- a/src/image.rs +++ b/src/image.rs @@ -1,5 +1,7 @@ use crate::report::DiffDetail; use crate::{get_file_name, report}; +use image::{DynamicImage, Rgb}; +use image_compare::{Algorithm, Metric, Similarity}; use schemars_derive::JsonSchema; use serde::{Deserialize, Serialize}; use std::path::{Path, PathBuf}; @@ -7,23 +9,68 @@ use thiserror::Error; use tracing::error; #[derive(JsonSchema, Deserialize, Serialize, Debug, Clone)] -/// Image comparison config options -pub struct ImageCompareConfig { - /// Threshold for image comparison < 0.5 is very dissimilar, 1.0 is identical - pub threshold: f64, +pub enum RGBACompareMode { + /// full RGBA comparison - probably not intuitive, rarely what you want outside of video processing + /// Will do MSSIM on luma, then RMS on U and V and alpha channels. + /// The calculation of the score is then pixel-wise the minimum of each pixels similarity. + /// To account for perceived indifference in lower alpha regions, this down-weights the difference linearly with mean alpha channel. + Hybrid, + /// pre-blend the background in RGBA with this color, use the background RGB values you would assume the pictures to be seen on - usually either black or white + HybridBlended { r: u8, b: u8, g: u8 }, } -impl ImageCompareConfig { - /// create an [`ImageCompareConfig`] given the threshold - pub fn from_threshold(threshold: f64) -> Self { - ImageCompareConfig { threshold } +impl Default for RGBACompareMode { + fn default() -> Self { + Self::HybridBlended { r: 0, b: 0, g: 0 } } } -impl Default for ImageCompareConfig { - fn default() -> Self { - ImageCompareConfig::from_threshold(1.0) - } +#[derive(JsonSchema, Deserialize, Serialize, Debug, Clone, Default)] +pub enum RGBCompareMode { + ///Comparing rgb images using structure. RGB structure similarity is performed by doing a channel split and taking the maximum deviation (minimum similarity) for the result. The image contains the complete deviations. Algorithm: RMS + RMS, + ///Comparing rgb images using structure. RGB structure similarity is performed by doing a channel split and taking the maximum deviation (minimum similarity) for the result. The image contains the complete deviations. Algorithm: MSSIM + MSSIM, + ///Comparing structure via MSSIM on Y channel, comparing color-diff-vectors on U and V summing the squares Please mind that the RGBSimilarity-Image does not contain plain RGB here. Probably what you want. + #[default] + Hybrid, +} + +#[derive(JsonSchema, Deserialize, Serialize, Debug, Clone)] +pub enum GrayStructureAlgorithm { + MSSIM, + RMS, +} + +#[derive(JsonSchema, Deserialize, Serialize, Debug, Clone)] +pub enum GrayHistogramCompareMetric { + Correlation, + ChiSquare, + Intersection, + Hellinger, +} + +#[derive(JsonSchema, Deserialize, Serialize, Debug, Clone)] +pub enum GrayCompareMode { + Structure(GrayStructureAlgorithm), + Histogram(GrayHistogramCompareMetric), +} + +#[derive(JsonSchema, Deserialize, Serialize, Debug, Clone)] +pub enum CompareMode { + RGB(RGBCompareMode), + RGBA(RGBACompareMode), + Gray(GrayCompareMode), +} + +#[derive(JsonSchema, Deserialize, Serialize, Debug, Clone)] +/// Image comparison config options +pub struct ImageCompareConfig { + /// Threshold for image comparison < 0.5 is very dissimilar, 1.0 is identical + pub threshold: f64, + #[serde(flatten)] + /// How to compare the two images + pub mode: CompareMode, } #[derive(Debug, Error)] @@ -38,15 +85,99 @@ pub enum Error { FileNameParsing(String), } +struct ComparisonResult { + score: f64, + image: Option, +} + +impl From for ComparisonResult { + fn from(value: Similarity) -> Self { + Self { + image: Some(value.image.to_color_map()), + score: value.score, + } + } +} + pub fn compare_paths>( nominal_path: P, actual_path: P, config: &ImageCompareConfig, ) -> Result { - let nominal = image::open(nominal_path.as_ref())?.into_rgba8(); - let actual = image::open(actual_path.as_ref())?.into_rgba8(); + let nominal = image::open(nominal_path.as_ref())?; + let actual = image::open(actual_path.as_ref())?; + let result: ComparisonResult = match &config.mode { + CompareMode::RGBA(c) => { + let nominal = nominal.into_rgba8(); + let actual = actual.into_rgba8(); + match c { + RGBACompareMode::Hybrid => { + image_compare::rgba_hybrid_compare(&nominal, &actual)?.into() + } + RGBACompareMode::HybridBlended { r, g, b } => { + image_compare::rgba_blended_hybrid_compare( + (&nominal).into(), + (&actual).into(), + Rgb([*r, *g, *b]), + )? + .into() + } + } + } + CompareMode::RGB(c) => { + let nominal = nominal.into_rgb8(); + let actual = actual.into_rgb8(); + match c { + RGBCompareMode::RMS => image_compare::rgb_similarity_structure( + &Algorithm::RootMeanSquared, + &nominal, + &actual, + )? + .into(), + RGBCompareMode::MSSIM => image_compare::rgb_similarity_structure( + &Algorithm::MSSIMSimple, + &nominal, + &actual, + )? + .into(), + RGBCompareMode::Hybrid => { + image_compare::rgb_hybrid_compare(&nominal, &actual)?.into() + } + } + } + CompareMode::Gray(c) => { + let nominal = nominal.into_luma8(); + let actual = actual.into_luma8(); + match c { + GrayCompareMode::Structure(c) => match c { + GrayStructureAlgorithm::MSSIM => image_compare::gray_similarity_structure( + &Algorithm::MSSIMSimple, + &nominal, + &actual, + )? + .into(), + GrayStructureAlgorithm::RMS => image_compare::gray_similarity_structure( + &Algorithm::RootMeanSquared, + &nominal, + &actual, + )? + .into(), + }, + GrayCompareMode::Histogram(c) => { + let metric = match c { + GrayHistogramCompareMetric::Correlation => Metric::Correlation, + GrayHistogramCompareMetric::ChiSquare => Metric::ChiSquare, + GrayHistogramCompareMetric::Intersection => Metric::Intersection, + GrayHistogramCompareMetric::Hellinger => Metric::Hellinger, + }; + let score = + image_compare::gray_similarity_histogram(metric, &nominal, &actual)?; + ComparisonResult { score, image: None } + } + } + } + }; - let result = image_compare::rgba_hybrid_compare(&nominal, &actual)?; let nominal_file_name = get_file_name(nominal_path.as_ref()).ok_or(Error::FileNameParsing(format!( "Could not extract filename from path {:?}", @@ -56,8 +187,13 @@ pub fn compare_paths>( let mut result_diff = report::Difference::new_for_file(&nominal_path, &actual_path); if result.score < config.threshold { - let color_map = result.image.to_color_map(); - color_map.save(PathBuf::from(&out_path))?; + let out_path_set; + if let Some(i) = result.image { + i.save(PathBuf::from(&out_path))?; + out_path_set = Some(out_path); + } else { + out_path_set = None; + } let error_message = format!( "Diff for image {} was not met, expected {}, found {}", @@ -66,8 +202,9 @@ pub fn compare_paths>( result.score ); error!("{}", &error_message); + result_diff.push_detail(DiffDetail::Image { - diff_image: out_path, + diff_image: out_path_set, score: result.score, }); result_diff.error(); @@ -77,6 +214,7 @@ pub fn compare_paths>( #[cfg(test)] mod test { + use super::*; use crate::image::{compare_paths, ImageCompareConfig}; use crate::report::DiffDetail; @@ -85,7 +223,10 @@ mod test { let result = compare_paths( "tests/integ/data/images/actual/SaveImage_100DPI_default_size.jpg", "tests/integ/data/images/actual/SaveImage_100DPI_default_size.jpg", - &ImageCompareConfig { threshold: 1.0 }, + &ImageCompareConfig { + threshold: 1.0, + mode: CompareMode::RGB(RGBCompareMode::Hybrid), + }, ) .unwrap(); assert!(!result.is_error); @@ -96,7 +237,10 @@ mod test { let result = compare_paths( "tests/integ/data/images/expected/SaveImage_100DPI_default_size.jpg", "tests/integ/data/images/actual/SaveImage_100DPI_default_size.jpg", - &ImageCompareConfig { threshold: 1.0 }, + &ImageCompareConfig { + threshold: 1.0, + mode: CompareMode::RGB(RGBCompareMode::Hybrid), + }, ) .unwrap(); assert!(result.is_error); @@ -105,7 +249,9 @@ mod test { diff_image, } = result.detail.first().unwrap() { - let img = image::open(diff_image).unwrap().into_rgb8(); + let img = image::open(diff_image.as_ref().unwrap()) + .unwrap() + .into_rgb8(); let nom = image::open("tests/integ/data/images/diff_100_DPI.png") .unwrap() .into_rgb8(); diff --git a/src/lib.rs b/src/lib.rs index 15c5063..ff4aeb6 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -379,12 +379,15 @@ pub fn validate_config(config_file: impl AsRef) -> bool { #[cfg(test)] mod tests { use super::*; - use crate::image::ImageCompareConfig; + use crate::image::{CompareMode, ImageCompareConfig, RGBCompareMode}; #[test] fn folder_not_found_is_false() { let rule = Rule { name: "test rule".to_string(), - file_type: ComparisonMode::Image(ImageCompareConfig { threshold: 1.0 }), + file_type: ComparisonMode::Image(ImageCompareConfig { + threshold: 1.0, + mode: CompareMode::RGB(RGBCompareMode::Hybrid), + }), pattern_include: vec!["*.".to_string()], pattern_exclude: None, }; diff --git a/src/report/mod.rs b/src/report/mod.rs index ab2e7e2..b8a4f49 100644 --- a/src/report/mod.rs +++ b/src/report/mod.rs @@ -130,7 +130,7 @@ pub enum DiffDetail { CSV(DiffType), Image { score: f64, - diff_image: String, + diff_image: Option, }, Text { actual: String, @@ -352,7 +352,7 @@ pub(crate) fn write_csv_detail( pub fn write_image_detail( nominal: impl AsRef, actual: impl AsRef, - diffs: &[(&f64, &String)], + diffs: &[(&f64, &Option)], report_dir: impl AsRef, ) -> Result, Error> { if diffs.is_empty() { @@ -393,12 +393,13 @@ pub fn write_image_detail( .map_err(|e| FatIOError::from_std_io_err(e, nominal.as_ref().to_path_buf()))?; let (score, diff_image) = diffs[0]; - let img_target = detail_path.path.join(diff_image); - fs::copy(diff_image, &img_target) - .map_err(|e| FatIOError::from_std_io_err(e, img_target.to_path_buf()))?; - + if let Some(img) = diff_image { + let img_target = detail_path.path.join(img); + fs::copy(img, &img_target) + .map_err(|e| FatIOError::from_std_io_err(e, img_target.to_path_buf()))?; + ctx.insert("diff_image", diff_image); + } ctx.insert("error", &format!("Score {score}")); - ctx.insert("diff_image", diff_image); ctx.insert("actual_image", &actual_image); ctx.insert("nominal_image", &nominal_image); @@ -721,7 +722,7 @@ pub(crate) fn create_html( .unwrap_or_else(|e| log_detail_html_creation_error(&e)) } ComparisonMode::Image(_) => { - let diffs: Vec<(&f64, &String)> = file + let diffs: Vec<(&f64, &Option)> = file .detail .iter() .filter_map(|r| match r { diff --git a/src/report/template.rs b/src/report/template.rs index 91fc2f7..68e0834 100644 --- a/src/report/template.rs +++ b/src/report/template.rs @@ -251,10 +251,12 @@ pub const PLAIN_IMAGE_DETAIL_TEMPLATE: &str = r#"

+{% if diff_image %}

Diff:

+{% endif %} From 376989365a4cc24aac48e7ca2d733aca0391623c Mon Sep 17 00:00:00 2001 From: Christopher Regali Date: Wed, 28 Feb 2024 00:03:00 +0100 Subject: [PATCH 02/14] Fix tests and update schema --- config_scheme.json | 153 ++++++++++++++++++++++++++++++++++++ tests/integ/jpg_compare.yml | 1 + 2 files changed, 154 insertions(+) diff --git a/config_scheme.json b/config_scheme.json index 3670404..18238b0 100644 --- a/config_scheme.json +++ b/config_scheme.json @@ -87,6 +87,50 @@ } } }, + "GrayCompareMode": { + "oneOf": [ + { + "type": "object", + "required": [ + "Structure" + ], + "properties": { + "Structure": { + "$ref": "#/definitions/GrayStructureAlgorithm" + } + }, + "additionalProperties": false + }, + { + "type": "object", + "required": [ + "Histogram" + ], + "properties": { + "Histogram": { + "$ref": "#/definitions/GrayHistogramCompareMetric" + } + }, + "additionalProperties": false + } + ] + }, + "GrayHistogramCompareMetric": { + "type": "string", + "enum": [ + "Correlation", + "ChiSquare", + "Intersection", + "Hellinger" + ] + }, + "GrayStructureAlgorithm": { + "type": "string", + "enum": [ + "MSSIM", + "RMS" + ] + }, "HTMLCompareConfig": { "description": "Plain text comparison config, also used for PDF", "type": "object", @@ -137,6 +181,44 @@ "ImageCompareConfig": { "description": "Image comparison config options", "type": "object", + "oneOf": [ + { + "type": "object", + "required": [ + "RGB" + ], + "properties": { + "RGB": { + "$ref": "#/definitions/RGBCompareMode" + } + }, + "additionalProperties": false + }, + { + "type": "object", + "required": [ + "RGBA" + ], + "properties": { + "RGBA": { + "$ref": "#/definitions/RGBACompareMode" + } + }, + "additionalProperties": false + }, + { + "type": "object", + "required": [ + "Gray" + ], + "properties": { + "Gray": { + "$ref": "#/definitions/GrayCompareMode" + } + }, + "additionalProperties": false + } + ], "required": [ "threshold" ], @@ -392,6 +474,77 @@ } } }, + "RGBACompareMode": { + "oneOf": [ + { + "description": "full RGBA comparison - probably not intuitive, rarely what you want outside of video processing Will do MSSIM on luma, then RMS on U and V and alpha channels. The calculation of the score is then pixel-wise the minimum of each pixels similarity. To account for perceived indifference in lower alpha regions, this down-weights the difference linearly with mean alpha channel.", + "type": "string", + "enum": [ + "Hybrid" + ] + }, + { + "description": "pre-blend the background in RGBA with this color, use the background RGB values you would assume the pictures to be seen on - usually either black or white", + "type": "object", + "required": [ + "HybridBlended" + ], + "properties": { + "HybridBlended": { + "type": "object", + "required": [ + "b", + "g", + "r" + ], + "properties": { + "b": { + "type": "integer", + "format": "uint8", + "minimum": 0.0 + }, + "g": { + "type": "integer", + "format": "uint8", + "minimum": 0.0 + }, + "r": { + "type": "integer", + "format": "uint8", + "minimum": 0.0 + } + } + } + }, + "additionalProperties": false + } + ] + }, + "RGBCompareMode": { + "oneOf": [ + { + "description": "Comparing rgb images using structure. RGB structure similarity is performed by doing a channel split and taking the maximum deviation (minimum similarity) for the result. The image contains the complete deviations. Algorithm: RMS", + "type": "string", + "enum": [ + "RMS" + ] + }, + { + "description": "Comparing rgb images using structure. RGB structure similarity is performed by doing a channel split and taking the maximum deviation (minimum similarity) for the result. The image contains the complete deviations. Algorithm: MSSIM", + "type": "string", + "enum": [ + "MSSIM" + ] + }, + { + "description": "Comparing structure via MSSIM on Y channel, comparing color-diff-vectors on U and V summing the squares Please mind that the RGBSimilarity-Image does not contain plain RGB here. Probably what you want.", + "type": "string", + "enum": [ + "Hybrid" + ] + } + ] + }, "Rule": { "description": "Representing a single comparison rule", "type": "object", diff --git a/tests/integ/jpg_compare.yml b/tests/integ/jpg_compare.yml index ffba804..57d0047 100644 --- a/tests/integ/jpg_compare.yml +++ b/tests/integ/jpg_compare.yml @@ -3,4 +3,5 @@ rules: pattern_include: - "**/*.jpg" Image: + RGBA: Hybrid threshold: 0.9 From d685e55d34e400cadc1d4abd3c7b944f1c7d0a27 Mon Sep 17 00:00:00 2001 From: Christopher Regali <60792386+ChrisRega@users.noreply.github.com> Date: Fri, 1 Mar 2024 22:17:49 +0100 Subject: [PATCH 03/14] Update src/image.rs Co-authored-by: Alexander Rohde --- src/image.rs | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/image.rs b/src/image.rs index a695dc6..13758be 100644 --- a/src/image.rs +++ b/src/image.rs @@ -185,6 +185,19 @@ pub fn compare_paths>( )))?; let out_path = (nominal_file_name + "diff_image.png").to_string(); let mut result_diff = report::Difference::new_for_file(&nominal_path, &actual_path); + if result.score < config.threshold { + let out_path_set = if let Some(i) = result.image { + let nominal_file_name = + get_file_name(nominal_path.as_ref()).ok_or(Error::FileNameParsing(format!( + "Could not extract filename from path {:?}", + nominal_path.as_ref() + )))?; + let out_path = (nominal_file_name + "diff_image.png").to_string(); + i.save(&out_path)?; + Some(out_path) + } else { + None + }; if result.score < config.threshold { let out_path_set; From ba894a7e4487f498011033808d792b32a0165218 Mon Sep 17 00:00:00 2001 From: Christopher Regali Date: Fri, 1 Mar 2024 22:39:45 +0100 Subject: [PATCH 04/14] Fix merge suggestion --- src/image.rs | 17 +---------------- 1 file changed, 1 insertion(+), 16 deletions(-) diff --git a/src/image.rs b/src/image.rs index 13758be..c74c394 100644 --- a/src/image.rs +++ b/src/image.rs @@ -4,7 +4,7 @@ use image::{DynamicImage, Rgb}; use image_compare::{Algorithm, Metric, Similarity}; use schemars_derive::JsonSchema; use serde::{Deserialize, Serialize}; -use std::path::{Path, PathBuf}; +use std::path::Path; use thiserror::Error; use tracing::error; @@ -178,12 +178,6 @@ pub fn compare_paths>( } }; - let nominal_file_name = - get_file_name(nominal_path.as_ref()).ok_or(Error::FileNameParsing(format!( - "Could not extract filename from path {:?}", - nominal_path.as_ref() - )))?; - let out_path = (nominal_file_name + "diff_image.png").to_string(); let mut result_diff = report::Difference::new_for_file(&nominal_path, &actual_path); if result.score < config.threshold { let out_path_set = if let Some(i) = result.image { @@ -199,15 +193,6 @@ pub fn compare_paths>( None }; - if result.score < config.threshold { - let out_path_set; - if let Some(i) = result.image { - i.save(PathBuf::from(&out_path))?; - out_path_set = Some(out_path); - } else { - out_path_set = None; - } - let error_message = format!( "Diff for image {} was not met, expected {}, found {}", nominal_path.as_ref().to_string_lossy(), From ad27fff241a0bfd5681581f2df5503420f9274b7 Mon Sep 17 00:00:00 2001 From: Christopher Regali Date: Sun, 17 Mar 2024 22:46:30 +0100 Subject: [PATCH 05/14] add some more commentary --- src/image.rs | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/image.rs b/src/image.rs index c74c394..5de8847 100644 --- a/src/image.rs +++ b/src/image.rs @@ -37,11 +37,17 @@ pub enum RGBCompareMode { } #[derive(JsonSchema, Deserialize, Serialize, Debug, Clone)] +/// The distance algorithm to use for grayscale comparison, see +/// https://github.com/ChrisRega/image-compare for equations pub enum GrayStructureAlgorithm { + /// SSIM with 8x8 pixel windows and averaging over the result MSSIM, + /// Classic RMS distance RMS, } +/// See https://github.com/ChrisRega/image-compare for equations +/// Distance metrics for histograms for grayscale comparison #[derive(JsonSchema, Deserialize, Serialize, Debug, Clone)] pub enum GrayHistogramCompareMetric { Correlation, From f8545867d45bc16e471bb325f7bdefbadca471e2 Mon Sep 17 00:00:00 2001 From: Christopher Regali Date: Sat, 23 Mar 2024 23:13:29 +0100 Subject: [PATCH 06/14] Bump image to 0.25, image-compare to 0.4.0 --- Cargo.toml | 20 ++++++++++---------- src/image.rs | 10 ++++------ src/lib.rs | 2 +- tests/integ/data/images/diff_100_DPI.png | Bin 152512 -> 131424 bytes 4 files changed, 15 insertions(+), 17 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index ee30050..c3f7440 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -9,7 +9,7 @@ edition = "2021" license = "MIT" authors = ["Volume Graphics GmbH"] exclude = ["tests/pdf", "tests/integ", "tests/html", "target", "tests/csv", ".github", "test_report"] -keywords = ["diff" ,"compare", "csv", "image", "difference"] +keywords = ["diff", "compare", "csv", "image", "difference"] categories = ["filesystem"] default-run = "havocompare" @@ -19,7 +19,7 @@ path = "src/print_args.rs" [dependencies] -clap = {version= "4.4", features=["derive"]} +clap = { version = "4.4", features = ["derive"] } chrono = "0.4" serde = "1.0" serde_yaml = "0.9" @@ -27,13 +27,13 @@ schemars = "0.8" schemars_derive = "0.8" thiserror = "1.0" regex = "1.10" -image = "0.24" -image-compare = "0.3" +image = "0.25" +image-compare = "0.4" tracing = "0.1" tracing-subscriber = "0.3" serde_json = "1.0" glob = "0.3" -test-log = {version="0.2", features=["trace"]} +test-log = { version = "0.2", features = ["trace"] } strsim = "0.11" itertools = "0.12" tera = "1.19" @@ -42,16 +42,16 @@ data-encoding = "2.5" permutation = "0.4" pdf-extract = "0.7" vg_errortools = "0.1" -rayon = "1.8.0" +rayon = "1.9.0" enable-ansi-support = "0.2" tempfile = "3.8" fs_extra = "1.3" -opener = "0.6" +opener = "0.7" anyhow = "1.0" -json_diff_ng = {version = "0.4"} +json_diff_ng = { version = "0.4" } [dev-dependencies] env_logger = "0.11" -tracing = {version = "0.1", default-features = false} -tracing-subscriber = {version = "0.3", default-features = false, features = ["env-filter", "fmt"]} +tracing = { version = "0.1", default-features = false } +tracing-subscriber = { version = "0.3", default-features = false, features = ["env-filter", "fmt"] } diff --git a/src/image.rs b/src/image.rs index 5de8847..f22bbb7 100644 --- a/src/image.rs +++ b/src/image.rs @@ -219,8 +219,6 @@ pub fn compare_paths>( #[cfg(test)] mod test { use super::*; - use crate::image::{compare_paths, ImageCompareConfig}; - use crate::report::DiffDetail; #[test] fn identity() { @@ -243,7 +241,7 @@ mod test { "tests/integ/data/images/actual/SaveImage_100DPI_default_size.jpg", &ImageCompareConfig { threshold: 1.0, - mode: CompareMode::RGB(RGBCompareMode::Hybrid), + mode: CompareMode::RGBA(RGBACompareMode::Hybrid), }, ) .unwrap(); @@ -255,11 +253,11 @@ mod test { { let img = image::open(diff_image.as_ref().unwrap()) .unwrap() - .into_rgb8(); + .into_rgba8(); let nom = image::open("tests/integ/data/images/diff_100_DPI.png") .unwrap() - .into_rgb8(); - let diff_result = image_compare::rgb_hybrid_compare(&img, &nom) + .into_rgba8(); + let diff_result = image_compare::rgba_hybrid_compare(&img, &nom) .expect("Wrong dimensions of diff images!"); assert_eq!(diff_result.score, 1.0); } else { diff --git a/src/lib.rs b/src/lib.rs index ff4aeb6..58fccdc 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -379,7 +379,7 @@ pub fn validate_config(config_file: impl AsRef) -> bool { #[cfg(test)] mod tests { use super::*; - use crate::image::{CompareMode, ImageCompareConfig, RGBCompareMode}; + use crate::image::{CompareMode, RGBCompareMode}; #[test] fn folder_not_found_is_false() { let rule = Rule { diff --git a/tests/integ/data/images/diff_100_DPI.png b/tests/integ/data/images/diff_100_DPI.png index 4d0ae5caab76d276bf558470cc2fa6126c4c5562..316f83d33af25dc2dbac8b7161737897a64be07e 100644 GIT binary patch literal 131424 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 z

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 literal 152512 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™gh~opO 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 From 8a648018c5d8a4c2d366d9e2844e123db2817086 Mon Sep 17 00:00:00 2001 From: Christopher Regali Date: Mon, 29 Apr 2024 21:03:50 +0200 Subject: [PATCH 07/14] Fix hash test --- src/hash.rs | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/src/hash.rs b/src/hash.rs index c709205..438ce4e 100644 --- a/src/hash.rs +++ b/src/hash.rs @@ -1,15 +1,16 @@ -use crate::{report, Deserialize, Serialize}; -use data_encoding::HEXLOWER; - -use crate::report::{DiffDetail, Difference}; -use schemars_derive::JsonSchema; use std::fs::File; use std::io::Read; use std::path::{Path, PathBuf}; + +use data_encoding::HEXLOWER; +use schemars_derive::JsonSchema; use thiserror::Error; use vg_errortools::fat_io_wrap_std; use vg_errortools::FatIOError; +use crate::{Deserialize, report, Serialize}; +use crate::report::{DiffDetail, Difference}; + #[derive(Debug, Deserialize, Serialize, JsonSchema, Clone, Copy)] pub enum HashFunction { Sha256, @@ -84,9 +85,10 @@ pub fn compare_files>( #[cfg(test)] mod test { - use super::*; use crate::hash::HashFunction::Sha256; + use super::*; + #[test] fn identity() { let f1 = Sha256 @@ -100,7 +102,7 @@ mod test { #[test] fn hash_pinning() { - let sum = "bc3abb411d305c4436185c474be3db2608e910612a573f6791b143d7d749b699"; + let sum = "378f768a589f29fcbd23835ec4764a53610fc910e60b540e1e5204bdaf2c73a0"; let f1 = Sha256 .hash_file(File::open("tests/integ/data/images/diff_100_DPI.png").unwrap()) .unwrap(); From 5c91da247e5b90c42807c551df552908d9aaa96f Mon Sep 17 00:00:00 2001 From: Christopher Regali Date: Mon, 29 Apr 2024 21:05:16 +0200 Subject: [PATCH 08/14] Update Cargo.toml --- Cargo.toml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index c3f7440..56f0262 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -19,7 +19,7 @@ path = "src/print_args.rs" [dependencies] -clap = { version = "4.4", features = ["derive"] } +clap = { version = "4.5", features = ["derive"] } chrono = "0.4" serde = "1.0" serde_yaml = "0.9" @@ -38,13 +38,13 @@ strsim = "0.11" itertools = "0.12" tera = "1.19" sha2 = "0.10" -data-encoding = "2.5" +data-encoding = "2.6" permutation = "0.4" pdf-extract = "0.7" vg_errortools = "0.1" -rayon = "1.9.0" +rayon = "1.10.0" enable-ansi-support = "0.2" -tempfile = "3.8" +tempfile = "3.10" fs_extra = "1.3" opener = "0.7" anyhow = "1.0" From 6b722fee2e1260119c2583ee5b1da48d1e04eaea Mon Sep 17 00:00:00 2001 From: Christopher Regali Date: Mon, 29 Apr 2024 21:06:09 +0200 Subject: [PATCH 09/14] Update README.md file --- README.md | 159 ++++++++++++++++++++++++++++++++++++------------------ 1 file changed, 107 insertions(+), 52 deletions(-) diff --git a/README.md b/README.md index 48af352..e80ff58 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,5 @@ # Havocompare - a folder comparison utility + [![Crates.io](https://img.shields.io/crates/d/havocompare?style=flat)](https://crates.io/crates/havocompare) [![Documentation](https://docs.rs/havocompare/badge.svg)](https://docs.rs/havocompare) ![CI](https://github.com/VolumeGraphics/havocompare/actions/workflows/rust.yml/badge.svg?branch=main "CI") @@ -6,6 +7,7 @@ [![License](https://img.shields.io/badge/license-MIT-blue?style=flat)](LICENSE) ## Contributors: + Contributors @@ -13,6 +15,7 @@ ## Quickstart ### 0. Install havocompare + You have rust? cool! try: `cargo install havocompare` @@ -20,28 +23,35 @@ You just want a binary: Check our binary downloads on github-pages ### 1. Create a config file -Havocompare was developed with a few design goals in mind. We wanted a human-readable and easily composable configuration file format. -After a few tries we ended up with the current format, which is a list of rules inside a yaml file. + +Havocompare was developed with a few design goals in mind. We wanted a human-readable and easily composable +configuration file format. +After a few tries we ended up with the current format, which is a list of rules inside a yaml file. See the following example `config.yaml`: + ```yaml rules: - name: "Numerical results csv" # you can have multiple includes and excludes - pattern_include: + pattern_include: - "**/export_*.csv" # excludes are optional - pattern_exclude: + pattern_exclude: - "**/export_1337.csv" CSV: comparison_modes: - Relative: 0.1 - Absolute: 1.0 ``` -It creates a new rule named rule including all files matching "export_*.csv" in all sub-folders but exclude "export_1337.csv". -String cells will be checked for perfect identity, numbers (including numbers with units) will be checked for a relative deviation smaller than `0.1` + +It creates a new rule named rule including all files matching "export_*.csv" in all sub-folders but exclude " +export_1337.csv". +String cells will be checked for perfect identity, numbers (including numbers with units) will be checked for a relative +deviation smaller than `0.1` AND absolute deviation smaller than `1.0`. __Comparison rules__ + - Relative means validity is checked like: `|nominal - actual| / |nominal| < tolerance` - Absolute means validity is checked like: `|nominal - actual| < tolerance` - "nan" and "nan" is equal @@ -51,43 +61,56 @@ __Comparison rules__ Running the comparison is super easy, just supply nominal, actual and the config: `./havocompare compare nominal_dir actual_dir config.yaml` -The report of the comparison will be written inside the `./report` folder. Differences will also be printed to the terminal. -Furthermore, if differences are found, the return code will be `1`, if no differences are found, it will be `0` making integration of +The report of the comparison will be written inside the `./report` folder. Differences will also be printed to the +terminal. +Furthermore, if differences are found, the return code will be `1`, if no differences are found, it will be `0` making +integration of havocompare into a CI system rather easy. ## Details on the config + ### Validation Scheme -Writing a valid configuration file can be error-prone without auto-completion. We suggest using json schema to validate your yaml + +Writing a valid configuration file can be error-prone without auto-completion. We suggest using json schema to validate +your yaml and even enable auto-completion in IDEs like pycharm. To generate the schema you can call: `./havocompare schema > config_scheme.json` and import the resulting scheme into your IDE. ### Comparison options + #### CSV -The `comparison_modes` option is required and of type 'list'. It can comprise either a relative numerical ('Relative') maximum deviation or a maximum -deviation ('Absolute'). -You can specify the decimal separator and the field separator. If you don't specify, havocompare will try to guess it from each csv file. -Note: If delimiters are not specified, even different delimiters between nominal and actual are accepted as long as all deviations are in bounds. + +The `comparison_modes` option is required and of type 'list'. It can comprise either a relative numerical ('Relative') +maximum deviation or a maximum +deviation ('Absolute'). +You can specify the decimal separator and the field separator. If you don't specify, havocompare will try to guess it +from each csv file. +Note: If delimiters are not specified, even different delimiters between nominal and actual are accepted as long as all +deviations are in bounds. To ignore specific cells, you can specify an exclusion regex. -The preprocessing steps are done after the file is parsed using the given delimiters (or guessing) but before anything else. Processing order is as written in the list. -In the below example, headers will be extracted from the csv-input file, then a column with the title "Column to delete" will be deleted. +The preprocessing steps are done after the file is parsed using the given delimiters (or guessing) but before anything +else. Processing order is as written in the list. +In the below example, headers will be extracted from the csv-input file, then a column with the title "Column to delete" +will be deleted. If any of the preprocessing steps fail, havocompare will exit with an error immediately so use them carefully. See the following example with all optional parameters set: + ```yaml rules: - name: "CSV - Demo all options" # what files to include - use as many as make sense to reduce duplication in your rules - pattern_include: + pattern_include: - "**/*.csv" # optional: of all included files, remove the ones matching any exclude pattern - pattern_exclude: + pattern_exclude: - "**/ignored.csv" CSV: # delimiters are optional, if not given, they will be auto-detected. # auto-detection allows different delimiters for nominal and actual decimal_separator: '.' - field_delimiter: ';' + field_delimiter: ';' # can have Absolute or Relative or both comparison_modes: - Absolute: 1.0 @@ -121,12 +144,15 @@ rules: ``` #### Image comparison -Image comparison is done using the `image compare` crate's hybrid comparison which does MSSIM on the luma and RMS on the color information. + +Image comparison is done using the `image compare` crate's hybrid comparison which does MSSIM on the luma and RMS on the +color information. Only a threshold can be specified: + ```yaml rules: - name: "JPG comparison" - pattern_include: + pattern_include: - "**/*.jpg" # exclude can of course also be specified! Image: @@ -136,15 +162,18 @@ rules: ``` #### Plain text comparison -For plain text comparison the file is read and compared line by line. For each line the normalized Damerau-Levenshtein distance from the `strsim` -crate is used. You can ignore single lines which you know are different by specifying an arbitrary number of ignored lines: + +For plain text comparison the file is read and compared line by line. For each line the normalized Damerau-Levenshtein +distance from the `strsim` +crate is used. You can ignore single lines which you know are different by specifying an arbitrary number of ignored +lines: ```yaml rules: - name: "HTML-Compare strict" - pattern_exclude: + pattern_exclude: - "**/*_changed.html" - pattern_include: + pattern_include: - "**/*.html" PlainText: # Normalized Damerau-Levenshtein distance @@ -157,14 +186,16 @@ rules: ``` #### PDF text comparison -For PDF text comparison the text will be extracted and written to temporary files. The files will then be compared using the Plain text comparison: + +For PDF text comparison the text will be extracted and written to temporary files. The files will then be compared using +the Plain text comparison: ```yaml rules: - name: "PDF-Text-Compare" - pattern_exclude: + pattern_exclude: - "**/*_changed.pdf" - pattern_include: + pattern_include: - "**/*.pdf" PDFText: # Normalized Damerau-Levenshtein distance @@ -176,15 +207,15 @@ rules: - "[A-Z]*[0-9]" ``` - #### Hash comparison + For binary files which cannot otherwise be checked we can also do a simple hash comparison. Currently, we only support SHA-256 but more checks can be added easily. ```yaml rules: - name: "Hash comparison strict" - pattern_exclude: + pattern_exclude: - "**/*.bin" Hash: # Currently we only have Sha256 @@ -192,12 +223,13 @@ rules: ``` #### File metadata comparison + For the cases where the pure existence or some metadata are already enough. ```yaml rules: - name: "Metadata comparison" - pattern_exclude: + pattern_exclude: - "**/*.bin" FileProperties: # nom/act file paths must not contain whitespace @@ -209,8 +241,8 @@ rules: ``` #### Run external comparison tool -In case you want to run an external comparison tool, you can use this option +In case you want to run an external comparison tool, you can use this option ```yaml rules: @@ -226,24 +258,25 @@ rules: - "--only-images" ``` - #### JSON comparison + Compares JSON files for different keys in both files and mismatches in values. ignore_keys elements will be ignored, full regex matching on only the key names / paths is supported. The values are not affected by this. ```yaml rules: -- name: "Compare JSON files" - pattern_include: - - "**/*.json" - Json: - ignore_keys: - # drop "ignore_this_key" and "ignore_this_keys" with this regex :) - - "ignore_this_key(s?)" + - name: "Compare JSON files" + pattern_include: + - "**/*.json" + Json: + ignore_keys: + # drop "ignore_this_key" and "ignore_this_keys" with this regex :) + - "ignore_this_key(s?)" ``` ### Use HavoCompare in your unit-tests + 1. Add havocompare to your dev-dependencies: ```toml [dev-dependencies] @@ -272,38 +305,50 @@ rules: ## Changelog +### 0.6.0 + +- Add new options for image compare module (loads!) + ### 0.5.4 + - Add option to run single file mode from CLI ### 0.5.3 + - Add option to sort json arrays (including deep sorting) - Make single file comparison function to public api - Update dependencies, fix broken pdf import regarding whitespaces - ### 0.5.2 + - Preserve white spaces in CSV and PDF report instead of being collapsed by HTML - Add + and - symbols to the report index - Display combined file names in report index if the compared file names are different ### 0.5.1 + - Fix potential crash in JSON checking ### 0.5.0 + - Add JSON checking ### 0.4.0 + - Separate reporting logic from comparison logic - Implement a machine-readable JSON reporting ### 0.3.2 + - Allow direct opening of reports after comparison with `--open` - Parsing failures when running `compare` are now propagated to terminal ### 0.3.1 + - Fix swapped actual and nominal for hash and text-compares ### 0.3.0 + - Allow RGBA image comparison - Add file metadata comparison - Add external checking @@ -312,33 +357,40 @@ rules: - Added config yaml validation command to check whether file can be loaded or not ### 0.2.4 + - add check for row lines of both compared csv files, and throw error if they are unequal - Add deletion by cell -- Simplify report sub-folders creation: sub-folders are now created temporarily in the temp folder instead of in the current working folder +- Simplify report sub-folders creation: sub-folders are now created temporarily in the temp folder instead of in the + current working folder - Change report row numbering to always start with 0, so row deletion is more understandable - fix floating point value comparison of non-displayable diff values ### 0.2.3 -- bump pdf-extract crate to 0.6.4 to fix "'attempted to leave type `linked_hash_map::Node, object::Object>` uninitialized'" + +- bump pdf-extract crate to 0.6.4 to fix "'attempted to leave + type `linked_hash_map::Node, object::Object>` uninitialized'" ### 0.2.2 + - Include files which has error and can't be compared to the report - Fixed a bug which caused the program exited early out of rules-loop, and not processing all ### 0.2.0 + - Deletion of columns will no longer really delete them but replace every value with "DELETED" - Expose config struct to library API - Fixed a bug regarding wrong handling of multiple empty lines -- Reworked CSV reporting to have an interleaved and more compact view - - Display the relative path of compared files instead of file name in the report index.html - - Made header-extraction fallible but uncritical - can now always be enabled +- Reworked CSV reporting to have an interleaved and more compact view + - Display the relative path of compared files instead of file name in the report index.html + - Made header-extraction fallible but uncritical - can now always be enabled - Wrote a completely new csv parser: - - Respects escaping with '\' - - Allows string-literals containing unescaped field separators (field1, "field2, but as literal", field3) - - Allows multi-line string literals with quotes + - Respects escaping with '\' + - Allows string-literals containing unescaped field separators (field1, "field2, but as literal", field3) + - Allows multi-line string literals with quotes - CSVs with non-rectangular format will now fail ### 0.1.4 + - Add multiple includes and excludes - warning, this will break rules-files from 0.1.3 and earlier - Remove all `unwrap` and `expect` in the library code in favor of correct error propagation - Add preprocessing options for CSV files @@ -347,14 +399,17 @@ rules: - Add PDF-Text compare ### 0.1.3: + - Add optional cli argument to configure the folder to store the report ### 0.1.2: + - Add SHA-256 comparison mode - Fix BOM on windows for CSV comparison ### 0.1.1: - - Better error message on folder not found - - Better test coverage - - Fix colors on Windows terminal - - Extend CI to Windows and mac + +- Better error message on folder not found +- Better test coverage +- Fix colors on Windows terminal +- Extend CI to Windows and mac From 63bdd3ea87e3e476975035ef12dac3f9772421ed Mon Sep 17 00:00:00 2001 From: Christopher Regali Date: Fri, 3 May 2024 23:02:27 +0200 Subject: [PATCH 10/14] Use new json-compare lib with internal support for ignore-regex. --- Cargo.toml | 2 +- src/json.rs | 17 ++++++++--------- 2 files changed, 9 insertions(+), 10 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 56f0262..9544b86 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -48,7 +48,7 @@ tempfile = "3.10" fs_extra = "1.3" opener = "0.7" anyhow = "1.0" -json_diff_ng = { version = "0.4" } +json_diff_ng = { version = "0.5" } [dev-dependencies] diff --git a/src/json.rs b/src/json.rs index b31a15e..1ef98e9 100644 --- a/src/json.rs +++ b/src/json.rs @@ -1,12 +1,14 @@ -use crate::report::{DiffDetail, Difference}; -use crate::Error; +use std::path::Path; + use itertools::Itertools; use regex::Regex; use schemars_derive::JsonSchema; use serde::{Deserialize, Serialize}; -use std::path::Path; use tracing::error; +use crate::Error; +use crate::report::{DiffDetail, Difference}; + #[derive(Debug, Deserialize, Serialize, JsonSchema, Clone)] /// configuration for the json compare module pub struct JsonConfig { @@ -33,7 +35,8 @@ pub(crate) fn compare_files>( let actual = vg_errortools::fat_io_wrap_std(&actual, &std::fs::read_to_string)?; let ignores = config.get_ignore_list()?; - let json_diff = json_diff::process::compare_jsons(&nominal, &actual, config.sort_arrays); + let json_diff = + json_diff::process::compare_jsons(&nominal, &actual, config.sort_arrays, &ignores); let json_diff = match json_diff { Ok(diff) => diff, Err(e) => { @@ -45,11 +48,7 @@ pub(crate) fn compare_files>( return Ok(diff); } }; - let filtered_diff: Vec<_> = json_diff - .all_diffs() - .into_iter() - .filter(|(_d, v)| !ignores.iter().any(|excl| excl.is_match(v.get_key()))) - .collect(); + let filtered_diff: Vec<_> = json_diff.all_diffs(); if !filtered_diff.is_empty() { for (d_type, key) in filtered_diff.iter() { From 1b7bfbf2210a7c09a8bbc0ba696ec4634d50dc13 Mon Sep 17 00:00:00 2001 From: Christopher Regali Date: Sun, 5 May 2024 14:39:35 +0200 Subject: [PATCH 11/14] Add commentary to image.rs --- src/image.rs | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/src/image.rs b/src/image.rs index f22bbb7..6bc2d33 100644 --- a/src/image.rs +++ b/src/image.rs @@ -1,13 +1,15 @@ -use crate::report::DiffDetail; -use crate::{get_file_name, report}; +use std::path::Path; + use image::{DynamicImage, Rgb}; use image_compare::{Algorithm, Metric, Similarity}; use schemars_derive::JsonSchema; use serde::{Deserialize, Serialize}; -use std::path::Path; use thiserror::Error; use tracing::error; +use crate::{get_file_name, report}; +use crate::report::DiffDetail; + #[derive(JsonSchema, Deserialize, Serialize, Debug, Clone)] pub enum RGBACompareMode { /// full RGBA comparison - probably not intuitive, rarely what you want outside of video processing @@ -58,14 +60,19 @@ pub enum GrayHistogramCompareMetric { #[derive(JsonSchema, Deserialize, Serialize, Debug, Clone)] pub enum GrayCompareMode { + /// Compare gray values pixel structure Structure(GrayStructureAlgorithm), + /// Compare gray values by histogram Histogram(GrayHistogramCompareMetric), } #[derive(JsonSchema, Deserialize, Serialize, Debug, Clone)] pub enum CompareMode { + /// Compare images as RGB RGB(RGBCompareMode), + /// Compare images as RGBA RGBA(RGBACompareMode), + /// Compare images as luminance / grayscale Gray(GrayCompareMode), } From e7b4f425a3e6b96ee4fb13eb42501b01ce9f9f12 Mon Sep 17 00:00:00 2001 From: Christopher Regali Date: Sun, 5 May 2024 14:41:19 +0200 Subject: [PATCH 12/14] Finalize commentary of new image comparison configuration --- src/image.rs | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/image.rs b/src/image.rs index 6bc2d33..ccbb5a9 100644 --- a/src/image.rs +++ b/src/image.rs @@ -52,9 +52,13 @@ pub enum GrayStructureAlgorithm { /// Distance metrics for histograms for grayscale comparison #[derive(JsonSchema, Deserialize, Serialize, Debug, Clone)] pub enum GrayHistogramCompareMetric { + /// Correlation $d(H_1,H_2) = \frac{\sum_I (H_1(I) - \bar{H_1}) (H_2(I) - \bar{H_2})}{\sqrt{\sum_I(H_1(I) - \bar{H_1})^2 \sum_I(H_2(I) - \bar{H_2})^2}}$ Correlation, + /// Chi-Square $d(H_1,H_2) = \sum _I \frac{\left(H_1(I)-H_2(I)\right)^2}{H_1(I)}$ ChiSquare, + /// Intersection $d(H_1,H_2) = \sum _I \min (H_1(I), H_2(I))$ Intersection, + /// Hellinger distance $d(H_1,H_2) = \sqrt{1 - \frac{1}{\sqrt{\int{H_1} \int{H_2}}} \sum_I \sqrt{H_1(I) \cdot H_2(I)}}$ Hellinger, } From f8efb406c7423d68a7610e61204f524fb676cdcb Mon Sep 17 00:00:00 2001 From: Christopher Regali Date: Sun, 5 May 2024 14:44:21 +0200 Subject: [PATCH 13/14] Fix README.md for new updates on image compare. --- README.md | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index e80ff58..fdc0348 100644 --- a/README.md +++ b/README.md @@ -145,9 +145,8 @@ rules: #### Image comparison -Image comparison is done using the `image compare` crate's hybrid comparison which does MSSIM on the luma and RMS on the -color information. -Only a threshold can be specified: +Image comparison is done using the `image compare` crate. +Specify loads of options here and then filter on threshold. ```yaml rules: @@ -156,8 +155,9 @@ rules: - "**/*.jpg" # exclude can of course also be specified! Image: - # threshold is between 0.0 for total difference, 0.5 for very dissimilar and 1.0 for perfect mach - # Usually you want to test with values between 0.90 and 0.97 + # Compare images in RGBA-mode, can also be RGB and Gray + # Comparison mode set to Hybrid means we want MSSIM on the Y channel and 2 dim vec diff on UV for color information + RGBA: Hybrid threshold: 0.9 ``` @@ -307,7 +307,8 @@ rules: ### 0.6.0 -- Add new options for image compare module (loads!) +- Add new options for image compare module (a lot of options!) +- Bump json-compare to new version fixing bugs in regex field excludes and sorting ### 0.5.4 From a0d2a1ce2ff3808b9f2de5db80d99cf7b9de3ce1 Mon Sep 17 00:00:00 2001 From: Christopher Regali <60792386+ChrisRega@users.noreply.github.com> Date: Mon, 6 May 2024 11:03:40 +0200 Subject: [PATCH 14/14] README.md aktualisieren Co-authored-by: Alexander Rohde --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index fdc0348..f6336f1 100644 --- a/README.md +++ b/README.md @@ -261,7 +261,7 @@ rules: #### JSON comparison Compares JSON files for different keys in both files and mismatches in values. -ignore_keys elements will be ignored, full regex matching on only the key names / paths is supported. +`ignore_keys` is a list of regexes that are matched against the individual key names, the key value pair is excluded from the comparison if a regex matches. The values are not affected by this. ```yaml