Pos.ViewTests.cs 7.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245
  1. using static Terminal.Gui.Pos;
  2. namespace Terminal.Gui.LayoutTests;
  3. public class PosViewTests
  4. {
  5. [Fact]
  6. public void PosView_Equal ()
  7. {
  8. var view1 = new View ();
  9. var view2 = new View ();
  10. Pos pos1 = Left (view1);
  11. Pos pos2 = Left (view1);
  12. Assert.Equal (pos1, pos2);
  13. pos2 = Left (view2);
  14. Assert.NotEqual (pos1, pos2);
  15. pos2 = Right (view1);
  16. Assert.NotEqual (pos1, pos2);
  17. }
  18. // TODO: Test Left, Top, Right bottom Equal
  19. /// <summary>Tests Pos.Left, Pos.X, Pos.Top, Pos.Y, Pos.Right, and Pos.Bottom set operations</summary>
  20. [Fact]
  21. public void PosView_Side_SetsValue ()
  22. {
  23. string side; // used in format string
  24. var testRect = Rectangle.Empty;
  25. var testInt = 0;
  26. Pos pos;
  27. // Pos.Left
  28. side = "Left";
  29. testInt = 0;
  30. testRect = Rectangle.Empty;
  31. pos = Left (new ());
  32. Assert.Equal ($"View(Side={side},Target=View(){testRect})", pos.ToString ());
  33. pos = Left (new () { Frame = testRect });
  34. Assert.Equal ($"View(Side={side},Target=View(){testRect})", pos.ToString ());
  35. testRect = new (1, 2, 3, 4);
  36. pos = Left (new () { Frame = testRect });
  37. Assert.Equal ($"View(Side={side},Target=View(){testRect})", pos.ToString ());
  38. // Pos.Left(win) + 0
  39. pos = Left (new () { Frame = testRect }) + testInt;
  40. Assert.Equal (
  41. $"Combine(View(Side={side},Target=View(){testRect}){(testInt < 0 ? '-' : '+')}Absolute({testInt}))",
  42. pos.ToString ()
  43. );
  44. testInt = 1;
  45. // Pos.Left(win) +1
  46. pos = Left (new () { Frame = testRect }) + testInt;
  47. Assert.Equal (
  48. $"Combine(View(Side={side},Target=View(){testRect}){(testInt < 0 ? '-' : '+')}Absolute({testInt}))",
  49. pos.ToString ()
  50. );
  51. testInt = -1;
  52. // Pos.Left(win) -1
  53. pos = Left (new () { Frame = testRect }) - testInt;
  54. Assert.Equal (
  55. $"Combine(View(Side={side},Target=View(){testRect}){(testInt < 0 ? '-' : '+')}Absolute({testInt}))",
  56. pos.ToString ()
  57. );
  58. // Pos.X
  59. side = "Left";
  60. testInt = 0;
  61. testRect = Rectangle.Empty;
  62. pos = X (new ());
  63. Assert.Equal ($"View(Side={side},Target=View(){testRect})", pos.ToString ());
  64. pos = X (new () { Frame = testRect });
  65. Assert.Equal ($"View(Side={side},Target=View(){testRect})", pos.ToString ());
  66. testRect = new (1, 2, 3, 4);
  67. pos = X (new () { Frame = testRect });
  68. Assert.Equal ($"View(Side={side},Target=View(){testRect})", pos.ToString ());
  69. // Pos.X(win) + 0
  70. pos = X (new () { Frame = testRect }) + testInt;
  71. Assert.Equal (
  72. $"Combine(View(Side={side},Target=View(){testRect}){(testInt < 0 ? '-' : '+')}Absolute({testInt}))",
  73. pos.ToString ()
  74. );
  75. testInt = 1;
  76. // Pos.X(win) +1
  77. pos = X (new () { Frame = testRect }) + testInt;
  78. Assert.Equal (
  79. $"Combine(View(Side={side},Target=View(){testRect}){(testInt < 0 ? '-' : '+')}Absolute({testInt}))",
  80. pos.ToString ()
  81. );
  82. testInt = -1;
  83. // Pos.X(win) -1
  84. pos = X (new () { Frame = testRect }) - testInt;
  85. Assert.Equal (
  86. $"Combine(View(Side={side},Target=View(){testRect}){(testInt < 0 ? '-' : '+')}Absolute({testInt}))",
  87. pos.ToString ()
  88. );
  89. // Pos.Top
  90. side = "Top";
  91. testInt = 0;
  92. testRect = Rectangle.Empty;
  93. pos = Top (new ());
  94. Assert.Equal ($"View(Side={side},Target=View(){testRect})", pos.ToString ());
  95. pos = Top (new () { Frame = testRect });
  96. Assert.Equal ($"View(Side={side},Target=View(){testRect})", pos.ToString ());
  97. testRect = new (1, 2, 3, 4);
  98. pos = Top (new () { Frame = testRect });
  99. Assert.Equal ($"View(Side={side},Target=View(){testRect})", pos.ToString ());
  100. // Pos.Top(win) + 0
  101. pos = Top (new () { Frame = testRect }) + testInt;
  102. Assert.Equal (
  103. $"Combine(View(Side={side},Target=View(){testRect}){(testInt < 0 ? '-' : '+')}Absolute({testInt}))",
  104. pos.ToString ()
  105. );
  106. testInt = 1;
  107. // Pos.Top(win) +1
  108. pos = Top (new () { Frame = testRect }) + testInt;
  109. Assert.Equal (
  110. $"Combine(View(Side={side},Target=View(){testRect}){(testInt < 0 ? '-' : '+')}Absolute({testInt}))",
  111. pos.ToString ()
  112. );
  113. testInt = -1;
  114. // Pos.Top(win) -1
  115. pos = Top (new () { Frame = testRect }) - testInt;
  116. Assert.Equal (
  117. $"Combine(View(Side={side},Target=View(){testRect}){(testInt < 0 ? '-' : '+')}Absolute({testInt}))",
  118. pos.ToString ()
  119. );
  120. // Pos.Y
  121. side = "Top";
  122. testInt = 0;
  123. testRect = Rectangle.Empty;
  124. pos = Y (new ());
  125. Assert.Equal ($"View(Side={side},Target=View(){testRect})", pos.ToString ());
  126. pos = Y (new () { Frame = testRect });
  127. Assert.Equal ($"View(Side={side},Target=View(){testRect})", pos.ToString ());
  128. testRect = new (1, 2, 3, 4);
  129. pos = Y (new () { Frame = testRect });
  130. Assert.Equal ($"View(Side={side},Target=View(){testRect})", pos.ToString ());
  131. // Pos.Y(win) + 0
  132. pos = Y (new () { Frame = testRect }) + testInt;
  133. Assert.Equal (
  134. $"Combine(View(Side={side},Target=View(){testRect}){(testInt < 0 ? '-' : '+')}Absolute({testInt}))",
  135. pos.ToString ()
  136. );
  137. testInt = 1;
  138. // Pos.Y(win) +1
  139. pos = Y (new () { Frame = testRect }) + testInt;
  140. Assert.Equal (
  141. $"Combine(View(Side={side},Target=View(){testRect}){(testInt < 0 ? '-' : '+')}Absolute({testInt}))",
  142. pos.ToString ()
  143. );
  144. testInt = -1;
  145. // Pos.Y(win) -1
  146. pos = Y (new () { Frame = testRect }) - testInt;
  147. Assert.Equal (
  148. $"Combine(View(Side={side},Target=View(){testRect}){(testInt < 0 ? '-' : '+')}Absolute({testInt}))",
  149. pos.ToString ()
  150. );
  151. // Pos.Bottom
  152. side = "Bottom";
  153. testRect = Rectangle.Empty;
  154. testInt = 0;
  155. pos = Bottom (new ());
  156. Assert.Equal ($"View(Side={side},Target=View(){testRect})", pos.ToString ());
  157. pos = Bottom (new () { Frame = testRect });
  158. Assert.Equal ($"View(Side={side},Target=View(){testRect})", pos.ToString ());
  159. testRect = new (1, 2, 3, 4);
  160. pos = Bottom (new () { Frame = testRect });
  161. Assert.Equal ($"View(Side={side},Target=View(){testRect})", pos.ToString ());
  162. // Pos.Bottom(win) + 0
  163. pos = Bottom (new () { Frame = testRect }) + testInt;
  164. Assert.Equal (
  165. $"Combine(View(Side={side},Target=View(){testRect}){(testInt < 0 ? '-' : '+')}Absolute({testInt}))",
  166. pos.ToString ()
  167. );
  168. testInt = 1;
  169. // Pos.Bottom(win) +1
  170. pos = Bottom (new () { Frame = testRect }) + testInt;
  171. Assert.Equal (
  172. $"Combine(View(Side={side},Target=View(){testRect}){(testInt < 0 ? '-' : '+')}Absolute({testInt}))",
  173. pos.ToString ()
  174. );
  175. testInt = -1;
  176. // Pos.Bottom(win) -1
  177. pos = Bottom (new () { Frame = testRect }) - testInt;
  178. Assert.Equal (
  179. $"Combine(View(Side={side},Target=View(){testRect}){(testInt < 0 ? '-' : '+')}Absolute({testInt}))",
  180. pos.ToString ()
  181. );
  182. }
  183. }