// ReSharper disable InconsistentNaming namespace ImageSharp.Tests { using System; using ImageSharp.PixelFormats; using ImageSharp.Tests.TestUtilities.ImageComparison; using Moq; using Xunit; public class TestImageExtensionsTests { [Theory] [WithSolidFilledImages(10, 10, 0, 0, 255, PixelTypes.Rgba32)] public void CompareToReferenceOutput_WhenReferenceOutputMatches_ShouldNotThrow( TestImageProvider provider) where TPixel : struct, IPixel { using (Image image = provider.GetImage()) { image.CompareToReferenceOutput(provider); } } [Theory] [WithSolidFilledImages(10, 10, 0, 0, 255, PixelTypes.Rgba32)] public void CompareToReferenceOutput_WhenReferenceOutputDoesNotMatch_Throws( TestImageProvider provider) where TPixel : struct, IPixel { using (Image image = provider.GetImage()) { Assert.ThrowsAny(() => image.CompareToReferenceOutput(provider)); } } [Theory] [WithSolidFilledImages(10, 10, 0, 0, 255, PixelTypes.Rgba32)] public void CompareToReferenceOutput_DoNotAppendPixelType( TestImageProvider provider) where TPixel : struct, IPixel { using (Image image = provider.GetImage()) { image.DebugSave(provider, appendPixelTypeToFileName: false); image.CompareToReferenceOutput(provider, appendPixelTypeToFileName: false); } } [Theory] [WithSolidFilledImages(10, 10, 0, 0, 255, PixelTypes.Rgba32)] public void CompareToReferenceOutput_WhenReferenceFileMissing_Throws(TestImageProvider provider) where TPixel : struct, IPixel { using (Image image = provider.GetImage()) { Assert.ThrowsAny(() => image.CompareToReferenceOutput(provider)); } } [Theory] [WithFile(TestImages.Png.CalliphoraPartial, PixelTypes.Rgba32)] public void CompareToOriginal_WhenSimilar(TestImageProvider provider) where TPixel : struct, IPixel { using (Image image = provider.GetImage()) { using (Image clone = image.Clone()) { clone.CompareToOriginal(provider, ImageComparer.Exact); } } } [Theory] [WithFile(TestImages.Png.CalliphoraPartial, PixelTypes.Rgba32)] public void CompareToOriginal_WhenDifferent_Throws(TestImageProvider provider) where TPixel : struct, IPixel { using (Image image = provider.GetImage()) { ImagingTestCaseUtility.ModifyPixel(image, 3, 1, 1); Assert.ThrowsAny( () => { image.CompareToOriginal(provider, ImageComparer.Exact); }); } } [Theory] [WithBlankImages(10, 10, PixelTypes.Rgba32)] public void CompareToOriginal_WhenInputIsNotFromFile_Throws(TestImageProvider provider) where TPixel : struct, IPixel { using (Image image = provider.GetImage()) { Assert.ThrowsAny( () => { image.CompareToOriginal(provider, Mock.Of()); }); } } } }