namespace ImageSharp.Tests.Colorspaces { using System.Collections.Generic; using ImageSharp.ColorSpaces; using ImageSharp.ColorSpaces.Conversion; using Xunit; /// /// Tests - conversions. /// /// /// Test data generated using: /// /// /// public class RgbAndHslConversionTest { private static readonly IEqualityComparer FloatRoundingComparer = new FloatRoundingComparer(4); private static readonly ColorSpaceConverter Converter = new ColorSpaceConverter(); /// /// Tests conversion from to . /// [Theory] [InlineData(0, 0, 0, 0, 0, 0)] [InlineData(0, 1, 1, 1, 1, 1)] [InlineData(360, 1, 1, 1, 1, 1)] [InlineData(0, 1, .5F, 1, 0, 0)] [InlineData(120, 1, .5F, 0, 1, 0)] [InlineData(240, 1, .5F, 0, 0, 1)] public void Convert_Hsl_To_Rgb(float h, float s, float l, float r, float g, float b) { // Arrange Hsl input = new Hsl(h, s, l); // Act Rgb output = Converter.ToRgb(input); // Assert Assert.Equal(Rgb.DefaultWorkingSpace, output.WorkingSpace); Assert.Equal(r, output.R, FloatRoundingComparer); Assert.Equal(g, output.G, FloatRoundingComparer); Assert.Equal(b, output.B, FloatRoundingComparer); } /// /// Tests conversion from to . /// [Theory] [InlineData(0, 0, 0, 0, 0, 0)] [InlineData(1, 1, 1, 0, 0, 1)] [InlineData(1, 0, 0, 0, 1, .5F)] [InlineData(0, 1, 0, 120, 1, .5F)] [InlineData(0, 0, 1, 240, 1, .5F)] public void Convert_Rgb_To_Hsl(float r, float g, float b, float h, float s, float l) { // Arrange Rgb input = new Rgb(r, g, b); // Act Hsl output = Converter.ToHsl(input); // Assert Assert.Equal(h, output.H, FloatRoundingComparer); Assert.Equal(s, output.S, FloatRoundingComparer); Assert.Equal(l, output.L, FloatRoundingComparer); } } }