// // Copyright (c) James Jackson-South and contributors. // Licensed under the Apache License, Version 2.0. // namespace ImageSharp.Tests.PixelFormats { using System; using System.Collections.Generic; using System.Text; using ImageSharp.PixelFormats; using ImageSharp.PixelFormats.PixelBlenders; using ImageSharp.Tests.TestUtilities; using Xunit; public class PixelOperations { public static TheoryData blenderMappings = new TheoryData() { { new TestPixel(), typeof(DefaultNormalPixelBlender), PixelBlenderMode.Normal }, { new TestPixel(), typeof(DefaultScreenPixelBlender), PixelBlenderMode.Screen }, { new TestPixel(), typeof(DefaultHardLightPixelBlender), PixelBlenderMode.HardLight }, { new TestPixel(), typeof(DefaultOverlayPixelBlender), PixelBlenderMode.Overlay }, { new TestPixel(), typeof(DefaultDarkenPixelBlender), PixelBlenderMode.Darken }, { new TestPixel(), typeof(DefaultLightenPixelBlender), PixelBlenderMode.Lighten }, { new TestPixel(), typeof(DefaultAddPixelBlender), PixelBlenderMode.Add }, { new TestPixel(), typeof(DefaultSubstractPixelBlender), PixelBlenderMode.Substract }, { new TestPixel(), typeof(DefaultMultiplyPixelBlender), PixelBlenderMode.Multiply }, { new TestPixel(), typeof(DefaultNormalPixelBlender), PixelBlenderMode.Normal }, { new TestPixel(), typeof(DefaultScreenPixelBlender), PixelBlenderMode.Screen }, { new TestPixel(), typeof(DefaultHardLightPixelBlender), PixelBlenderMode.HardLight }, { new TestPixel(), typeof(DefaultOverlayPixelBlender), PixelBlenderMode.Overlay }, { new TestPixel(), typeof(DefaultDarkenPixelBlender), PixelBlenderMode.Darken }, { new TestPixel(), typeof(DefaultLightenPixelBlender), PixelBlenderMode.Lighten }, { new TestPixel(), typeof(DefaultAddPixelBlender), PixelBlenderMode.Add }, { new TestPixel(), typeof(DefaultSubstractPixelBlender), PixelBlenderMode.Substract }, { new TestPixel(), typeof(DefaultMultiplyPixelBlender), PixelBlenderMode.Multiply }, }; [Theory] [MemberData(nameof(blenderMappings))] public void ReturnsCorrectBlender(TestPixel pixel, Type type, PixelBlenderMode mode) where TPixel : struct, IPixel { PixelBlender blender = PixelOperations.Instance.GetPixelBlender(mode); Assert.IsType(type, blender); } } }