//
// 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);
}
}
}