From 70f1366b0cf96cfe446bf766f74b7fda27721aec Mon Sep 17 00:00:00 2001 From: Benedikt Stebner Date: Mon, 20 Jan 2025 13:50:05 +0100 Subject: [PATCH] Skia - Add a unit test for the dash array calculation (#18001) --- .../Avalonia.RenderTests/Shapes/LineTests.cs | 28 ++++++++++++++++++ .../Line/Lines_With_DashArray.expected.png | Bin 0 -> 614 bytes .../Line/Lines_With_DashArray.expected.png | Bin 0 -> 525 bytes 3 files changed, 28 insertions(+) create mode 100644 tests/TestFiles/Direct2D1/Shapes/Line/Lines_With_DashArray.expected.png create mode 100644 tests/TestFiles/Skia/Shapes/Line/Lines_With_DashArray.expected.png diff --git a/tests/Avalonia.RenderTests/Shapes/LineTests.cs b/tests/Avalonia.RenderTests/Shapes/LineTests.cs index 617d46c777..70e0301820 100644 --- a/tests/Avalonia.RenderTests/Shapes/LineTests.cs +++ b/tests/Avalonia.RenderTests/Shapes/LineTests.cs @@ -76,5 +76,33 @@ namespace Avalonia.Direct2D1.RenderTests.Shapes await RenderToFile(target); CompareImages(); } + + [Fact] + public async Task Lines_With_DashArray() + { + var stackPanel = new StackPanel(); + + stackPanel.Children.Add(new Line() { Margin = new Thickness(8), StrokeThickness = 8, StartPoint = new Point(0, 0), EndPoint = new Point(200, 0), Stroke = Brushes.Black, StrokeDashArray = [1] }); + stackPanel.Children.Add(new Line() { Margin = new Thickness(8), StrokeThickness = 8, StartPoint = new Point(0, 0), EndPoint = new Point(200, 0), Stroke = Brushes.Black, StrokeDashArray = [1, 1] }); + stackPanel.Children.Add(new Line() { Margin = new Thickness(8), StrokeThickness = 8, StartPoint = new Point(0, 0), EndPoint = new Point(200, 0), Stroke = Brushes.Black, StrokeDashArray = [1, 6] }); + stackPanel.Children.Add(new Line() { Margin = new Thickness(8), StrokeThickness = 8, StartPoint = new Point(0, 0), EndPoint = new Point(200, 0), Stroke = Brushes.Black, StrokeDashArray = [6, 1] }); + stackPanel.Children.Add(new Line() { Margin = new Thickness(8), StrokeThickness = 8, StartPoint = new Point(0, 0), EndPoint = new Point(200, 0), Stroke = Brushes.Black, StrokeDashArray = [0.25, 1] }); + stackPanel.Children.Add(new Line() { Margin = new Thickness(8), StrokeThickness = 8, StartPoint = new Point(0, 0), EndPoint = new Point(200, 0), Stroke = Brushes.Black, StrokeDashArray = [4, 1, 1, 1, 1, 1] }); + stackPanel.Children.Add(new Line() { Margin = new Thickness(8), StrokeThickness = 8, StartPoint = new Point(0, 0), EndPoint = new Point(200, 0), Stroke = Brushes.Black, StrokeDashArray = [5, 5, 1, 5] }); + stackPanel.Children.Add(new Line() { Margin = new Thickness(8), StrokeThickness = 8, StartPoint = new Point(0, 0), EndPoint = new Point(200, 0), Stroke = Brushes.Black, StrokeDashArray = [1, 2, 4] }); + stackPanel.Children.Add(new Line() { Margin = new Thickness(8), StrokeThickness = 8, StartPoint = new Point(0, 0), EndPoint = new Point(200, 0), Stroke = Brushes.Black, StrokeDashArray = [4, 2, 4] }); + stackPanel.Children.Add(new Line() { Margin = new Thickness(8), StrokeThickness = 8, StartPoint = new Point(0, 0), EndPoint = new Point(200, 0), Stroke = Brushes.Black, StrokeDashArray = [4, 2, 4, 1, 1] }); + + + Decorator target = new Decorator + { + Width = 200, + Height = 200, + Child = stackPanel + }; + + await RenderToFile(target); + CompareImages(); + } } } diff --git a/tests/TestFiles/Direct2D1/Shapes/Line/Lines_With_DashArray.expected.png b/tests/TestFiles/Direct2D1/Shapes/Line/Lines_With_DashArray.expected.png new file mode 100644 index 0000000000000000000000000000000000000000..802cec826c98821abe2bbad978ec2b66d260c9cd GIT binary patch literal 614 zcmeAS@N?(olHy`uVBq!ia0vp^CqS5k4M?tyST_$yF%}28J29*~C-V}>VM%xNb!1@J z*w6hZk(GggNx;*^F{C2y?d^kIa~%X60w@3f|2)Nbf}`B_mcGT0EWImrpB{)UJ-dyO zf#J`b_}}dEe{R~}n0fDEP4T|is(;`AF@ETGP~c!`f)hYHfFMqz{Na9`x0kKo|M_?D z+}iWIJ=+xoIG7sY1kgMnXb?XY`$OOR_ZR*LzvsQZ^1gU7pQC~R3lo9>D`U_vNeQpJ zwSE8Ym(sQO_s0IJ&AX(CY-y7NMBRhdWwF2C-ro23OZ5KVXWrXYA9;UgiL(F)OQQpv zfT%pc?Q8w<_V&L&SNjK|Hsx>b9m~q{r4|F-+yam zy}kKM6!$tRK+ON(H#Ng@b=d#Wzp$PzXh1^^K literal 0 HcmV?d00001 diff --git a/tests/TestFiles/Skia/Shapes/Line/Lines_With_DashArray.expected.png b/tests/TestFiles/Skia/Shapes/Line/Lines_With_DashArray.expected.png new file mode 100644 index 0000000000000000000000000000000000000000..8b664c0a33e655b3f3d094601d3a83dcdba895b6 GIT binary patch literal 525 zcmeAS@N?(olHy`uVBq!ia0vp^CqS5k4M?tyST_$yu@pObhHwBu4M$1`0|Vm`PZ!6K ziaBrZIu{mY=i4S%8D3(E(0CWDhj%GvqHS{kDDk%HPG4_>i>& z4T7j)|8>OX#MRz=@`a_}%qLDR;b3Z15I_(RMHUyVKP#;Nr+>eA-tM!-ewP$ESehIZ z-~>d`0|)Cn{6iWTvmk3L?eEq`!D{A q?mnL!^Y{1j@3=w*VkUNS_AmBhj((GDc1Sz{De!dlb6Mw<&;$S%wU-M3 literal 0 HcmV?d00001