Pos.Tests.cs 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135
  1. namespace Terminal.Gui.LayoutTests;
  2. public class PosTests
  3. {
  4. [Fact]
  5. public void PosCombine_Calculate_ReturnsExpectedValue ()
  6. {
  7. var posCombine = new PosCombine (AddOrSubtract.Add, new PosAbsolute (5), new PosAbsolute (3));
  8. int result = posCombine.Calculate (10, new DimAbsolute (2), null, Dimension.None);
  9. Assert.Equal (8, result);
  10. }
  11. [Fact]
  12. public void PosFactor_Calculate_ReturnsExpectedValue ()
  13. {
  14. var posFactor = new PosPercent (50);
  15. int result = posFactor.Calculate (10, new DimAbsolute (2), null, Dimension.None);
  16. Assert.Equal (5, result);
  17. }
  18. [Fact]
  19. public void PosFunc_Calculate_ReturnsExpectedValue ()
  20. {
  21. var posFunc = new PosFunc (() => 5);
  22. int result = posFunc.Calculate (10, new DimAbsolute (2), null, Dimension.None);
  23. Assert.Equal (5, result);
  24. }
  25. [Fact]
  26. public void PosView_Calculate_ReturnsExpectedValue ()
  27. {
  28. var posView = new PosView (new() { Frame = new (5, 5, 10, 10) }, 0);
  29. int result = posView.Calculate (10, new DimAbsolute (2), null, Dimension.None);
  30. Assert.Equal (5, result);
  31. }
  32. [Fact]
  33. public void PosCombine_DoesNotReturn ()
  34. {
  35. var v = new View { Id = "V" };
  36. Pos pos = Pos.Left (v);
  37. Assert.Equal (
  38. $"View(Side=Left,Target=View(V){v.Frame})",
  39. pos.ToString ()
  40. );
  41. pos = Pos.X (v);
  42. Assert.Equal (
  43. $"View(Side=Left,Target=View(V){v.Frame})",
  44. pos.ToString ()
  45. );
  46. pos = Pos.Top (v);
  47. Assert.Equal (
  48. $"View(Side=Top,Target=View(V){v.Frame})",
  49. pos.ToString ()
  50. );
  51. pos = Pos.Y (v);
  52. Assert.Equal (
  53. $"View(Side=Top,Target=View(V){v.Frame})",
  54. pos.ToString ()
  55. );
  56. pos = Pos.Right (v);
  57. Assert.Equal (
  58. $"View(Side=Right,Target=View(V){v.Frame})",
  59. pos.ToString ()
  60. );
  61. pos = Pos.Bottom (v);
  62. Assert.Equal (
  63. $"View(Side=Bottom,Target=View(V){v.Frame})",
  64. pos.ToString ()
  65. );
  66. }
  67. [Fact]
  68. public void PosFunction_SetsValue ()
  69. {
  70. var text = "Test";
  71. Pos pos = Pos.Func (() => text.Length);
  72. Assert.Equal ("PosFunc(4)", pos.ToString ());
  73. text = "New Test";
  74. Assert.Equal ("PosFunc(8)", pos.ToString ());
  75. text = "";
  76. Assert.Equal ("PosFunc(0)", pos.ToString ());
  77. }
  78. [Fact]
  79. public void PosPercent_Equal ()
  80. {
  81. var n1 = 0;
  82. var n2 = 0;
  83. Pos pos1 = Pos.Percent (n1);
  84. Pos pos2 = Pos.Percent (n2);
  85. Assert.Equal (pos1, pos2);
  86. n1 = n2 = 1;
  87. pos1 = Pos.Percent (n1);
  88. pos2 = Pos.Percent (n2);
  89. Assert.Equal (pos1, pos2);
  90. n1 = n2 = 50;
  91. pos1 = Pos.Percent (n1);
  92. pos2 = Pos.Percent (n2);
  93. Assert.Equal (pos1, pos2);
  94. n1 = n2 = 100;
  95. pos1 = Pos.Percent (n1);
  96. pos2 = Pos.Percent (n2);
  97. Assert.Equal (pos1, pos2);
  98. n1 = 0;
  99. n2 = 1;
  100. pos1 = Pos.Percent (n1);
  101. pos2 = Pos.Percent (n2);
  102. Assert.NotEqual (pos1, pos2);
  103. n1 = 50;
  104. n2 = 150;
  105. pos1 = Pos.Percent (n1);
  106. pos2 = Pos.Percent (n2);
  107. Assert.NotEqual (pos1, pos2);
  108. }
  109. }