FrameTests.cs 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. using Xunit.Abstractions;
  2. namespace Terminal.Gui.ViewTests;
  3. public class FrameTests
  4. {
  5. private readonly ITestOutputHelper _output;
  6. public FrameTests (ITestOutputHelper output) { _output = output; }
  7. // Test FrameToScreen
  8. [Theory]
  9. [InlineData (0, 0, 0, 0)]
  10. [InlineData (1, 0, 1, 0)]
  11. [InlineData (0, 1, 0, 1)]
  12. [InlineData (1, 1, 1, 1)]
  13. [InlineData (10, 10, 10, 10)]
  14. public void FrameToScreen_NoSuperView (int frameX, int frameY, int expectedScreenX, int expectedScreenY)
  15. {
  16. var view = new View { X = frameX, Y = frameY, Width = 10, Height = 10 };
  17. var expected = new Rectangle (expectedScreenX, expectedScreenY, 10, 10);
  18. Rectangle actual = view.FrameToScreen ();
  19. Assert.Equal (expected, actual);
  20. }
  21. [Theory]
  22. [InlineData (0, 0, 0, 0, 0)]
  23. [InlineData (1, 0, 0, 1, 1)]
  24. [InlineData (2, 0, 0, 2, 2)]
  25. [InlineData (1, 1, 0, 2, 1)]
  26. [InlineData (1, 0, 1, 1, 2)]
  27. [InlineData (1, 1, 1, 2, 2)]
  28. [InlineData (1, 10, 10, 11, 11)]
  29. public void FrameToScreen_SuperView (
  30. int superOffset,
  31. int frameX,
  32. int frameY,
  33. int expectedScreenX,
  34. int expectedScreenY
  35. )
  36. {
  37. var super = new View { X = superOffset, Y = superOffset, Width = 20, Height = 20 };
  38. var view = new View { X = frameX, Y = frameY, Width = 10, Height = 10 };
  39. super.Add (view);
  40. var expected = new Rectangle (expectedScreenX, expectedScreenY, 10, 10);
  41. Rectangle actual = view.FrameToScreen ();
  42. Assert.Equal (expected, actual);
  43. }
  44. }