RectAlignerTests.cs 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. namespace Perspex.Controls.UnitTests.DockPanelTests
  2. {
  3. using Layout;
  4. using Xunit;
  5. public class RectAlignerTests
  6. {
  7. private readonly Rect _container = new Rect(0, 0, 40, 40);
  8. private readonly Size _child = new Size(20, 20);
  9. [Theory]
  10. [MemberData("TestData")]
  11. public void LefTopTest(Alignment horz, Alignment vert, Rect expectedRect)
  12. {
  13. var actualRect = _container.AlignChild(_child, horz, vert);
  14. Assert.Equal(expectedRect, actualRect);
  15. }
  16. // ReSharper disable once UnusedMember.Global
  17. public static object[] TestData => new object[]
  18. {
  19. new object[] {Alignment.Start, Alignment.Start, new Rect(0, 0, 20, 20)},
  20. new object[] {Alignment.Middle, Alignment.Start, new Rect(10, 0, 20, 20)},
  21. new object[] {Alignment.End, Alignment.Start, new Rect(20, 0, 20, 20)},
  22. new object[] {Alignment.Stretch, Alignment.Start, new Rect(0, 0, 40, 20)},
  23. new object[] {Alignment.Start, Alignment.Middle, new Rect(0, 10, 20, 20)},
  24. new object[] {Alignment.Middle, Alignment.Middle, new Rect(10, 10, 20, 20)},
  25. new object[] {Alignment.End, Alignment.Middle, new Rect(20, 10, 20, 20)},
  26. new object[] {Alignment.Stretch, Alignment.Middle, new Rect(0, 10, 40, 20)},
  27. new object[] {Alignment.Start, VerticalAlignment.Bottom, new Rect(0, 20, 20, 20)},
  28. new object[] {Alignment.Middle, VerticalAlignment.Bottom, new Rect(10, 20, 20, 20)},
  29. new object[] {Alignment.End, VerticalAlignment.Bottom, new Rect(20, 20, 20, 20)},
  30. new object[] {Alignment.Stretch, VerticalAlignment.Bottom, new Rect(0, 20, 40, 20)},
  31. new object[] {Alignment.Stretch, VerticalAlignment.Stretch, new Rect(0, 0, 40, 40)},
  32. };
  33. }
  34. }