public void IsMatch_ProvidedToken_CorrectMatchResult(string token, bool expectedMatch)
        {
            // Arrange
            var definition = new ColorHexDefinition();

            // Act
            var isMatch = definition.IsMatch(token);

            // Assert
            isMatch.Should().Be(expectedMatch);
        }
        public void Parse_ValidColor_SingleStopWithColorAndOffset(string color, Color expectedColor, double expectedOffset)
        {
            // Arrange
            var reader     = new CssReader(color);
            var builder    = new GradientBuilder();
            var definition = new ColorHexDefinition();

            // 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.Value.Should().Be(expectedOffset);
            }
        }