Pos.Tests.cs 3.5 KB

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