GeometryBuilderTests.cs 2.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. using Avalonia.Media;
  2. using Xunit;
  3. namespace Avalonia.Base.UnitTests.Media
  4. {
  5. public class GeometryBuilderTests
  6. {
  7. [Theory]
  8. [InlineData(20.0, 10.0)]
  9. [InlineData(10.0, 5.0)]
  10. [InlineData(2.0, 1.0)]
  11. [InlineData(1.0, 0.0)]
  12. public void CalculateRoundedCornersRectangleWinUI_InnerBorderEdge_Borders_Larger_Than_Corners_Test(
  13. double uniformBorders,
  14. double uniformCorners)
  15. {
  16. var bounds = new Rect(new Size(100, 100));
  17. var borderThickness = new Thickness(uniformBorders);
  18. var cornerRadius = new CornerRadius(uniformCorners);
  19. var points = GeometryBuilder.CalculateRoundedCornersRectangleWinUI(bounds, borderThickness, cornerRadius, BackgroundSizing.InnerBorderEdge);
  20. Assert.Equal(new Point(uniformBorders, uniformBorders), points.LeftTop);
  21. Assert.Equal(new Point(uniformBorders, uniformBorders), points.TopLeft);
  22. Assert.Equal(new Point(100 - uniformBorders, uniformBorders), points.TopRight);
  23. Assert.Equal(new Point(100 - uniformBorders, uniformBorders), points.RightTop);
  24. Assert.Equal(new Point(100 - uniformBorders, 100 - uniformBorders), points.RightBottom);
  25. Assert.Equal(new Point(100 - uniformBorders, 100 - uniformBorders), points.BottomRight);
  26. Assert.Equal(new Point(uniformBorders, 100 - uniformBorders), points.BottomLeft);
  27. Assert.Equal(new Point(uniformBorders, 100 - uniformBorders), points.LeftBottom);
  28. Assert.False(points.IsRounded);
  29. }
  30. [Theory]
  31. [InlineData(20.0, 10.0)]
  32. [InlineData(10.0, 5.0)]
  33. [InlineData(2.0, 1.0)]
  34. public void CalculateRoundedCornersRectangleWinUI_OuterBorderEdge_Borders_Larger_Than_Corners_Test(
  35. double uniformBorders,
  36. double uniformCorners)
  37. {
  38. var bounds = new Rect(new Size(100, 100));
  39. var borderThickness = new Thickness(uniformBorders);
  40. var cornerRadius = new CornerRadius(uniformCorners);
  41. var points = GeometryBuilder.CalculateRoundedCornersRectangleWinUI(bounds, borderThickness, cornerRadius, BackgroundSizing.OuterBorderEdge);
  42. Assert.Equal(new Point(0, uniformBorders), points.LeftTop);
  43. Assert.Equal(new Point(uniformBorders, 0), points.TopLeft);
  44. Assert.Equal(new Point(100 - uniformBorders, 0), points.TopRight);
  45. Assert.Equal(new Point(100, uniformBorders), points.RightTop);
  46. Assert.Equal(new Point(100, 100 - uniformBorders), points.RightBottom);
  47. Assert.Equal(new Point(100 - uniformBorders, 100), points.BottomRight);
  48. Assert.Equal(new Point(uniformBorders, 100), points.BottomLeft);
  49. Assert.Equal(new Point(0, 100 - uniformBorders), points.LeftBottom);
  50. Assert.True(points.IsRounded);
  51. }
  52. }
  53. }