public void Parse() { Assert.Equal(BlendMode.Darken, BlendModeHelper.Parse("DARKEN")); Assert.Equal(BlendMode.Multiply, BlendModeHelper.Parse("MULTIPLY")); Assert.Equal(BlendMode.Lighten, BlendModeHelper.Parse("LIGHTEN")); Assert.Equal(BlendMode.Screen, BlendModeHelper.Parse("SCREEN")); Assert.Equal(BlendMode.Difference, BlendModeHelper.Parse("DIFFERENCE")); Assert.Equal(BlendMode.Exclusion, BlendModeHelper.Parse("EXCLUSION")); Assert.Equal(BlendMode.Hue, BlendModeHelper.Parse("HUE")); Assert.Equal(BlendMode.Color, BlendModeHelper.Parse("COLOR")); }
public static DrawCommand Parse(ReadOnlySpan <char> text) { if (text.StartsWith("draw(".AsSpan())) { text = text.Slice(5, text.Length - 6); } var parser = new DrawArgumentReader(text); Alignment align = default; BlendMode blendMode = BlendMode.Normal; Unit? x = null; Unit? y = null; string fill = null; string stroke = null; var objects = new List <Shape>(); while (parser.TryRead(out var arg)) { // circle // if (arg.Name == null) { objects.Add(Shape.Parse(arg.Value.ToString())); } else { string value = arg.Value.ToString(); switch (arg.Name) { case "align": align = AlignmentHelper.Parse(value); break; case "blendMode": blendMode = BlendModeHelper.Parse(value); break; case "x": x = Unit.Parse(value); break; case "y": y = Unit.Parse(value); break; case "fill": fill = value; break; case "stroke": stroke = value; break; } } } return(new DrawCommand(align, x, y, blendMode, fill, stroke, objects.ToArray())); }
public void CanParseAllCssBlendModes() { Assert.Equal(BlendMode.Normal, BlendModeHelper.Parse("normal")); Assert.Equal(BlendMode.Multiply, BlendModeHelper.Parse("multiply")); Assert.Equal(BlendMode.Screen, BlendModeHelper.Parse("screen")); Assert.Equal(BlendMode.Overlay, BlendModeHelper.Parse("overlay")); Assert.Equal(BlendMode.Darken, BlendModeHelper.Parse("darken")); Assert.Equal(BlendMode.Lighten, BlendModeHelper.Parse("lighten")); Assert.Equal(BlendMode.ColorDodge, BlendModeHelper.Parse("color-dodge")); Assert.Equal(BlendMode.ColorBurn, BlendModeHelper.Parse("color-burn")); Assert.Equal(BlendMode.HardLight, BlendModeHelper.Parse("hard-light")); Assert.Equal(BlendMode.SoftLight, BlendModeHelper.Parse("soft-light")); Assert.Equal(BlendMode.Difference, BlendModeHelper.Parse("difference")); Assert.Equal(BlendMode.Exclusion, BlendModeHelper.Parse("exclusion")); Assert.Equal(BlendMode.Hue, BlendModeHelper.Parse("hue")); Assert.Equal(BlendMode.Saturation, BlendModeHelper.Parse("saturation")); Assert.Equal(BlendMode.Color, BlendModeHelper.Parse("color")); Assert.Equal(BlendMode.Luminosity, BlendModeHelper.Parse("luminosity")); }