Ejemplo n.º 1
0
        public static Image <TPixel> CompareToOriginal <TPixel>(
            this Image <TPixel> image,
            ITestImageProvider provider,
            ImageComparer comparer,
            IImageDecoder referenceDecoder = null)
            where TPixel : unmanaged, IPixel <TPixel>
        {
            string path = TestImageProvider <TPixel> .GetFilePathOrNull(provider);

            if (path == null)
            {
                throw new InvalidOperationException("CompareToOriginal() works only with file providers!");
            }

            var testFile = TestFile.Create(path);

            referenceDecoder = referenceDecoder ?? TestEnvironment.GetReferenceDecoder(path);

            using (var original = Image.Load <TPixel>(testFile.Bytes, referenceDecoder))
            {
                comparer.VerifySimilarity(original, image);
            }

            return(image);
        }
Ejemplo n.º 2
0
        public static Image <TPixel> CompareToOriginal <TPixel>(
            this Image <TPixel> image,
            ITestImageProvider provider,
            ImageComparer comparer)
            where TPixel : struct, IPixel <TPixel>
        {
            string path = TestImageProvider <TPixel> .GetFilePathOrNull(provider);

            if (path == null)
            {
                throw new InvalidOperationException("CompareToOriginal() works only with file providers!");
            }

            var testFile = TestFile.Create(path);

            IImageDecoder referenceDecoder = TestEnvironment.GetReferenceDecoder(path);
            IImageFormat  format           = TestEnvironment.GetImageFormat(path);
            IImageDecoder defaultDecoder   = Configuration.Default.FindDecoder(format);

            //if (referenceDecoder.GetType() == defaultDecoder.GetType())
            //{
            //    throw new InvalidOperationException($"Can't use CompareToOriginal(): no actual reference decoder registered for {format.Name}");
            //}

            using (var original = Image.Load <TPixel>(testFile.Bytes, referenceDecoder))
            {
                comparer.VerifySimilarity(original, image);
            }

            return(image);
        }