| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182 | 
							- using Avalonia.Controls.Shapes;
 
- using Avalonia.Media;
 
- using Avalonia.UnitTests;
 
- using Xunit;
 
- namespace Avalonia.Controls.UnitTests.Shapes
 
- {
 
-     public class PathTests : ScopedTestBase
 
-     {
 
-         [Fact]
 
-         public void Path_With_Null_Data_Does_Not_Throw_On_Measure()
 
-         {
 
-             var target = new Path();
 
-             target.Measure(Size.Infinity);
 
-         }
 
-         [Fact]
 
-         public void Subscribes_To_Geometry_Changes()
 
-         {
 
-             using var app = UnitTestApplication.Start(TestServices.MockPlatformRenderInterface);
 
-             var geometry = new EllipseGeometry { Rect = new Rect(0, 0, 10, 10) };
 
-             var target = new Path { Data = geometry };
 
-             var root = new TestRoot(target);
 
-             target.Measure(Size.Infinity);
 
-             Assert.True(target.IsMeasureValid);
 
-             geometry.Rect = new Rect(0, 0, 20, 20);
 
-             Assert.False(target.IsMeasureValid);
 
-             root.Child = null;
 
-         }
 
-         [Theory]
 
-         [InlineData(Stretch.None, 100, 200)]
 
-         [InlineData(Stretch.Fill, 500, 500)]
 
-         [InlineData(Stretch.Uniform, 250, 500)]
 
-         [InlineData(Stretch.UniformToFill, 500, 500)]
 
-         public void Calculates_Correct_DesiredSize_For_Finite_Bounds(Stretch stretch, double expectedWidth, double expectedHeight)
 
-         {
 
-             using var app = UnitTestApplication.Start(TestServices.MockPlatformRenderInterface);
 
-             var target = new Path()
 
-             {
 
-                 Data = new RectangleGeometry { Rect = new Rect(0, 0, 100, 200) },
 
-                 Stretch = stretch,
 
-             };
 
-             target.Measure(new Size(500, 500));
 
-             Assert.Equal(new Size(expectedWidth, expectedHeight), target.DesiredSize);
 
-         }
 
-         [Theory]
 
-         [InlineData(Stretch.None)]
 
-         [InlineData(Stretch.Fill)]
 
-         [InlineData(Stretch.Uniform)]
 
-         [InlineData(Stretch.UniformToFill)]
 
-         public void Calculates_Correct_DesiredSize_For_Infinite_Bounds(Stretch stretch)
 
-         {
 
-             using var app = UnitTestApplication.Start(TestServices.MockPlatformRenderInterface);
 
-             var target = new Path()
 
-             {
 
-                 Data = new RectangleGeometry { Rect = new Rect(0, 0, 100, 200) },
 
-                 Stretch = stretch,
 
-             };
 
-             target.Measure(new Size(double.PositiveInfinity, double.PositiveInfinity));
 
-             Assert.Equal(new Size(100, 200), target.DesiredSize);
 
-         }
 
-         [Fact]
 
-         public void Measure_Does_Not_Update_RenderedGeometry_Transform()
 
-         {
 
-             using var app = UnitTestApplication.Start(TestServices.MockPlatformRenderInterface);
 
-             var target = new Path
 
-             {
 
-                 Data = new RectangleGeometry { Rect = new Rect(0, 0, 100, 200) },
 
-                 Stretch = Stretch.Fill,
 
-             };
 
-             target.Measure(new Size(500, 500));
 
-             Assert.Null(target.RenderedGeometry.Transform);
 
-         }
 
-         [Theory]
 
-         [InlineData(Stretch.None, 1, 1)]
 
-         [InlineData(Stretch.Fill, 5, 2.5)]
 
-         [InlineData(Stretch.Uniform, 2.5, 2.5)]
 
-         [InlineData(Stretch.UniformToFill, 5, 5)]
 
-         public void Arrange_Updates_RenderedGeometry_Transform(Stretch stretch, double expectedScaleX, double expectedScaleY)
 
-         {
 
-             using var app = UnitTestApplication.Start(TestServices.MockPlatformRenderInterface);
 
-             var target = new Path
 
-             {
 
-                 Data = new RectangleGeometry { Rect = new Rect(0, 0, 100, 200) },
 
-                 Stretch = stretch,
 
-             };
 
-             target.Measure(new Size(500, 500));
 
-             target.Arrange(new Rect(0, 0, 500, 500));
 
-             if (expectedScaleX == 1 && expectedScaleY == 1)
 
-             {
 
-                 Assert.Null(target.RenderedGeometry.Transform);
 
-             }
 
-             else
 
-             {
 
-                 Assert.Equal(Matrix.CreateScale(expectedScaleX, expectedScaleY), target.RenderedGeometry.Transform.Value);
 
-             }
 
-         }
 
-         [Fact]
 
-         public void Arrange_Reserves_All_Of_Arrange_Rect()
 
-         {
 
-             using var app = UnitTestApplication.Start(TestServices.MockPlatformRenderInterface);
 
-             RectangleGeometry geometry;
 
-             var target = new Path
 
-             {
 
-                 Data = geometry = new RectangleGeometry { Rect = new Rect(0, 0, 100, 200) },
 
-                 Stretch = Stretch.Uniform,
 
-             };
 
-             target.Measure(new Size(400, 400));
 
-             target.Arrange(new Rect(0, 0, 400, 400));
 
-             Assert.Equal(new Rect(0, 0, 100, 200), geometry.Rect);
 
-             Assert.Equal(Matrix.CreateScale(2, 2), target.RenderedGeometry.Transform.Value);
 
-             Assert.Equal(new Rect(0, 0, 400, 400), target.Bounds);
 
-         }
 
-         [Fact]
 
-         public void Measure_Without_Arrange_Does_Not_Clear_RenderedGeometry_Transform()
 
-         {
 
-             using var app = UnitTestApplication.Start(TestServices.MockPlatformRenderInterface);
 
-             var target = new Path
 
-             {
 
-                 Data = new RectangleGeometry { Rect = new Rect(0, 0, 100, 100) },
 
-                 Stretch = Stretch.Fill,
 
-             };
 
-             target.Measure(new Size(200, 200));
 
-             target.Arrange(new Rect(0, 0, 200, 200));
 
-             Assert.Equal(Matrix.CreateScale(2, 2), target.RenderedGeometry.Transform.Value);
 
-             target.Measure(new Size(300, 300));
 
-             Assert.Equal(Matrix.CreateScale(2, 2), target.RenderedGeometry.Transform.Value);
 
-         }
 
-         [Fact]
 
-         public void Arrange_Without_Measure_Updates_RenderedGeometry_Transform()
 
-         {
 
-             using var app = UnitTestApplication.Start(TestServices.MockPlatformRenderInterface);
 
-             var target = new Path 
 
-             { 
 
-                 Data = new RectangleGeometry { Rect = new Rect(0, 0, 100, 100) },
 
-                 Stretch = Stretch.Fill,
 
-             };
 
-             target.Measure(new Size(200, 200));
 
-             target.Arrange(new Rect(0, 0, 200, 200));
 
-             Assert.Equal(Matrix.CreateScale(2, 2), target.RenderedGeometry.Transform.Value);
 
-             target.Arrange(new Rect(0, 0, 300, 300));
 
-             Assert.Equal(Matrix.CreateScale(3, 3), target.RenderedGeometry.Transform.Value);
 
-         }
 
-     }
 
- }
 
 
  |