public void Parse_HslAndHsla_WithDoubleValues_NoExceptionsThrown(string color)
        {
            // Arrange
            var reader     = new CssReader(color);
            var builder    = new GradientBuilder();
            var definition = new ColorChannelDefinition();

            // Act
            Action action = () => definition.Parse(reader, builder);

            // Assert
            action.Should().NotThrow <Exception>();
        }
        public void Parse_ValidColor_SingleStopWithColorAndOffset(string color, Color expectedColor, float expectedOffset)
        {
            // Arrange
            var reader     = new CssReader(color);
            var builder    = new LinearGradientBuilder();
            var definition = new ColorChannelDefinition();

            // Act
            definition.Parse(reader, builder);

            // Assert
            var result = builder.Build();

            using (new AssertionScope())
            {
                var stops = result.SelectMany(x => x.Stops).ToArray();
                stops.Should().HaveCount(1);

                stops[0].Color.Should().Be(expectedColor);
                stops[0].Offset.Should().Be(expectedOffset);
            }
        }