#![cfg_attr(
not(any(
feature = "psnr",
feature = "ssim",
feature = "dssim",
feature = "ms-ssim",
feature = "iw-ssim",
feature = "psnr-hvs-m",
feature = "ciede2000",
feature = "ssimulacra2",
feature = "butteraugli"
)),
allow(unused_imports, unused_macros)
)]
mod common;
use common::*;
macro_rules! property_matrix {
($metric:ty, $($fmt:ident),+ $(,)?) => {
$(
#[test]
#[allow(non_snake_case)]
fn $fmt() {
run_property_suite::<$fmt, $metric>();
}
)+
};
}
#[cfg(feature = "psnr")]
mod psnr_rgb_averaged {
use super::*;
property_matrix!(PsnrRgbAvg, Srgb8, Srgb16, Gray8, Gray16, Rgba8, Rgba16);
}
#[cfg(feature = "psnr")]
mod psnr_luma709 {
use super::*;
property_matrix!(PsnrLuma, Srgb8, Srgb16, Gray8, Gray16, Rgba8, Rgba16);
}
#[cfg(feature = "ssim")]
mod ssim_rgb_averaged {
use super::*;
property_matrix!(SsimRgbAvg, Srgb8, Srgb16, Gray8, Gray16, Rgba8, Rgba16);
}
#[cfg(feature = "ssim")]
mod ssim_luma709 {
use super::*;
property_matrix!(SsimLuma, Srgb8, Srgb16, Gray8, Gray16, Rgba8, Rgba16);
}
#[cfg(feature = "dssim")]
mod dssim_rgb_averaged {
use super::*;
property_matrix!(DssimRgbAvg, Srgb8, Srgb16, Gray8, Gray16, Rgba8, Rgba16);
}
#[cfg(feature = "dssim")]
mod dssim_luma709 {
use super::*;
property_matrix!(DssimLuma, Srgb8, Srgb16, Gray8, Gray16, Rgba8, Rgba16);
}
#[cfg(feature = "ms-ssim")]
mod ms_ssim_rgb_averaged {
use super::*;
property_matrix!(MsssimRgbAvg, Srgb8, Srgb16, Gray8, Gray16, Rgba8, Rgba16);
}
#[cfg(feature = "ms-ssim")]
mod ms_ssim_luma709 {
use super::*;
property_matrix!(MsssimLuma, Srgb8, Srgb16, Gray8, Gray16, Rgba8, Rgba16);
}
#[cfg(feature = "iw-ssim")]
mod iw_ssim_rgb_averaged {
use super::*;
property_matrix!(IwssimRgbAvg, Srgb8, Srgb16, Gray8, Gray16, Rgba8, Rgba16);
}
#[cfg(feature = "iw-ssim")]
mod iw_ssim_luma709 {
use super::*;
property_matrix!(IwssimLuma, Srgb8, Srgb16, Gray8, Gray16, Rgba8, Rgba16);
}
#[cfg(feature = "psnr-hvs-m")]
mod psnr_hvs_m_rgb_averaged {
use super::*;
property_matrix!(PsnrHvsMRgbAvg, Srgb8, Srgb16, Gray8, Gray16, Rgba8, Rgba16);
}
#[cfg(feature = "psnr-hvs-m")]
mod psnr_hvs_m_luma709 {
use super::*;
property_matrix!(PsnrHvsMLuma, Srgb8, Srgb16, Gray8, Gray16, Rgba8, Rgba16);
}
#[cfg(feature = "ciede2000")]
mod ciede2000 {
use super::*;
property_matrix!(Ciede2000, Srgb8, Srgb16, Gray8, Gray16, Rgba8, Rgba16);
}
#[cfg(feature = "ssimulacra2")]
mod ssimulacra2 {
use super::*;
property_matrix!(Ssim2, Srgb8, Srgb16, Gray8, Gray16, Rgba8, Rgba16);
}
#[cfg(feature = "butteraugli")]
mod butteraugli {
use super::*;
property_matrix!(Butteraugli, Srgb8, Srgb16, Gray8, Gray16, Rgba8, Rgba16);
}