Esempio n. 1
0
        public async Task Should_render_properly(string name, string url)
        {
            using (var browserFetcher = new BrowserFetcher())
            {
                await browserFetcher.DownloadAsync();
            }

            await using var browser = await Puppeteer.LaunchAsync(new LaunchOptions
            {
                Headless        = true,
                DefaultViewport = new ViewPortOptions
                {
                    Height      = 800,
                    IsLandscape = true,
                    IsMobile    = false,
                    Width       = 1000
                },
                Args = new string[]
                {
                    "--no-sandbox"
                }
            });

            await using var page = await browser.NewPageAsync();

            await page.GoToAsync(_.ClientManager.Options.Url + url + "?skip-setup");

            await page.ScreenshotAsync($"__{name}.jpg");

            var diff = ImageSharpCompare.CalcDiff($"__{name}.jpg", $"Assets/{name}.jpg");

            Assert.InRange(diff.MeanError, 0, 10);
        }
        public void ShouldVerifyThatImageStreamsAreEqual(string pathActual, string pathExpected)
        {
            using var actual   = new FileStream(pathActual, FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
            using var expected = new FileStream(pathExpected, FileMode.Open, FileAccess.Read, FileShare.ReadWrite);

            Assert.That(ImageSharpCompare.ImagesAreEqual(actual, expected), Is.True);
        }
Esempio n. 3
0
        public void ShouldVerifyThatImagesAreSemiEqual(string pathPic1, string pathPic2, int expectedMeanError, int expectedAbsoluteError, int expectedPixelErrorCount, double expectedPixelErrorPercentage)
        {
            var diff = ImageSharpCompare.CalcDiff(pathPic1, pathPic2);

            Assert.That(diff.AbsoluteError, Is.EqualTo(expectedAbsoluteError), "AbsoluteError");
            Assert.That(diff.MeanError, Is.EqualTo(expectedMeanError), "MeanError");
            Assert.That(diff.PixelErrorCount, Is.EqualTo(expectedPixelErrorCount), "PixelErrorCount");
            Assert.That(diff.PixelErrorPercentage, Is.EqualTo(expectedPixelErrorPercentage), "PixelErrorPercentage");
        }
        public void ShouldVerifyThatImageStreamsAreSemiEqual(string pathPic1, string pathPic2, int expectedAbsoluteError, double expectedMeanError, int expectedPixelErrorCount, double expectedPixelErrorPercentage)
        {
            using var pic1 = new FileStream(pathPic1, FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
            using var pic2 = new FileStream(pathPic2, FileMode.Open, FileAccess.Read, FileShare.ReadWrite);

            var diff = ImageSharpCompare.CalcDiff(pic1, pic2);

            Assert.That(diff.AbsoluteError, Is.EqualTo(expectedAbsoluteError), "AbsoluteError");
            Assert.That(diff.MeanError, Is.EqualTo(expectedMeanError), "MeanError");
            Assert.That(diff.PixelErrorCount, Is.EqualTo(expectedPixelErrorCount), "PixelErrorCount");
            Assert.That(diff.PixelErrorPercentage, Is.EqualTo(expectedPixelErrorPercentage), "PixelErrorPercentage");
        }
Esempio n. 5
0
        public async Task ShouldCreatePngFromPdf()
        {
            var actualImagePath = Path.Combine(Path.GetTempPath(), "ActualShouldCreatePngFromPdf");

            using var rasterizer = new Rasterizer();
            var actualImages = await rasterizer.ConvertToPngAsync(@"../../../SourceTest.pdf", actualImagePath);

            Assert.Equal(1, actualImages.Count);
            Assert.True(File.Exists(actualImages.Single()), "Actual output file not found");
            Assert.True(ImageSharpCompare.ImageAreEqual(actualImages.Single(), @"../../../ExpectedImages/ExpectedShouldCreatePngFromPdf1.png"), "Actual and expected image do differ");
            File.Delete(actualImages.Single());
        }
Esempio n. 6
0
        public void Diffmask(string pathPic1, string pathPic2, int expectedMeanError, int expectedAbsoluteError, int expectedPixelErrorCount, double expectedPixelErrorPercentage)
        {
            using (var fileStreamDifferenceMask = File.Create("differenceMask.png"))
                using (var maskImage = ImageSharpCompare.CalcDiffMaskImage(pathPic1, pathPic2))
                {
                    SixLabors.ImageSharp.ImageExtensions.SaveAsPng(maskImage, fileStreamDifferenceMask);
                }

            var maskedDiff = ImageSharpCompare.CalcDiff(pathPic1, pathPic2, "differenceMask.png");

            Assert.That(maskedDiff.AbsoluteError, Is.EqualTo(expectedAbsoluteError), "AbsoluteError");
            Assert.That(maskedDiff.MeanError, Is.EqualTo(expectedMeanError), "MeanError");
            Assert.That(maskedDiff.PixelErrorCount, Is.EqualTo(expectedPixelErrorCount), "PixelErrorCount");
            Assert.That(maskedDiff.PixelErrorPercentage, Is.EqualTo(expectedPixelErrorPercentage), "PixelErrorPercentage");
        }
        public void DiffmaskSteams(string pathPic1, string pathPic2, int expectedMeanError, int expectedAbsoluteError, int expectedPixelErrorCount, double expectedPixelErrorPercentage)
        {
            using var pic1 = new FileStream(pathPic1, FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
            using var pic2 = new FileStream(pathPic2, FileMode.Open, FileAccess.Read, FileShare.ReadWrite);

            using var maskImage = ImageSharpCompare.CalcDiffMaskImage(pic1, pic2);

            pic1.Position = 0;
            pic2.Position = 0;

            var maskedDiff = ImageSharpCompare.CalcDiff(pic1, pic2, maskImage);

            Assert.That(maskedDiff.AbsoluteError, Is.EqualTo(expectedAbsoluteError), "AbsoluteError");
            Assert.That(maskedDiff.MeanError, Is.EqualTo(expectedMeanError), "MeanError");
            Assert.That(maskedDiff.PixelErrorCount, Is.EqualTo(expectedPixelErrorCount), "PixelErrorCount");
            Assert.That(maskedDiff.PixelErrorPercentage, Is.EqualTo(expectedPixelErrorPercentage), "PixelErrorPercentage");
        }
    public static void AssertImagesEqual <TPixel>(Image <TPixel> actualImage,
                                                  string referenceName) where TPixel : unmanaged, IPixel <TPixel>
    {
        var imageBasename = TestContext.CurrentContext.Test.FullName.Replace("OpenTemple.Tests.", "")
                            + Path.GetFileNameWithoutExtension(referenceName);
        var actualPath = imageBasename + "_actual.png";

        actualImage.Save(actualPath);

        var expectedPath = TestData.GetPath(referenceName);

        if (!File.Exists(expectedPath))
        {
            File.Copy(actualPath, expectedPath);
            throw new NUnitException("Reference file didn't exist: " + expectedPath
                                     + " copied actual to its location");
        }

        using var expectedImage   = Image.Load(expectedPath);
        using var expectedImage32 = expectedImage.CloneAs <Rgba32>();
        using var actualImage32   = actualImage.CloneAs <Rgba32>();

        var imageDiff = ImageSharpCompare.CalcDiff(actualImage32, expectedImage32);

        if (imageDiff.PixelErrorCount > 0)
        {
            // Re-save the expected image so it is next to the actual and difference
            File.Delete(imageBasename + "_expected.png");
            File.Copy(expectedPath, imageBasename + "_expected.png");

            // Calculate the difference as an image
            var visualDifference = imageBasename + "_difference.png";
            using (var maskImage = ImageSharpCompare.CalcDiffMaskImage(actualImage32, expectedImage32))
                maskImage.SaveAsPng(visualDifference);

            TestContext.AddTestAttachment(actualPath, "Actual image");
            TestContext.AddTestAttachment(imageBasename + "_expected.png", "Expected image");
            TestContext.AddTestAttachment(visualDifference, "Visual difference");
            Assert.AreEqual(0, imageDiff.PixelErrorCount, "Images are different, see "
                            + actualPath + " and " + visualDifference);
        }
    }
Esempio n. 9
0
 public void ShouldVerifyThatImagesAreNotEqual(string pathActual, string pathExpected)
 {
     Assert.That(ImageSharpCompare.ImageAreEqual(pathActual, pathExpected), Is.False);
 }